JSP四大作用域和九个内置对象
四大作用域的作用是为了实现页面和服务器共享数据。
page
:设置的属性令在当前页面有效。实际开发中较少使用,作用域太小了。request
:属性仅在本次请求有效。session
:令在浏览器和服务进行本次会话有效,当和服务器断开后,属性失效。application
:属性在整个WEB应用中都有效,直到服务器停止才失效。实际开发中几乎不使用,作用域太大了。
四大作用域分别都有设置和获取属性的两个方法:setAttribute()
、getAttribute()
9个隐式对象
对象 | JSP类型 | 作用域 | 生命周期 | |
---|---|---|---|---|
1 | request | javax.servlet.http.HttpServletRequest | Request | 本次请求有效 |
2 | response | javax.servlet.http.HttpServletResponse | Page | 当前页面有效 |
3 | session | javax.servlet.http.HttpSession | Session | 本次会话有效,和服务器断开后失效 |
4 | application | javax.servlet.ServletContext | Application | 整个WEB应用中都有效,直到服务器停止才失效 |
5 | config | javax.servlet.ServletConfig | Page | 当前页面有效 |
6 | out | javax.servlet.jsp.JspWrite | Page | 当前页面有效 |
7 | page | javax.servlet.jsp.HttpJspPage | Page | 当前页面有效 |
8 | pageContext | javax.servlet.jsp.PageContext | Page | 当前页面有效 |
9 | exception | javax.lang.Throwable | Page | 当前页面有效 |
request对象
用于获取客户端信息,如页面提交的表单信息。JSP 容器会将客户端的请求信息封装在 request
对象中。在客户端发出请求时创建 request 对象,在请求结束后销毁对象。request.getParameter()
默认字符编码是ISO-8859-1
,中文会显示乱码,需要设置编码格式:request.setCharacterEncoding("UTF-8");
response对象
response
对象封装响应数据返回给客户端。常用于设置 HTTP 标题、添加 cookie
、设置响应内容的类型 和状态,发送 HTTP 重定向和编码 URL。
response 的一个主要应用是重定向,可以通过 response
的sendRedirect(String url)
实现。
重定向:通知浏览器跳转请求,浏览器地址发生改变,由浏览器操作。
out对象
out
对象是一个缓冲输出流,用来向客户端返回信息。
典型应用就是向客户端输出数据。
session对象
session
对象是会话对象,用来记录每个客户端的访问状态。
session数据保存在服务器。cookie数据保存在浏览器。
会话:浏览器与服务器建立连接,到关闭浏览器与服务器断开连接的过程。
application对象
用于获取和设置Servlet的相关信息,它的生命周期从服务器启动直到服务器半闭为止。封装了JSP所在的WEB应用中的信息。
如:统计访问网站人数。
pageCntext对象
比较特殊,不仅可以设置page范围内的属性,还可以设置其他范围的属性;还可以访问本页面中的所有其他对象。
因其它对象有各自的方法,此对象实际使用并不多。
page对象
指当前的 JSP
页面本身,它是java.lang.Object
类的对象。实际使用不多。
config对象
config
对象是 ServletConfig
类的一个实例,在 Servlet
初始化时,可以通过 config 向 Servlet 传递信息。
JSP开发很少用到,当需要重载Servlet的init()
方法时才会用到 config 对象。可以获取 Servlet 相关信息。
exception对象
exception
对象是java.lang.Throwable
类的对象。
在JSP开发中,习惯是在一个页面中使用 page 指令的 errorPage
属性,让该属性指向一个专门用于异常处理的页面。如果在 JSP
页面中有未捕获的异常 ,则会生成exception
对象,然后将该exception对象传送给 page 指令设置的异常处理页面中,在异常 得理页面中对exception对象进行处理。
在异常处理页面中需要将其 page 指令的isErrorPage属性设置为 true
才可以使用 exception 对象。
JSP四大作用域和九个内置对象