JSP中Request属性范围

JSP属性范围,通过以下几个测试代码来学习request属性的范围


测试一:

测试内容:

通过<jsp:param .../>添加参数,通过<jsp:forward page="...">来实现服务器端跳转,以此来测试request属性的范围:

步骤一:RequestScopeDemo.jsp (添加info1参数)———>通过<jsp:forward page="RequestScopeDemo_1.jsp">跳转

步骤二:RequestScopeDemo_1.jsp (添加info2参数)———>通过<jsp:forward page="RequestScopeDemo_2.jsp">跳转

步骤三:RequestScopeDemo_2.jsp (request对象中取info1、info2两个参数的值)

CODE:

RequestScopeDemo.jsp :

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head><title>Request属性范围 -  Page 1</title></head>
<body>
	<h1>跳转前的页面:page 1</h1>
	<%
		//想输入一个字符串“<jsp:param ... >”不能直接输出必须通过转义输出
		String info1="page 1 页面中添加(<jsp:param ... />)的参数 !";
		request.setCharacterEncoding("utf-8");
	%>
	<jsp:forward page="RequestScopeDemo_1.jsp">
		<jsp:param name="info1" value="<%=info1%>" />
	</jsp:forward>
</body>
</html>
RequestScopeDemo1.jsp :

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head><title>Request属性范围 - page2</title></head>
<body>
	<h1>跳转中页面:page 2</h1>
	<%
		String info2="page 2 页面中添加(<jsp:param ... />)的参数 !";	
	%>
	info参数:<%=request.getParameter("info2")%><br/>
	<jsp:forward page="RequestScopeDemo_2.jsp">
		<jsp:param name="info2" value="<%=info2%>" />
	</jsp:forward>
</body>
</html>
RequestScopeDemo2.jsp :

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head><title>Request属性范围 - page3</title></head>
<body>
	<h1>跳转到的页面:page 3</h1>
	<%
		/*request对象的源头设置了编码,所以这里就不需要设置啦*/
		//request.setCharacterEncoding("utf-8");		
	%>
	<h2>Page1页面中传递过来的info1参数:<%=request.getParameter("info1")%></h2><br/>
	<h2>Page2页面中传递过来的info2参数:<%=request.getParameter("info2")%></h2><br/>
	<h2>request.getCharacterEncoding()的值:<%=request.getCharacterEncoding()%></h2>
</body>
</html>

测试结果:


测试二:

测试内容:

通过来request.setAttribute()添加参数,通过<jsp:forward page="...">来实现服务器端跳转,以此来测试request属性的范围:
步骤一: RequestScopeDemo_t.jsp (添加info1参数)———>通过<jsp:forward page="RequestScopeDemo_t1.jsp">跳转
步骤二: RequestScopeDemo_t1.jsp (添加info2参数)———>通过<jsp:forward page="RequestScopeDemo_t2.jsp">跳转
步骤三: RequestScopeDemo_t1.jsp (request对象中取info1、info2两个参数的值)

CODE:

RequestScopeDemo_t.jsp :

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head><title>Qequest属性范围 -  Page 1</title></head>
<body>
	<h1>跳转前的页面:page 1</h1>
	<%
		request.setCharacterEncoding("utf-8");
		request.setAttribute("info1","Page1中添加(setAttribute)的参数");
	%>
	<jsp:forward page="RequestScopeDemo_t1.jsp" />
</body>
</html>
RequestScopeDemo_t1.jsp :

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head><title>Request属性范围 - page2</title></head>
<body>
	<h1>跳转中页面:page 2</h1>
	<%
		request.setAttribute("info2","Page2中添加(setAttribute)的参数");
	%>
	跳转中的页面,info1参数:<%=request.getAttribute("info1")%><br/>
	<jsp:forward page="RequestScopeDemo_t2.jsp" />
</body>
</html>
RequestScopeDemo_t2.jsp :

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head><title>Request属性范围 - page3</title></head>
<body>
	<h1>跳转到的页面:page 3</h1>
	<h2>第一个页面,info1参数:<%=request.getAttribute("info1")%></h2><br/>
	<h2>第二个页面,info2参数:<%=request.getAttribute("info2")%></h2><br/>
	<h2>request.getCharacterEncoding()的值:<%=request.getCharacterEncoding()%></h2>
</body>
</html>

测试结果:


总结:

request属性在服务器端跳转时request相当于是一个消息信息在各个页面中传递,各个页面是共享同一个request对象。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值