JSP中如果把对象放到request Attribute中,如何在另一个JSP文件里得到Attribute里的对象呢,先看个例子:setReq.jsp文件
<%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %>
<%request.setAttribute("ReqValue","ReqValue-Attribute-得到了么?");
//pageContext.forward("getReq.jsp");
response.sendRedirect("getReq.jsp");
%>
getReq.jsp文件
<%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>getAttribute</title>
</head>
<body>
<%out.print((String)request.getAttribute("ReqValue"));%>
</body>
</html>
运行后:
现在setReq.jsp文件改动下:
<%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %>
<%request.setAttribute("ReqValue","ReqValue-Attribute-得到了么?");
pageContext.forward("getReq.jsp");
//response.sendRedirect("getReq.jsp");
%>
再次运行:
不用我说,大家自然明白了,原因是request.setAttribute是服务器内部上下文的属性设置只在请求服务器的这个短暂阶段有效,如果请求发生跳转比如使用sendRedirect重新产生响应当然就不会得到开始请求的属性拉.当然session在传递对象上也是一个不错的选择.
-------------