《Java Web开发实战经典》总结

时间:2024.3.15

《Java Web开发实战经典》期末总结

第一部分 Web开发前奏

第一章Java Web开发简介

通过本章的的学习,使我了解了web的发展过程。

第二章HTML、Javascript简介

通过本章的的学习,使我了解了JavaScript的基本语法,主要事件,主要对象的作用。可以使用JavaScript完成表单的交互程序开发。

第三章XML简介

通过本章的的学习,使我了解了XML语言的基础语法,还可以清楚区分HTML和XML。并掌握了java中DOM和SAX解析XML文件的操作。学习了DOM解析XML文件的操作和DOM4J解析XML文件的操作。使用XML可以进行数据存储结构的规范化。

第四章Tomcat服务器的安装及配置

通过本章的的学习,使我了解了Tomcat服务器的主要作用和Tomcat服务器的安装及配置。知道了Tomcat安装目录下主要目录的作用。理解JSP页面的执行流程,和编写第一个交互式程序。

第二部分Web基础开发

第五章JSP基础语法

通过本章的的学习,使我了解了Jsp中注释语句的使用和Jsp中Scriptlet的使用及使用的区别,掌握了page指令的作用和两种包含语句及两种包含语句的区别,懂得了跳转指令的操作。基本可以使用Jsp基础语法结合JDBC完成登录程序的开发。

第六章JSP内置对象

通过本章的的学习,使我了解了Jsp中的9个内置对象及对应的操作接口,掌握了jsp中的4种属性范围及属性操作,掌握了request,response,session,application,pagecontext这些常用内置对象的使用。

第七章JavaBean

通过本章的的学习,使我了解了JavaBean的基本定义格式和web目录的标准结构,掌握了jsp中对于javabean支持的3种标签,即<jsp:usebean>,<jsp:setproperty>和<jsp:getproperty>.可以使用javabean进行参数的自动赋值操作。

第八章文件上传

通过本章的的学习,使我了解了文件上传操作的作用和smartupload上传组件的使用,理解了fileupload上传组件的使用。

第三部分Web高级开发

第九章Servlet程序开发

通过本章的的学习,使我了解了servlet与jsp之间的关系和servlet的生命周期及对应的操作方法及内置对象在servlet中的使用。了解了requestdispatcher接口的作用,并可以使用mvc进行程序的开发,掌握过滤器的基本原理及应用和监听器的基本原理及应用。

第十章表达式语言

通过本章的的学习,使我了解了表达式语言的作用及与4种属性范围的关系,可以使用表达式完成数据的输出,掌握了表达式语言中各种运算符的使用。

第十一章Tomcat数据源

通过本章的的学习,使我了解了数据源的作用及操作原理,掌握了tomcat中数据源的配置和数据源的查找及使用。

第十二章JSP标签

通过本章的的学习,使我了解了标签库的主要作用及标签的操作原理,掌握了标签的基本开发模式,并且可以通过tagsupport类完成迭代传输的功能,理解了标签的使用及与tagsupport类的区别,tagextrainfo类和variableinfo的使用。

第十三章JSP标准标签库

通过本章的的学习,使我了解了JSTL的主要作用及配置和JSTL中core标签的使用,了解了format和SQL标签的 使用。

第十四章Ajax开发技术

通过本章的的学习,使我了解了AJAX技术的主要作用,和XMLHttprequest对象的作用,并可以使用XMLHttprequest对象进行操作。

第四部分Web框架开发

第十五章Struts基础开发

通过本章的的学习,使我了解了Struts与mvc的关系和struts的基本配置及struts的核心工作原理及配置文件的使用。

第十六章Struts常用标签库

通过本章的的学习,使我了解了bean标签的作用和logic标签的作用及html标签的作用。

第十七章Struts高级开发

通过本章的的学习,使我了解了struts中动态actionform的作用和struts中提供的各种action,并可以使用分发action进行程序的开发。


第二篇:Java web开发中的jsp知识总结


Java web开发中的jsp知识总结

1. jsp简介:jsp是一种基于文本的程序,其特点是HTML代码与Java程序共存,执行时jsp

会被tomcat自动翻译,这个过程对开发者是透明的,不需要关注的,编译后的jsp和httpservlet一样,都是javax.servlet.Ser vlet接口的子类,因此jsp是另一种形式的servlet。

2. Jsp概述:jsp全称是Javaserverpage,是为了简化servlet的工作而出现的替代品,sun

