jsp 九大内置对象和四大域对象
发布日期:2021-07-27 05:23:44 浏览次数:5 分类:技术文章

本文共 1908 字,大约阅读时间需要 6 分钟。

1、jsp 九大内置对象

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

在这里插入图片描述

2.jsp 四大域对象

四个域对象分别是:

  • pageContext (PageContextImpl 类) 当前 jsp 页面范围内有效
  • request (HttpServletRequest 类)、 一次请求内有效
  • session (HttpSession 类)、 一个会话范围内有效(打开浏览器访问服务器,直到关闭浏览器)
  • application (ServletContext 类) 整个 web 工程范围内都有效(只要 web 工程不停止,数据都在)

域对象是可以像 Map 一样存取数据的对象。四个域对象功能一样。不同的是它们对数据的存取范围

虽然四个域对象都可以存取数据。在使用上它们是有优先顺序的。

四个域在使用的时候,优先顺序分别是,他们从小到大的范围的顺序。

pageContext ====>>> request ====>>> session ====>>> application

scope1.jsp 页面:

scope.jsp页面

<% // 往四个域中都分别保存了数据 pageContext.setAttribute("key","pageContext"); request.setAttribute("key","request"); session.setAttribute("key","session"); application.setAttribute("key","application");%>pageContext域是否值:<%=pageContext.getAttribute("key")%>
request域是否值:<%=request.getAttribute("key")%>
session域是否值:<%=session.getAttribute("key")%>
application域是否值:<%=application.getAttribute("key")%>
<%--方法一:<% request.getRequestDispatcher("/scope2.jsp").forward(request,response);%>--%><%--方法二:
是请求转发标签,它的功能就是请求转发 page 属性设置请求转发的路径 --%>
scope2.jsp页面:

scope2.jsp页面

pageContext域是否值:<%=pageContext.getAttribute("key")%>
request域是否值:<%=request.getAttribute("key")%>
session域是否值:<%=session.getAttribute("key")%>
application域是否值:<%=application.getAttribute("key")%>

测试 pageContext 作用域步骤: 直接访问 context1.jsp 文件

测试 request 作用域步骤

  • 1.在 context1.jsp 文件中添加转发到 context2.jsp(有数据)
  • 2.直接访问 context2.jsp 文件 (没有数据)

测试 session 作用域步骤

  • 1.访问完 context1.jsp 文件
  • 2.关闭浏览器。但是要保持服务器一直开着
  • 3.打开浏览器,直接访问 context2.jsp 文件

测试 application 作用域步骤

  • 1.访问完 context1.jsp 文件,然后关闭浏览器
  • 2.停止服务器。再启动服务器。
  • 3.打开浏览器访问 context2.jsp 文件

3、jsp 中的 out 输出和 response.getWriter 输出的区 别

response 中表示响应,我们经常用于设置返回给客户端的内容(输出) out 也是给用户做输出使用的。

在这里插入图片描述
由于 jsp 翻译之后,底层源代码都是使用 out 来进行输出,所以一般情况下。我们在 jsp 页面中统一使用 out来进行输出。避免打乱页面输出内容的顺序。
out.write() 输出字符串没有问题
out.print() 输出任意数据都没有问题(都转换成为字符串后调用的 write 输出)

深入源码,浅出

结论:在 jsp 页面中,可以统一使用 out.print()来进行输

转载地址:https://blog.csdn.net/qq_45554909/article/details/111828415 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:jsp 的常用标签
下一篇:jsp 的三种语法

发表评论

最新留言

不错!
[***.144.177.141]2024年09月17日 16时38分36秒