JSP四大作用域和九个内置对象

  四大作用域的作用是为了实现页面和服务器共享数据。

  1. page:设置的属性令在当前页面有效。实际开发中较少使用,作用域太小了。
  2. request:属性仅在本次请求有效。
  3. session:令在浏览器和服务进行本次会话有效,当和服务器断开后,属性失效。
  4. 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 的一个主要应用是重定向,可以通过 responsesendRedirect(String url)实现。
重定向:通知浏览器跳转请求,浏览器地址发生改变,由浏览器操作。

out对象

out对象是一个缓冲输出流,用来向客户端返回信息。
典型应用就是向客户端输出数据。

session对象

session对象是会话对象,用来记录每个客户端的访问状态。
session数据保存在服务器。cookie数据保存在浏览器。
会话:浏览器与服务器建立连接,到关闭浏览器与服务器断开连接的过程。

application对象

用于获取和设置Servlet的相关信息,它的生命周期从服务器启动直到服务器半闭为止。封装了JSP所在的WEB应用中的信息。
如:统计访问网站人数。

pageCntext对象

比较特殊,不仅可以设置page范围内的属性,还可以设置其他范围的属性;还可以访问本页面中的所有其他对象。
因其它对象有各自的方法,此对象实际使用并不多。

page对象

指当前的 JSP 页面本身,它是java.lang.Object类的对象。实际使用不多。

config对象

config对象是 ServletConfig 类的一个实例,在 Servlet 初始化时,可以通过 configServlet 传递信息。
JSP开发很少用到,当需要重载Servlet的init()方法时才会用到 config 对象。可以获取 Servlet 相关信息。

exception对象

exception对象是java.lang.Throwable类的对象。
JSP开发中,习惯是在一个页面中使用 page 指令的 errorPage 属性,让该属性指向一个专门用于异常处理的页面。如果在 JSP 页面中有未捕获的异常 ,则会生成exception对象,然后将该exception对象传送给 page 指令设置的异常处理页面中,在异常 得理页面中对exception对象进行处理。
在异常处理页面中需要将其 page 指令的isErrorPage属性设置为 true 才可以使用 exception 对象。

作者

光星

发布于

2018-03-09

更新于

2022-06-17

许可协议

评论