公司19xx年推出了 servletAPI以及第一款Java web 服务器,早期的java web层体系结构中只有servlet,接受用户请求,处理业务逻辑,生成HTML显示结果都是在HTML中完成的,虽然servlet可以胜任所有的工作,但是servlet不能像php,asp等镶嵌HTML代码,输出HTML代码比较困难,而且部署过程也比较复杂。为了克服servlet的这些弱点,sun公司在19xx年推出了jsp,作为对servlet的补充,jsp在生成HTML代码上比servlet要简单许多,而且不需要特殊部署,只需要复制到服务器下面即可运行,jsp包括很多技术,包括Javabean,自定义标签,El表达式,JSTL标准标签类库等,这些强大成熟的技术使得jsp在视图层有很大的优势。

3. Jsp工作原理:jsp是一种servlet,但是与httpservlet的工作方式不一样,httpservlet是

先由源代码编译成.class文件在部署到服务器下,先编译后部署,而jsp则是先部署再编译成.class文件,先部署后编译的jsp会在客户端第一次请求jsp文件是被编译成

httpjsppage类,该类会被服务器临时存放在服务器工作目录里面,由于jsp只会在客户端第一次请求时被编译,所以第一次请求jsp是会比较慢,而之后的请求由于不用编译,所以会比较快。

4. Jsp生命周期:jsp也是servlet,运行时只有一个实例,跟servlet一样,jsp实例初始化,

销毁是会调用servlet的init()和destory()方法,另外jsp还有自己的初始化方法和销毁方法_jspinit()与_jspdestory()。

5. Jsp语法:jsp是HTML代码与Java代码的混合体,其中HTML部分遵循HTML语法,Java

部分遵循Java语法。

(1) Jsp元素与模板数据:

元素:就是jsp的java部分,包括脚本,指令,与标签,元素决定着程序的流程, 模板数据:就是jsp中的HTML部分,它的内容是固定的,无论程序怎么运行,模板数据输出到客户端时都不会发生变化,模板数据不会控制程序的流程,也

不会影响程序的运行结果,模板数据写的是什么输出来就是什么。

(2) jsp脚本:jsp脚本必须使用“<%”和%>括起来,否则被视为模板元素,且中间

的代码必须遵循Java语法,否则会发生编译错误,共有三种格式:

<% %>:其中可以写语句

<%! %>:其中可以写类,方法,变量,枚举

<%= %>:输出变量的值

(3) jsp指令:jsp指令用来输出jsp页面的一些属性等,例如编码方式,文档类型,,

jsp指令以<%@开始,以%>结束,常见的指令有三种:

page,taglib,include等。

Page指令:最常见的指令,用来声明页面的属性,jsp指令的多个属性可以写在

一个page指令里,也可以写在多个page里。但要注意,无论在哪个page指令

里的属性都只能出现一次,否则会出现编译错误,import属性除外,可以出现

多次。

Include指令:比较简单,只有一种形式,<%@ include file=”relativeURL” %>,

relativeURL为本应用程序内的另一个jsp文件,jsp还有另外一种包含文件的行

为,<% jsp:include page=”relativeURL” %>该命令与include指令的用法基本一致,

作用也一样,不同的是,include指令是先包含,后编译,在被编译后的jsp中已

经包含被include的文件内容了,而include行为是先运行后包含,在被编译的jsp

中没有被include的内容。

Taglib指令:jsp支持标签技术,使用标签功能可以实现视图代码重用,很少量

的代码就能实现很复杂的显示效果,要使用标签必须先声明标签库以及标签前

缀,taglib指令用来指明jsp页面内使用的jsp标签库,taglib指令有两个属性,

url为类库的地址,prefix为标签的前缀。

6. jsp内置对象:

? out输出流对象:是javax.servlet.jsp.JspWrite类的实例,服务器向客户端输出的字

符类内容可以通过out对象输出。

? request请求对象:代表着客户端的请求,request包含客户端的信息以及请求的信

息,如请求的哪个文件,附带的地址栏参数等,每次客户端请求都会产生一个request实例。

? response响应对象:代表着客户端的响应,服务器端的任何输出都会通过response

发送到客户端浏览器,每次服务端都回产生一个response实例。

? config配置对象:servletconfig封装在了配置在web.xml中初始化jsp的参数,每个

jsp文件共有一个config对象。

? session会话对象:session和cookie是记录客户访问信息的两种机制,session用于

