`
love552200
  • 浏览: 7902 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
阅读更多
  可能你用JSP已经很熟练了,但是JSP的很多核心技术你也许还不是很清楚。在此我总结了JSP的核心技术。
  从表面上看, JSP 页面已经不再需要Java 类,似乎完全脱离了Java 面向对象的特征。
事实上, JSP 是Servlet 的一种特殊形式,每个JSP 页面就是一个Servlet 实例一-JSP 页
面由系统编译成Servlet , Sevrlet 再负责响应用户请求。JSP 其实也是Sevrlet 的一种简化,使用JSP 时,其实还是使用Sevrlet ,因为Web 应用中的每个JSP 页面都会由Servlet 容器生成对应的Servlet 。
  1.JSP 声明
JSP 声明用于声明变量和方法。在JSP 声明中声明方法看起来很特别,似乎没有类,
只有方法定义,而方法又脱离类独立存在。
JSP 声明的格式如下:
〈%! 声明部分 %〉
2 JSP 表达式
JSP 提供了一种输出表达式值的简单方法,输出表达式值的格式如下:
〈%=表达式%〉
3. JSP 脚本
JSP提供执行java语句的
<% 语句%>
4.JSP 的三个编译指令
JSP 的编译指令是通知JSP 引擎的消息,它不直接生成输出。编译指令都有默认值,
因此开发人员无须为每个指令设置值。
常见的编译指令有三个。
• page: 该指令是针对当前页面的指令。
• include: 用于指定如何包含另一个页面。
• tablib: 用于定义和访问自定义标签。
<%@编译指令名属性名="属性值"......%>
  5. JSP 的7 个动作指令
动作指令与编译指令不间,编译指令是通知Servlet 引擎的处理消息,而动作指令只
是运行时的脚本动作。编译指令在将JSP 编译成Servlet 时起作用:处理指令通常可替换
成Java 脚本,是JSP 脚本的标准化写法。
JSP 动作指令主要有如下7 个。
• jsp:forward: 执行页面转向,将请求的处理转发到下一个页面。
• jsp:param: 用于传递参数,必须与其他支持参数曲标签一起使用。
• jsp:include: 用于动态引入一个JSP 页面。
• jsp:p1ugin: 用于下载JavaBean 或Applet 到客户端执行。
• jsp:useBean: 使用JavaBean 。
• jsp:setProperty: 修改JavaBean 实例的属性值。
• jsp:getProperty: 获取JavaBean 实例的属性值。
  6 JSP 的9 个内置对象(重点介绍的,注意)
JSP 页面中包含9 个内置对象,这9 个内置对象都是Servlet API 的类或者接口的实
例,只是JSP 规范将它们完成了默认初始化,即它们已经是对象,可以直接使用。这9
个内置对象依次如下。
• application: javax.servlet. ServletContext 的实例,该实例代表JSP 所属的Web 应用
本身,可用于JSP 页面,或者Servlet 之间交换信息。常用的方法有getAttribute(String attNarne) , setAttribute(String attNarne , String attValue) 和
getInitPararneter(String paramNarne)等。
(
1.该对象代表Web 应用本身,整个Web 应用共享同一个application 对象,该对象主
要用于在多个JSP 页面或Servlet 之间共享变量。application 通过setAttribute 方法将一个值放入某个属性,该属性的值对整个Web 应用有效,因此Web 应用的每个JSP 页面或
Servlet 都可以访问该属性,访问属性的方法为getAttribute 。
2.application 还有一个重要用处:可用于加载Web 应用的配置参数。看如下JSP 页面,
该页面访问数据库,但访问数据库所使用的驱动、圳、用户名及密码都在配置文件中给出.
application 使用context-param 元素配置,并从web.xml 文件中获取参数,)
• config: javax.servlet. ServletConfig 的实例,该实例代表该JSP 的配置信息。常用
的方法有getInitPararneter(String paramNarne) 及getInitPararneternarnes() 等方法。
事实上, JSP 页面通常无须配置,也就不存在配置信息。因此,该对象更多地在
Servlet 中有效。
• exception: java.lang.Throwable 的实例,该实例代表其他页面中的异常和错误。只
有当页面是错误处理页面,即编译指令page 的isErrorPage 属性为true 时,该对
象才可以使用。常用的方法有getMessageO和printStackTraceO等。
• out: javax.servlet.jsp.JspWriter 的实例,该实例代表JSP 页面的输出流,用于输出
内容,形成HTML 页面。
• page: 代表该页面本身,通常没有太大用处。也就是Servlet 中的this ,其类型就
是生成的Servlet 。
• pageContext: javax.servlet.jsp.PageContext 的实例,该对象代表该JSP 页面上下文,
使用该对象可以访问页面中的共享数据。常用的方法有getServletContextO和
getServletConfigO等。这个对象代表页面上下文,该对象主要用于访问页面共享数据。使用pageContext可以直接访问request , session, application 范围的属性.
• request: javax.servlet. http:HttpServletRequest 的实例,该对象封装了一次请求,客
户端的请求参数都被封装在该对象里。这是一个常用的对象,获取客户端请求参
数必须使用该对象。常用的方法有getPararneter(String paramNarne), getPararneter
Values(String paramName), setAttribute(String atttibuteName,Object attributeValue),
getAttribute(String attributeName)和setCharacterEncoding(String env)等。
• String getParamete(String paramName): 获取表单域的值。
• String getParameterVa1ues(String paramName): 获取表单域的数组值。
• setCharacterEncoding("GBK"): 设置解码方式。
• response: javax.servlet.http.HttpServletResponse 的实例,代表服务器对客户端的响
应。通常,也很少使用该对象直接响应,输出响应使用out 对象,而response 对
象常用于重定向。常用的方法有sendRedirect(j ava.lang.String location)等。
• session: javax.servlet.http.HttpSession 的实例,该对象代表一次会话。从客户端浏
览器与站点建立连接起,开始会话,直到关闭浏览器时结束会话。常用的方法有:
getAttribute(String attName), setAttribute(String attName, String attValue)等。
  7. Filter 介绍
Filter 并不是一个标准的Servlet ,它不能处理用户请求,也不能对客户端生成响应。
主要用于对HttpServletRequest 进行预处理,也可以对HttpServletResponse 进行后处理,
是个典型的处理链。
Filter 有如下几个用处。
·在HttpServletRequest 到达Servlet 之前,拦截客户的HttpServletRequest 。
·根据需要检查HttpServletRequest ,也可以修改HttpServletRequest 头和数据。
·在HttpServletResponse 到达客户端之前,拦截HttpServletResponse 。
·根据需要检查HttpServletResponse ,也可以修改HttpServletResponse 头和数据。
Filter 有如下几个种类。
·用户授权的Filter: Filter 负责检查用户请求,根据请求过滤用户非法请求。
.日志Filter: 详细记录某些特殊的用户请求。
·负责解码的Filter: 包括对非标准编码的请求解码。
.能改变XML 内容的XSLTFilter 等。
一个Filter 可负责拦截多个请求或响应:一个请求或响应也可被多个请求拦截。
创建一个Filter 只需两个步骤:
(I)创建Filter 处理类:
(2) 在web.xml 文件中配置Filter 。
8 Listener 介绍
Listener 的作用非常类似于load-on-startup Servlet。用于在Web 应用启动时,启动某
些后台程序,这些后台程序负责为系统运行提供支持。
Listener 与load-on-startup Se凹let 的区别在于: Listener 的启动时机比load-on-startup
Se凹let 早,只是Listener 是Servlet 2.3 规范之后才出现的。
使用Listener 只需要两个步骤:
(1)创建Listener 实现类。
(2) 在web.xml 文件中配置Listemer。
9. 自定义标签库
在JSP 规范的1.1 版中增加了自定义标签库。自定义标签库是一种非常优秀的组件
技术。通过使用自定义标签库,可以在简单的标签中封装复杂的功能。
实现自定义标签按如下步骤进行:
(1)开发自定义标签处理类:
(2)建立一个*.t1d 文件,每个*.t1d 文件对应一个标签库,每个标签库对应多个标签:
(3)在web.xm1文件中增加自定义标签的定义:
(4) 在JSP 文件中使用自定义标签。
  我只是将JSP中涉及到的核心技术总结了一下,每样技术都只是点到为止,具体的使用和内容需要你自己去查文档。







分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics