jsp 九大内置对象和四大域对象

举报
yd_249383650 发表于 2023/03/18 22:30:24 2023/03/18
【摘要】 ​ jsp 九大内置对象我们打开翻译后的 java 文件。查看_jspService 方法。 ​编辑 request 对象 请求对象,可以获取请求信息response 对象 响应对象。可以设置响应信息pageContext 对象 当前页面上下文对象。可以在当前上下文保存属性信息session 对象 会话对象。可以获取会话信息。exception 对象 异常对象只有在 jsp 页面的 page...

 jsp 九大内置对象

我们打开翻译后的 java 文件。查看_jspService 方法。

编辑 

request 对象 请求对象,可以获取请求信息

response 对象 响应对象。可以设置响应信息

pageContext 对象 当前页面上下文对象。可以在当前上下文保存属性信息

session 对象 会话对象。可以获取会话信息。

exception 对象 异常对象只有在 jsp 页面的 page 指令中设置 isErrorPage="true" 的时候才会存在

application 对象 ServletContext 对象实例,可以获取整个工程的一些信息。

config 对象 ServletConfig 对象实例,可以获取 Servlet 的配置信息

out 对象 输出流。

page 对象 表示当前 Servlet 对象实例(无用,用它不如使用 this 对象)。

九大内置对象,都是我们可以在【代码脚本】中或【表达式脚本】中直接使用的对 象。


jsp 四大域对象 

四大域对象经常用来保存数据信息。

pageContext 可以保存数据在同一个 jsp 页面中使用

request 可以保存数据在同一个 request 对象中使用。经常用于在转发的时候传递数据

session 可以保存在一个会话中使用

application(ServletContext) 就是 ServletContext 对象

四个作用域的测试代码:

新建两个 jsp 页面。分别取名叫:context1.jsp,context2.jsp

1)context1.jsp 的页面代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

这是 context1 页面<br/>

<%

//设置 page 域的数据

pageContext.setAttribute("key", "pageContext-value");

//设置 request 域的数据

request.setAttribute("key", "request-value");

//设置 session 域的数据

session.setAttribute("key", "session-value");

//设置 application 域的数据

application.setAttribute("key", "application-value");

%>

<%-- 测试当前页面作用域 --%>

<%=pageContext.getAttribute("key") %><br/>

<%=request.getAttribute("key") %><br/>

<%=session.getAttribute("key") %><br/>

<%=application.getAttribute("key") %><br/>

<%

// 测试 request 作用域

// request.getRequestDispatcher("/context2.jsp").forward(request, response);


%>

</body>
</html>

2)context2.jsp 的页面代码如下:  

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

这是 context2 页面 <br/>

<%=pageContext.getAttribute("key") %><br/>

<%=request.getAttribute("key") %><br/>

<%=session.getAttribute("key") %><br/>

<%=application.getAttribute("key") %><br/>
</body>
</html>

测试 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 文件

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。