在服务端保存用户信息,cookie用于在客户端保存用户信息,每个用户对应一个session对象。

? application应用程序对象:application封装了jsp所在的web应用程序的信息,每

个web应用程序对应一个application对象。

? page页面对象:代表当前jsp页面,是当前jsp编译后servlet的对象,page相当于

普通Java类中的this对象。

? pagecontext页面上下文对象:代表当前jsp编译后的内容,通过Pagcontext可以获

取jsp中的资源。

7. Session机制:session是一种记录客户状态的机制,保存在服务器上,客户端浏览访问

服务器时,服务器把客户端信息以某种形式记录在服务器上,服务器把信息以某种形式记录在服务器上,这就是session,客户端浏览器再次访问时只需要从该session中查找该客户的状态即可。

(1) session的生命周期:session在用户第一次访问服务器的时候自动创建,需要注

意只有访问jsp,servlet等程序时才会创建session,只访问HTML,image等静态

资源时,不创建session,如果未生成session,也可以使用request.getsession(true)

来强制生成session,session生成后,只要用户继续访问,服务器就会更新session

的最后访问时间,并继续维护该session,用户每访问服务器一次,无论是否读

写session,服务器都会认为该用户的session活跃(active)了一次。

(2) session的有效期:由于会有越来越多的用户访问服务器,因此session会越来越

多,为防止内存溢出,服务器会把长时间没有活跃的session从内存中删除

这个时间就是session的超时时间。如果超过了超时时间没访问过服务器,session

就自动失效了。Session的超时时间是MaxInactiveInterval属性,通过

setMaxInactiveInterval()来设置或修改。也可以在web.xml修改,另外,通过

调用session的session.invalidate()来使session失效。

(3) session的方法:

public void invalidate()

使此会话无效,然后取消对任何绑定到它的对象的绑定。

public void removeAttribute(String name)

从此会话中移除与指定名称绑定在一起的对象。如果会话没有与指定名称绑定在一起的对象,则此方法不执行任何操作。

Public void setAttribute(String name, Object value)

使用指定名称将对象绑定到此会话。如果具有同样名称的对象已经绑定到该会话,则替换该对象。

Public Object getAttribute(String name)

返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回 null。

getAttributeNames()

返回包含绑定到此会话的所有对象的名称的 String 对象的

Enumeration。

getCreationTime()

返回创建此会话的时间,该时间是用自格林威治标准时间19xx年x月x日午夜起经过的毫秒数来测量的。

getId()

返回包含分配给此会话的唯一标识符的字符串。标识符是由 servlet 容器分配的,并且是与实现相关的。

getLastAccessedTime()

返回客户端上一次发送与此会话关联的请求的时间(该时间是自格林威治标准时间 19xx年x月x日午夜起经过的毫秒数),并用容器接收该请求的时间标记它。

setMaxInactiveInterval(int interval)

指定在 servlet 容器使此会话失效之前客户端请求之间的时间间隔,以秒为单位。负数时间指示会话永远不会超时。

getMaxInactiveInterval()

返回 servlet 容器在客户端访问之间将使此会话保持打开状态的最大时间间隔,以秒为单位。在此间隔之后,servlet 容器将使会话无效。可使用 setMaxInactiveInterval 方法设置最大时间间隔。负数时间指示会话永远不会超时。

isNew()

如果客户端还不知道该会话,或者客户端选择不加入该会话,则返回 true。例如,如果服务器仅使用基于 cookie 的会话,而客户端已经禁止了 cookie 的使用,则每个请求上的会话都将是新会话。

getServletContext()

返回此会话所属的 ServletContext。

(4) session对浏览器的要求:

虽然session保存服务器,对客户端是透明的,它的正常运行仍然需要客户端浏览器的支持,这是因为session需要cookie作为识别标志。HTTP协议是无状态的,session不能依据HTTP连接来判断是否是同一用户,因此服务器向客户端浏览器发送一个名为JSESSIONID的cookie,它的值为session的id,session依据该cookie判断是否是同一用户。

8. Cookie机制:cookie实际上是一段小的文本信息,客户端请求服务器,如果服务器要求

客户端记录该用户状态,就使用response向客户端浏览器发送一个cookie,客户端浏览器会把cookie保存起来,当浏览器再请求服务器时,浏览器会把请求的网址连同cookie一起发给服务器。服务器检查该cookie,以此来辨认用户状态,服务器还可以根据需要修改cookie的内容。

