【Jsp精品源码栏目提醒】:网学会员Jsp精品源码为您提供【精品】JSP & Servlet 总结 - 其它资料参考,解决您在【精品】JSP & Servlet 总结 - 其它资料学习中工作中的难题,参考学习。
JSP amp Servlet 技术总结
JSP 技术总结 .................................................................................................................................... 21.
JSP 页面元素构成 ................................................................................................................ 22.
JSP 脚本元素 ........................................................................................................................ 23. 注释....................................................................................................................................... 24.
JSP 指令 ................................................................................................................................ 25.
JSP 动作元素 ........................................................................................................................ 36.
JSP 内置对象 ........................................................................................................................ 57.
JSP 内置对象及其作用......................................................................................................... 58. 获取页面参数....................................................................................................................... 59. 重定向forward 与 sendRedirect区别 ................................................................................ 610.
JSP 和 Servlet 的区别 ....................................................................................................... 711. Cookie 学习....................................................................................................................... 712. Session 学习...................................................................................................................... 9Servlet 技术总结 .............................................................................................................................. 91. Servlet 生命周期 ...................................................................................................................... 92. Servlet 的方法说明: ............................................................................................................ 103. Servlet 在 web.xml 中的配置 ................................................................................................ 104. Servlet 元素说明 .................................................................................................................... 115. 如何写一个 Servlet? ............................................................................................................ 116. 在 web.xml 里配置的初始化参数怎么才能读回来? ......................................................... 127. 如何获得网页中 form 表单中的参数 ................................................................................... 128. session 跨请求页面传数据怎么实现? .............................................................................. 129. 过滤器如何使用? ................................................................................................................. 1310. 监听器如何使用? ............................................................................................................. 13
JSP 技术总结1.
JSP 页面元素构成
JSP 页面元素有:静态内容,
JSP 指令,表达式,Scriptlet,声明,
JSP 动作和注释。
2.
JSP 脚本元素
JSP 指令用来设置和整个
JSP 网页相关的属性以lt 指令名 属性”值”gt形式编写.
JSP 表达式用于计算表达式的值,并以lt代码gt形式编写。
JSP 声明用于声明变量和方法,并以lt代码gt形式编写。
JSP Scriptlet 用于将复杂的 java 代码插入
JSP 页面,并以lt代码gt形式编写。
3. 注释 lt――注释――gt 在客户端 HTML 源代码中产生和上面一样的数据。
lt%――注释――%gt 这是隐藏注释,写在 JSPp 程序中,但不发给客户端,用隐藏注释标记的字符会在
JSP 编译时被忽略。
也不会显示到客户端浏览器中,也不会在源代码总看到。
Scriptlet 中的注释。
Java 的注释规则在 scriptlet 中也能使用常用 java 注释, 使用”//”表示单行注释。
使用”/…../”表示多行注释。
4.
JSP 指令
JSP 指令控制对整个页面的处理。
JSP 指令包括:page 指令,include 指令,taglib 指令。
(1) page 指令 page 指令主要用于设置页面的各种属性。
Page 指令的基本属性如下: Language: 默认情况下使用 Java 定义编写 scriptlet 声明和表达式所使用的脚本语言, 语言。
Import:将需要的包或类引入到
JSP 页面中,默认情况下如果未指定包,则将导入 lava.lang.javax.serlvlet.和 javax.servlet.
jsp.包。
注:引用多个包之间用逗号隔开。
Buffer:以千字节为单位指定缓冲区的大小。
缓冲区用于存储客户端请求,其默认 为 8KB。
ErrorPage:设置该
JSP 页面的错误处理页面的 URL,处理当前页面中引发但未捕 获到的异常。
IsErrorPage:表示该页面是否为错误处理页面。
例子:lt page language”语言种类” import=“包或类的路径” buffer=“页面 ” ” 缓冲区大小(8KB) errorPage=“错误页面的 URL(error.
jsp) isErrorPage= “true/False”gt (2) include 指令 include 指令用于在运行时将 HTML 文件或
JSP 页面嵌入到另一个页面。
Include 指令的语法如下: lt include file”文件名”gt include 指令可以放在
JSP 页面的任意位置,放在哪儿包含的文件就显示在哪儿。
Include 指令只支持 File 属性,该属性指定与要在编译时嵌入的文件的名称。
(3) taglib 指令 taglib 指令的作用是在
JSP 页面中,将标签库描述文件(TLD)引入到该页面中, 并设置前缀,利用标签的前缀去使用标签库描述文件中的标签。
Taglib 指令允许用户使用自定义标签。
5.
JSP 动作元素 (1)ltjsp:paramgt
jsp:param 操作被用来以“名-值”对的形式为其他标签提供附加信息。
它和
jsp: include,
jsp:forward 和
jsp:plugin 一起使用。
使用方式:ltjsp:param name”paramName” value”paramValue”/gt 2 ltjsp:includegt
jsp:include 操作允许在请求时间内在现成的
JSP 页面里面包含静态或者动态资源, 此指令效率比lt page includegt指令的效率低,但可以增加动态内容。
使用格式:ltjsp:include page”filename” flush”ture”/gt 或者:ltjsp:include page”fileName” flush”true”gt ltjsp:param name”paramName” value”paramValue”/gt lt/
jsp:includegt 注: 对于静态页面(如 html 页面) ,使用静态包含。
即:lt include file”fileName” gt 对于动态页面(如:
jsp 页面) ,使用动态包含。
即:ltjsp:include page”fileName” flush”true”/gt 3ltjsp:forwardgt
jsp:forward 操作是允许将请求转发到另一个
jsp servlet 或者静态资源文件。
使用方式:ltjsp:forword page”url”/gt 或者 ltjsp:forword page”url”gt ltjsp:param name”paramName” value”paramValue”/gt lt/
jsp:forwardgt 注:ltjsp:forward page”url”/gt 与lt Pesponse.sendRedirect“url”gt比较: 采用 forward 提交方式每次刷新页面都会将最后一次提交的内容重新提交一次。
使用
jsp:forward 操作典型的使用就是登陆。
但不适用于购物车,因为每刷新一次购 物车中的数字就会改变。
采用 response 对象的跳转方法适合大多数页面的跳转。
(4)ltjsp:userBeangt ltjsp:userBeangt 标签用来在
jsp 页面中创建一个 Bean 实例,并指定它的名字以及作用范 围。
它保证对象 在标签指定的范围内可以使用。
使用方式: ltjsp:userBean id”id” scope”page/request./session/application ” typeSpec/gt id 属性:指定引用特定 Bean 的唯一值,通过使用不同的 id 值,可以创建同一 Bean 的 不同实例。
Class 属性:指定 JavaBean 的类名,告诉容器在何处查找 Bean 的 Class 文件。
Scope=“page/request/session/application” Page:仅用于当前页面, 不可用于包括的
JSP 页面。
在完成此页面请求时, 就会丢此 Bean。
Request:在请求范围内有效。
可用于被 include 的
JSP 页面。
Session:从创建 Bean 开始,就可以在 Session 有效范围内使用这个 Bean,这个 Bean 对 于
JSP 是共享的,必须在lt pagegt中指定 session=True Application:application 对象在应用服务器启动时就创建了,直到应用服务器关闭。
(5)ltjsp:setPropertygt 此操作和 useBean 一起协作,用来设置 Bean 的简单属性和索引属性。
ltjsp:setPropertygt 标签使用 Bean 给定的 setXXX()方法,在 Bean 中设置一个或属性的值。
使用方法: ltjsp:useBean name”beanName” propertyDetails/gt 其中,propertyDatails 可以是下面几个中的一个: property=“” //为所有属性赋值。
Property”propertyName” param”parameterName” //当表单中组件的名称与 Bean 中 属性的名字类型不匹配时,可将参数设成表单组件的名称。
可以得到表单的值。
Property=“propertyName” /./为单个属性赋值 Property= “propertyName” value= “propertyvalue” //value 表示 Bean 中 propertyName 的值。
; 例 : 将 员 工 信 息 保 存 到 数 据 库 ( 部 分 代 码 : 两 个 JavaBean ( EmployeeData 和 EmployeeOperation) ) lt page contentType”text/html” charset”GBK” gt lt Request.setCharacterEncoding“GBK”gt ltjsp:useBean id”data” scopr”request” class”pan.star.EmployeeData”/gt // 实 例 化 EmployeeData 对象 data ltjsp:setProperty name”data” property””gt //得到员工对象的所有属性 ltjsp:useBean id”operation” scope”request” class”pan.star.EmployeeOperation”/gt lt operation.addEmployeedata Pesponse.sendRedirect“show.
jsp” gt 以下是对 useBean 的解释: ltjsp:userBean id”data” scope”request” class”pan.star.EmployeeData”gt译成 java 代码 为: pan..star.EmployeeData datanull datapan.star.EmployeeDatarequest.getAttribute“data” ifdatanull data new pan.star.EmployeeData (6)ltjsp:getPropertygt用来访问一个 Bean 的属性,它访问的属性值将转化成一个 string,然后发送到输出流中,如果属性是一个对象,将调用 toString()方法。
使用方式:ltjsp:getProperty name”beanName” property”propertyName”gt JavaBean 之我见: 如用ltjsp:useBeangt 指令实例化的是数据封装类对象,则用ltjspsetPropertygt指令给数据 封装类赋值。
如用ltjsp:useBeangt 指令实例化的是业务封装类的对象,则用lt 对象.方法()gt调用 使用的方法。
6.
JSP 内置对象
JSP 提供的隐藏对象主要有四类,分别是:输入输出对象,作用域通信对象,servlet 对象和错误对象。
其中:输入输出对象包括:request,response,out。
作用域通信对象包括:session,application,pageContext。
Servlet 对象包括:page,config 错误对象包括:exception。
7.
JSP 内置对象及其作用1 HttpServletRequest 类的 Request 对象作用:代表请求对象,主要用于接受客户端通过 HTTP 协议连接传输到服务器端的数据。
2 HttpServletResponse 类的 Respone 对象作用:代表响应对象,主要用于向客户端发送数据3 JspWriter 类的 out 对象作用:主要用于向客户端输出数据 Out 的基类是 JspWriter4 HttpSession 类的 session 对象作用:主要用于来分别保存每个用户信息,与请求关联的会话; 会话状态维持是 Web 应用开发者必须面对的问题。
5 ServletContex 类的 application 对象作用:主要用于保存用户信息,代码片段的运行环境; 它是一个共享的内置对象,即一个容器中的多个用户共享一个 application 对象,故其保存的信息被所有用户所共享.6 PageContext 类的 PageContext 对象作用:管理网页属性为
JSP 页面包装页面的上下文,管理对属于
JSP 中特殊可见部分中已命名对象的访问,它的创建和初始化都是由容器来完成的。
7 ServletConfig 类的 Config 对象作用:代码片段配置对象,表示 Servlet 的配置。
8 Object 类的 Page(相当于 this)对象作用:处理
JSP 网页,是 Object 类的一个实例,指的是
JSP 实现类的实例,即它也是
JSP本身,只有在
JSP 页面范围之内才是合法的。
9Exception作用:处理
JSP 文件执行时发生的错误和异常8. 获取页面参数 1地址栏输入 urlnamevalueampnamevalue String valuerequest.getParameterquotnamequot 2超链接 lta hrefquoturinameluxwquotgt aaa lt/agt String valuerequest.getParameterquotnamequot 3 表单 ltform actionquoturiquot methodquotpostgetquotgt String namereq.getParameterquotnamequot9. 重定向forward 与 sendRedirect区别 1 RequestDispatcher.forward 是在服务器端起作用当使用 forward时Servlet Engine 传递 HTTP 请求从当 前的 Servlet or
JSP 到另外一个 ServletJSP 或普通 HTML 文件也即你的 form 提交 至 a.
jsp在 a.
jsp 用到了 forward重定向至 b.
jsp此时 form 提交的所有信息在 b.
jsp 都可以获得参数自动传递. 但 forward无法重定向至有 frame 的
jsp 文件可以重定向至有 frame 的 html 文件 同时 forward无法在后面带参数传递比如 servletnamefrank这样不行可以程 序内通过 response.setAttributequotnamequotname来传至下一个页面 (注:这个我的理 解是通过参数记录,然后在框架页面中用参数来设定框架内页的地址). 重定向后浏览器地址栏 URL 不变. 因为完成一个业务操作往往需要跨越多个步骤,每一步骤完成相应的处理后, 转向到下一个步骤。
比如,通常业务处理在 Servlet 中处理,处理的结果转向到一个
JSP 页面进行显示。
这样看起来类似于 Servlet 链的功能,但是还有一些区别。
一个 RequestDispatcher 对象可以把请求发送到任意一个服务器资源,而不仅仅是另外一 个 Servlet。
注意,只有在尚未向客户端输出响应时才可以调用 forward方法,如果页面缓存不 为空,在重定向前将自动清除缓存。
否则将抛出一个异常 例:servlet 文件中重定向 public void doPostHttpServletRequest requestHttpServletResponse response throws ServletExceptionIOException response.setContentTypequottext/html charsetgb2312quot ServletContext sc getServletContext RequestDispatcher rd null rd sc.getRequestDispatcherquot/index.jspquot rd.forwardrequest response 2 response.sendRedirect 是 在 用 户 的 浏 览 器 端 工 作 sendRedirect 可 以 带 参 数 传 递 比 如 servletnamefrank 传至下个页面同时它可以重定向至不同的主机上且在浏览器 地址栏上会出现重定向页面的 URL. HttpServletResponse 接口定义了可用于转向的 sendRedirect方法。
代码如下: public void sendRedirectjava.lang.String locationthrows java.io.IOException 这个方法将响应定向到参数 location 指定的、新的 URL。
location 可以是一个绝对 如 的 URL, response.sendRedirect quothttp://java.sun.comquot也可以使用相对的 URL。
如果 location 以quot/quot开头,则容器认为相对于当前 Web 应用的根,否则,容器将解析 为相对于当前请求的 URL。
这种重定向的方法,将导致客户端浏览器的请求 URL 跳转。
从浏览器中的地址栏中可以看到新的 URL 地址,作用类似于上面设置 HTTP 响应头信 息的实现. 3 如何选择 RequestDispatcher.forward 方 法 和 HttpServletResponse.sendRedirect 方 法的区别是: 前者仅是容器中控制权的转向, 在客户端浏览器地址栏中不会显示出转向 后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。
这样,从浏览器的地址栏中可以看到跳转后的链接地址。
所以,前者更加高效,在前者 可以满足需要时,尽量使用 RequestDispatcher.forward方法,并且,这样也有助于 隐藏实际的链接。
在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须 使用 HttpServletResponse.sendRequest方法。
10.
JSP 和 Servlet 的区别 Servlet 中没有内置对象, 原来
JSP 中的内置对象都是必须通过 HttpServletRequest 对象, 或由 HttpServletResponse 对象生成。
对于静态的 HTML 标签,Servlet 都必须使用页面输出流诼行输出。
总之,
JSP 是 Servlet 的一种简化,使用
JSP 只需要完成程序员需要输出到客户端的 内容,至于
JSP 中的 Java 脚本如何镶嵌到一个类中,由
JSP 容器完成。
而 Servlet 则是个 完整的 Java 类,这个类的 Service 方法用于生成对客户端的响应。
11. Cookie 学习 Cookie 概念: 大家都知道,浏览器与 WEB 服务器之间是使用 HTTP 协议进行通信的,当某 个用户发出页面请求时,WEB 服务器只是简单的进行响应,然后就关闭与该用户的 连接。
因此当一个请求发送到 WEB 服务器时,无论其是否是第一次来访,服务器都 会把它当作第一次来对待,这样的不好之处可想而知。
为了弥补这个缺陷,Netscape 开发出了 cookie 这个有效的工具来保存某个用户的识别信息,因此人们昵称为“小 甜饼” 。
cookies 是一种 WEB 服务器通过浏览器在访问者的硬盘上存储信息的手段: Netscape Navigator 使用一个名为 cookies.txt 本地文件保存从所有站点接收的 Cookie 信息; 中的 Cookie 存储路径: IE C:Documents and SettingsAdministrator用户Cookies 。
当用户再次访问某个站点时,服务端将要求浏览器查找并返回先前发送的 Cookie 信息,来识别这个用户。
Cookie 的格式实际上是一段纯文本信息 由服务器随着网页一起发送到客户端 并保存在客户端硬盘中指定的目录的. cookies 给网站和用户带来的好处非常多: 1、Cookie 能使站点跟踪特定访问者的访问次数、最后访问时间和访问者进入 站点的路径。
2、Cookie 能告诉在线广告商广告被点击的次数,从而可以更精确的投放广告。
3、Cookie 有效期限未到时,Cookie 能使用户在不键入密码和用户名的情况下 进入曾经浏览过的一些站点。
4、Cookie 能帮助站点统计用户个人资料以实现各种各样的个性化服.