JSP九个隐式对象

来源:互联网 发布:js超出两行显示省略号 编辑:程序博客网 时间:2024/05/18 18:00

JSP九大隐式对象:
request   HttpServletRequest
response   HttpServletResponse
session   HttpSession
application  ServletcContext
config     ServletConfig
exception  (特殊情况下使用)
page      this(本JSP页面)
out        JspWriter(带缓冲的PrintWriter)
pageContext (使普通Java类可访问WEB资源,自定义标签常用)

out隐式对象:
 out对象是通过调用pageContext对象的getOut方法返回的,其作用和用法与ServletResponse.getWriter方法返回的PrintWriter对象非常相似。
JSP页面中的out隐式对象的类型为JspWriter,JspWriter相当于一种带缓存功能的PrintWriter,设置JSP页面的page指令的buffer属性可以调整它的缓存大小,甚至关闭它的缓存。
只有向out对象中写入了内容,且满足如下任何一个条件时,out对象才去调用ServletResponse.getWriter方法,
并通过该方法返回的PrintWriter对象将out对象的缓冲区中的内容真正写入到Servlet引擎提供的缓冲区中:
 1)设置page指令的buffer属性关闭了out对象的缓存功能
 2)out对象的缓冲区已满
 3)整个JSP页面结束

pageContext对象:
 pageContext对象是JSP技术中最重要的一个对象,它代表当前JSP页面的运行环境,这个对象不仅封装了对其它8大隐式对象的引用,它自身还是一个域对象,可以用来保存数据。并且,
 这个对象还封装了web开发中经常涉及到的一些常用操作,例如包含和跳转其它资源、检索其它域对象中的属性等。

通过pageContext获得其他对象 :
 getException方法返回exception隐式对象
 getPage方法返回page隐式对象
 getRequest方法返回request隐式对象
 getResponse方法返回response隐式对象
 getServletConfig方法返回config隐式对象
 getServletContext方法返回application隐式对象
 getSession方法返回session隐式对象
 getOut方法返回out隐式对象

pageContext作为域对象:
pageContext对象的方法
public void setAttribute(java.lang.String name,java.lang.Object value)
public java.lang.Object getAttribute(java.lang.String name)
public void removeAttribute(java.lang.String name)
pageContext对象中还封装了访问其它域的方法
public java.lang.Object getAttribute(java.lang.String name,int scope)
public void setAttribute(java.lang.String name, java.lang.Object value,int scope)
public void removeAttribute(java.lang.String name,int scope)
代表各个域的常量
PageContext.APPLICATION_SCOPE
PageContext.SESSION_SCOPE
PageContext.REQUEST_SCOPE
PageContext.PAGE_SCOPE
findAttribute方法   

JSP常用标签:
<jsp:include>标签 :
 <jsp:include>标签用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,
 这种在JSP页面执行时的引入方式称之为动态引入
 语法:
 <jsp:include page="relativeURL | <%=expression%>" flush="true|false" />
  page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得。
 flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端,默认为false。

<jsp:forward>标签 
 <jsp:forward>标签用于把请求转发给另外一个资源。
<jsp:param>标签 

<jsp:include>与include指令的比较:
 <jsp:include>标签是动态引入, <jsp:include>标签涉及到的2个JSP页面会被翻译成2个servlet,这2个servlet的内容在执行时进行合并。
 而include指令是静态引入,涉及到的2个JSP页面会被翻译成一个servlet,其内容是在源文件级别进行合并。
 不管是<jsp:include>标签,还是include指令,它们都会把两个JSP页面内容合并输出,所以这两个页面不要出现重复的HTML全局架构标签,
 否则输出给客户端的内容将会是一个格式混乱的HTML文档。
 <jsp:include>标签:使用page属性指定被引入资源。
 include指令:使用file属性指定被引入资源。

<jsp:param>标签:
 当使用<jsp:include>和<jsp:forward>标签引入或将请求转发给其它资源时,可以使用<jsp:param>标签向这个资源传递参数。
 语法1:
 <jsp:include page="relativeURL | <%=expression%>">
  <jsp:param name="parameterName" value="parameterValue|<%= expression %>" />
 </jsp:include>
 语法2:
 <jsp:forward page="relativeURL | <%=expression%>">
  <jsp:param name="parameterName" value="parameterValue|<%= expression %>" />
 </jsp:include>
<jsp:param>标签的name属性用于指定参数名,value属性用于指定参数值。在<jsp:include>和<jsp:forward>标签中可以使用多个<jsp:param>标签来传递多个参数。

0 0
原创粉丝点击