(1) cookie的不可跨域名性:根据Cookie规范,浏览器访问谷歌只会携带谷歌的

cookie,访问百度只会携带百度的cookie,cookie在客户端是由浏览器来管理的,

浏览器能够保证Google只操作Google的Cookie,从而保证客户的隐私安全,浏

览器判断一个网站是否能操作另一个网站的cookie是根据域名来判断。

(2) Cookie的方法:

? Cookie(String name, String value)

构造带指定名称和值的 cookie。

? setMaxAge(int expiry)

设置 cookie 的最大生存时间,以秒为单位。正值表示 cookie 将在经过该值表

示的秒数后过期。注意,该值是 cookie 过期的最大生存时间,不是 cookie 的

当前生存时间。

? getMaxAge()

返回以秒为单位指定的 cookie 的最大生存时间,默认情况下,-1 指示该 cookie 将保留到浏览器关闭为止。

? getName()

返回 cookie 的名称。名称在创建之后不得更改。

? setPath(String uri)

指定客户端应该返回 cookie 的路径。

? getPath()

返回浏览器将此 cookie 返回到的服务器上的路径。cookie 对于服务器上的所有

子路径都是可见的。

? setValue(String newValue)

在创建 cookie 之后将新值分配给 cookie。如果使用二进制值,则可能需要使用 BASE64 编码。

? getValue()

返回 cookie 的值

9.session和cookie的比较:

Cookie和session都可以进行会话跟踪,但是实现额原理大不一样,一般情况下二者都可以满足需求,但有时候不可以使用cookie,有时候不可以使用session:

(1) 从存取方式上比较:cookie只能保存ASCII字符串,如果需要存取Unicode字符

或者二进制数据,需要进行UTF-8,GBK,Base64等方式的编码,cookie中也不能直接存取Java对象,若要存储稍微复杂的信息,使用cookie是比较困难的。而session中可以存取任何类型的数据,包括而不限于String,Integer,map,list等,session中也可以直接保存Javabean乃至任何Java类,对象等,使用起来非常方便,可以把session看作是一个Java容器类。

(2) 从隐私安全上比较:cookie存储在客户端浏览器中,对客户端是可见的,客户端

的一些程序可能会窥探,复制,甚至修改cookie的内容,而session存储在服务器上,对客户端是透明的,不存在泄漏敏感信息的危险。如果选用cookie,比较好的办法是敏感的信息如账号密码等尽量不要写到cookie中,最好将cookie内容进行加密,提交到服务器后再进行解密,保证cookie的内容只有自己能读得

懂。

(3) 从有效期上进行比较:使用过Google的人都知道,如果登陆过Google,则Google

的登陆信息长期有效,用户不必每次访问都重新登陆,Google会长期的记录客户的登陆信息,要达到这种效果,选择cookie会比较好,使用Session也可以达到这种效果,但容易造成服务器内存溢出。

(4) 从服务器的负担上比较:Session是保存在服务器端的,每个用户都会产生一个

cookie,如果并发访问的用户非常多,会产生非常多的session,消耗大量的内存,而cookie保存在客户端,不占用服务器资源。

(5) 从浏览器支持上比较:cookie是需要客户端浏览器支持的,如果客户端禁用cookie,

或者不支持cookie,则会话跟踪会失效,对于wep的应用,常规的cookie就配不上用场了。

(6) 从跨域名上比较:cookie支持跨域名而session不支持。

9. 过滤器Filter:Filter和Listener是servlet规范里的两个高级特性,不同于servlet,他们

不用于处理客户端请求,只用于对request和response进行修改或者对context,session,request事件进行监听。

(1) Filter概述:Filter意为滤镜或者过滤器,用于在servlet之外对request或者

response进行修改,Filter提出了滤镜链(FilterChain)的概念,一个FilterChain

中包含多个Filter,客户端请求request在抵达servlet之前会经过FilterChain里

的所有Filter,服务器响应response在抵达客户端浏览器之前也会经过FilterChain

里的所有Filter。

(2) Filter接口:

destroy()

由 Web 容器调用,指示将从服务中取出的过滤器。此方法仅在过滤器

的 doFilter 方法中的所有线程都已退出之后调用一次,或者在过了

超时期之后调用。在调用此方法之后,Web 容器不会再对此过滤器实

例调用 doFilter 方法。

doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws java.io.IOException, ServletException

