一、基本内容
1、请求转发时,如何实现不同页面之间的数据传递?
也就是前面说的从资源A发送给资源B数据的话,或者B资源要用A资源中的数据的话,用到请求转发(因为只有转发的时候,才能共享request)。
将数据保存到request范围内的变量中,来实现不同页面之间的数据传递
2、如何将数据保存到request范围内的变量中呢?
request.setAttribute(String name, String object)//name--object<==>key--value
注意:session和application都是如此
3、通过request.getAttribute(String name)获取存储在request范围内的变量的值。
4、数据的有效范围:同一个request。
二、实例
例1:
index.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>测试request存放数据</title>
</head>
<body>
<%
try {//捕获异常信息
int money = 100;
int number = 0;
request.setAttribute("result", money / number);//保存执行结果//因为number是0,所以会直接抛出异常到catch中
} catch (Exception e) {
request.setAttribute("result", "很抱歉,页面产生错误!");//保存错误提示信息
}
%>
<jsp:forward page="deal.jsp" /><!--转发到deal.jsp中-->
</body>
</html>
deal.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>结果页</title>
</head>
<body>
<%
String message = request.getAttribute("result").toString();
%>
<%=message%>
</body>
</html>
结果是: