JSP的九种内置对象

内置对象特点:

    1. JSP规范提供,不用编写者实例化。
    2. 通过Web容器实现和管理。
    3. 所有JSP页面均可使用。
    4. 只有在脚本元素的表达式或代码段中才可使用(<%=使用内置对象%><%使用内置对象%>)。 

 常用内置对象:

    1. 输出输入对象:request对象、response对象、out对象。
    2. 通信控制对象:pageContext对象、session对象、application对象。
    3. Servlet对象:page对象、config对象。
    4. 错误处理对象:exception对象。

其中request对象、session对象、application对象最常用。

 


1. request对象( javax.servlet.http.HttpServletrequest)

  request对象代表的是来自客户端的请求,例如我们在FORM表单中填写的信息等,是最常用的对象。当客户端向服务器端发送一个请求,服务器向客户端返回一个响应后,该请求对象就被销毁了;之后再向服务器端发送新的请求时,服务器会创建新的request对象,该request对象与之前的request对象没有任何关系,因此也无法获得在之前的request对象中所存放的任何数据。

  常用方法:

  • getParameter(String name) 获取浏览器提交的name参数的一个value值,以String对象返回。该方法只能获取name的一个value值,如果name有多个value,建议使用getParameterValues()方法。
  • getParameterValues(String name) 获取浏览器提交的name参数的所有value值,以String[]返回。
  • getParameterNames() 获取浏览器提交的所有参数的names,以Enumeration类型的String对象返回。

getParameter、getParameterNames和getParameterValues获取的是从浏览器中传递过来的数据。是客户端与服务器端的交互,没有相应的set方法。

  • setgetAttribute(String name, Object obj) 设置name属性(Attribute)的值(value)为obj。
  • getAttribute(String name) 以对象的形式返回特定名称的属性值。这个方法允许Servlet引擎给出一个客户请求的特定信息。如果所给名称的属性不存在将返回空值。
  • 参数:name 一个标示属性名的字符串
  • 返回值:一个包含属性值的对象,当属性不存在时为null 

setgetAttribute和getAttribute一般都是成对出现的,首先通过setAttribute设置属性名,然后通过getAttribute获得指定属性名对应的属性值的对象(一般要通过向下类型转换),setgetAttribute和getAttribute一般都是在服务器端内部执行的.

request对象的生命周期为 客户端发出请求和服务器端做出响应期间(浏览器向服务器发出一次提交称为一个请求,而在服务器端的页面转向对浏览器来说还属于同一个request生命周期)

2. session对象(javax.servlet.http.HttpSession)

  session对象代表服务器与客户端所建立的会话,当需要在不同的JSP页面中保留客户信息的情况下使用,比如在线购物、客户轨迹跟踪等。Session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器(或者指定的时间)结束,被称为一个会话,在同一个会话中,无论向服务器端发送多少个请求,session 对象只有一个。

常用方法:

  • setgetAttribute(String name, Object obj) 设置name属性(Attribute)的值(value)为obj。
  • getAttribute(String name) 以对象的形式返回特定名称的属性值。这个方法允许Servlet引擎给出一个客户请求的特定信息。如果所给名称的属性不存在将返回空值。
  • 参数:name 一个标示属性名的字符串
  • 返回值:一个包含属性值的对象,当属性不存在时为null 

session对象的生命周期为 一个会话(一个客户打开浏览器并连接到服务器开始到客户关闭浏览器离开这个服务器或者指定的时间)

3. application对象(javax.servlet.ServletContext)

  application对象负责提供应用程序在服务器中运行时的一些全局信息。服务器在启动后就产生了这个Application对象,所有客户的Application对象都是同一个,即所有客户共享这个内置的Application对象。只要服务器没有关闭,application 对象中的数据就会一直存在。在整个服务器运行过程当中,application 对象只有一个。

常用方法:

  • setgetAttribute(String name, Object obj) 设置name属性(Attribute)的值(value)为obj。
  • getAttribute(String name) 以对象的形式返回特定名称的属性值。这个方法允许Servlet引擎给出一个客户请求的特定信息。如果所给名称的属性不存在将返回空值。
  • 参数:name 一个标示属性名的字符串
  • 返回值:一个包含属性值的对象,当属性不存在时为null 

application对象的生命周期为 整个程序运行期间

 

需要注意的:request对象、session对象和application对象都有setgetAttribute和getAttribute方法,区别在于它们起作用的范围(存活周期)是不一样的。

 

4. response对象(javax.servlet.http.HttpServletResponse)

  response对象代表的是对客户端的响应,也就是说可以通过response对象来组织发送到客户端的数据。但是由于组织方式比较底层,所以不建议普通读者使用,需要向客户端发送文字时直接使用“out” 对象即可。

5. pageContext对象(javax.servlet.jsp.PageContext)

  pageContext对象直译时可以称作 “页面上下文”对象,代表的是当前页面运行的一些属性,常用的方法包括findAttribute 、getAttribute 、getAttributesScope和 getAttributeNamesInScope,一般情况下pageContext对象用到得也不是很多,只有在项目所面临的情况比较复杂的情况下,才会利用到页面属性来辅助处理。一般 Servlet容器会使用该对象。

6. out对象(javax.servlet.jsp.jspWriter)

  out对象代表了向客户端发送数据的对象, 与response对象不同,通过out对象发送的内容将是浏览器需要显示的内容,是文本一级的,可以通过out对象直接向客户端写一个由程序动态生成HTML文件。常用的方法除了print和println之外,还包括clear、clearBuffer、flush、getBufferSize和getRemaining,这是因为out对象内部包含了一个缓冲区,所以需要一些对缓冲区进行操作的方法。

7. page对象(java.lang.object)

page对象代表了正在运行的由JSP文件被转换成servlet产生的类对象,不建议一般读者使用。

8. exception对象(java.lang.Throwable)

exception对象则代表了JSP文件运行时所产生的异常对象,此对象不能在一般JSP文件中直接使用,而只能在使用了<%@ page isErrorPage="true "%>的JSP文件中使用。

9. config对象(javax.servlet.ServletConfig)

config对象提供一些配置信息,常用的方法有getInitParameter和getInitParameterNames,以获得Servlet初始化时的参数。

 

  

 

posted on 2013-01-26 15:23  阿波次的  阅读(212)  评论(0编辑  收藏  举报

导航