前言:在开始介绍JSP的内置对象之前,先讲解JSP中4种属性范围,分别是page、request、session和application。对这几个作用范围的说明如下:
1. page范围:指所设置的属性仅在当前页面内有效。使用pageContext的setAttribute()方法可以设置属性值,使用pageContext的getAttribute()可以获得属性值。
2. request范围:指属性仅在一次请求的范围内有效。使用request的setAttribute()方法可以设置属性值,使用request的getAttribute()可以获得属性值。
3. session范围:指的是属性仅在浏览器与服务器进行一次会话的范围内有效,当和服务器断开连接后,属性就会失效。使用session的setAttribute()方法可以设置属性值,使用session的getAttribute()可以获得属性值。
4. application范围:指属性在整个Web应用中都有效,当和服务器停止后才失效。使用application的setAttribute()方法可以设置属性值,使用application的getAttribute()可以获得属性值。
下面开始介绍JSP的9种内置对象:
request对象
用于获取客户端信息,例如我们在表单中填写的信息等。实际上,JSP容器会将客户端的请求信息封装在request对象中。在客户端发出请求时会创建request对象,在请求结束后,则会销毁request对象。
通常在应用中用的最多的就是客户端请求的参数名称和参数值。在request对象中提供了一系列的方法用来获取客户端的请求参数,这些方法包括getParameter、getParameterNames、getParameterValues和getParameterMap。
response对象
response对象包含了从JSP页面返回客户端的所有信息,其作用域是它所在的页面。response对象是javax.servlet.ServletResponse类的一个实例,它封装由JSP产生的响应,并返回客户端以响应请求。它被作为_jspService()方法的一个参数而由引擎传递给JSP,在这里JSP要改动它。
response对象经常用于设置HTTP标题、添加cookie、设置响应内容的类型和状态、发送HTTP重定向和编码URL。
response的一个主要应用是重定向。可以通过response的sendRedirect(String url)方法实现重定向。
out对象
out内置对象是一个缓冲的输入流,用来向客户端返回信息。它是javax.servlet.jsp.JspWriter的一个实例。由于向客户端输出时要先进行连接,所以总是采用缓冲输出的方式,因此out是缓冲输入流。
out对象的典型应用就是向客户端输出数据。
session对象
session对象是会话对象,用来纪录每个客户端的访问状态。
与session对象想逛的操作中最重要的就是关于属性的操作,与属性操作相关的方法主要有:setAttribute()、getAttribute()和maillogout.jsp。
application对象
application对象用于获取和设置Servlet的相关信息,它的生命周期是从服务器启动直到服务器关闭为止,即一旦创建一个application对象,该对象将会一直存在,直到服务器关闭。application中封装了JSP所在的Web应用中的信息。
application对象的常用方法如下:
void setAttribute(String name,Object value) 以键值对的方式,将一个对象的值存放到application中。
Object getAttribute(String name) 根据属性名获取application中存放的值。
pageContext对象
pageContext对象是一个比较特殊的对象,使用它不仅可以设置page范围内的属性,还可以设置其他范围内的属性。通过pageContext还可以访问本页面中的所有其他对象。
page对象
page对象指的是当前的JSP页面本身,它是java.lang.Object类的对象,通过page对象可以方便地调用Servlet类中定义的方法。page对象在实际开发过程中并不经常使用。
config对象
config对象是ServletConfig类的一个实例,在Servlet初始化时,可以通过config向Servlet传递信息。所传递的信息可以是属性名和属性值构成的名值对,也可以是通过ServletContext对象传递的服务器的相关信息。
exception对象
exception对象是java.lang.Throwable类的对象,用来处理页面的错误和异常。在使用JSP进行开发时,习惯的做法是在一个页面中使用page指令的errorPage属性,让该属性指向一个专门用于处理异常处理的页面。如果在JSP页面中有未捕获的异常,则会生成exception对象,然后将exception对象传递到page指令中设置的异常处理页面中,在异常处理页面中对exception对象进行处理。在异常处理页面中需要将其page指令的isErrorPage属性设置为true才可以使用exception对象。