每次由于对链末尾的某个资源的客户端请求而通过链传递请求/响应

对时,容器都会调用 Filter 的 doFilter 方法。传入此方法的 FilterChain 允许 Filter 将请求和响应传递到链中的下一个实体。 init(FilterConfig filterConfig) throws ServletException

由 Web 容器调用,指示将放入服务中的过滤器。servlet 容器只在实

例化过滤器之后调用一次 init 方法。在要求过滤器做任何过滤工作

之前,init 方法必须成功完成。

(3) Filter配置:Filter需要配置在web.xml中才能生效,一个Filter需要配置<Filter>

和<Filter-Mapping>标签。<Filter>配置Filter名称,实现类以及初始化参数,可同

时配置多个初始化参数,<Filter-Mapping>配置什么规则下使用该Filter,<Filter>

的Filtername和<FilterMapping>的Filtername必须匹配。

<url-pattern>配置URL的规则,可以同时配置多个,可以使用通配符(*)。

10. JSTL标签库:JSTL全称为jsp standrd tag library ,即jsp标准标签库。

(1)什么是标签

更多相关推荐:
Java Web实训总结

Jspservletmysql论坛项目实训总结实训人程路峰学号11103303通过为期10天的实训我学习了很多关于JavaWeb的知识在老师的正确指导下顺利的完成了我的实训内容在此也有同学的帮助在他们的帮助下我...

Java web实训报告

娄底职业技术学院JavaWeb课程设计报告娄底职业技术学院LOUDIVOCATIONALANDTECHNICALCOLLEGEJAVAWEB课程设计报告书课题电子离校系统系部电子信息工程系班级12软件1班东宝订...

javaweb 实训报告

1实习题目java软件开发2实习目的本人由于在达内实训时各项成绩优异被北京木联能科技有限公司录用为java软件开发实习生作为即将步入社会的应届毕业生我带着无比激动的心情和远大的理想到北京木联能科技有限公司实习实...

java实训总结

实习报告学生姓名:学号:专业班级:实习单位:实习时间:陈育伟20xx6361信息与计算科学1班高博教育20xx-7-1——20xx-7-1420xx年x月x日一、实习目的通过对java语言、JavaWeb、O…

java实训总结

JAVA实训总结XXX班XXX这个学期的最后两周是学校安排的Java实训课程,主要地点是在机房,这次我们任务是作一个网吧计费管理系统,该系统实现的功能主要有上下机管理,机器维护和管理,卡维护管理,登录界面设计等…

基于web的Java开发设计实训报告

PINGDINGSHANUNIVERSITY基于web的Java开发设计实训报告题目基于的系统的设计与实现院系软件学院专业年级姓名学号指导教师20xx年5月30日基于web的Java开发设计实训报告目录1绪论1...

javaweb集中实训文档模板

河南经贸职业学院信息管理系Javaweb课程设计在线绣图系统小组成员刘文凭于倩石冰妍班级09实训一班指导教师栗猛魏艳明刘丽萍20xx年12月10日课程设计目录第一章引言111项目来源及定义112项目要达到的目标...

java实训个人总结1

java实训个人总结短短的一个月很快就过去了在这短短的一个月里我学到了很多了解了很多在这一个月里我学到了有关JAVA等方面的知识了解了关于软件开发的流程了解了自己的不足知道了自己努力的方向回顾这次的实训这次或许...

软件工程实训(java)总结报告

华东交通大学软件学院软件工程实训总结报告华东交通大学软件学院20xx年6周软件工程实训总结报告专业班级09软件电气4班学号20xx2110080402学生姓名xx指导教师xx所在项目远程实验室管理系统项目经理x...

java实训总结

JAVA程序设计专业班级姓名项目名称开始时间完成时间指导教师实训地点评分成绩综合实训计事本1一实训目的java程序设计是计算机软件的专业核心课程而且java也是当前软件市场上较流行和功能很好的一种软件开发语言经...

实习题目(javaweb)

一实习时间20xx年1月10日1430到1月13日1430二实习环境数据库访问配置ippiscnvicpccport1521sidorclusernamestudyuserpasswordstudyuser三实...

JavaWeb基础与SSH框架知识总结

一、JSP知识:1.用户第一次请求JSP页面时,JSP引擎会转译该JSP文件为Servlet文件(.java),并编译该文件,生成字节码文件(.class)。最后将一个HTML页面发送给客户端。用户再次请求JS…

java web实训总结(15篇)