jsp对象

  1. 1. jsp九大内置对象
    1. 1.1. 四个域对象分别是
    2. 1.2. out和response.getWriter输出的区域

jsp九大内置对象

jsp中的内置对象是指Tomcat在翻译jsp页面成为Servlet源代码后,内部提供第九大对象,叫内置对象

  1. request 请求对象
  2. response 响应对象
  3. pageContext jsp第上下文对象
  4. session 会话对象
  5. application servletContext对象
  6. config servletConfig对象
  7. out jsp输出流对象
  8. page 指向当且jsp的对象
  9. exception 异常对象

四个域对象分别是

pageContext(PageContextimpl类) 当前jsp范围内有效
Request(HttpServletRequest类) 一次请求内有效
session(HttpSession类) 一个会话范围内有效(打开浏览器访问服务器,直到关闭浏览器)
application(ServletContext类) 整个web功能范围内都有效(只要web工程不停止)
域对象是可以像map一样存取数据的对象,四个域对象功能一样,不同的是他们对象数据的存取范围

1
2
3
4
5
6
7
8
9
10
<%
pageContext.setAttribute("key","pageContext");
request.setAttribute("key","request");
session.setAttribute("key","session");
application.setAttribute("key","application");
%>
pageContext域是否有值:<%=pageContext.getAttribute("key")%><br>
request域是否有值:<%=request.getAttribute("key")%><br>
session域是否有值:<%=session.getAttribute("key")%><br>
application域是否有值:<%=application.getAttribute("key")%><br>

四个域在使用时优先顺序时,他们从大到小的范围顺序
pageContext->request->session->application
减轻内存压力,优化

out和response.getWriter输出的区域

response输出输出在jsp文件的最前面

1
2
3
4
5
6
<%
response.getWriter().write("response输出1<br/>");
response.getWriter().write("response输出2<br/>");
response.getWriter().write("response输出1<br/>");
out.write("out输出 <br/>");
%>

两个输出流,各自都有自己的缓冲区
out缓存区和response缓冲区
当jsp页面中所有代码执行完毕后会做以下两个操作

  1. 会执行out.flush操作,会把out缓冲区的数据追加写入到response缓冲区末尾
  2. 会执行response的刷新操作。把全部数据写给客户端
    由于jsp翻译之后,底层源代码是out来输出,所以一般情况下,我们在jsp界面中统一使用out输出