日期:2014-05-16  浏览次数:20376 次

JSP的Forward及sendRedirect方法

Response.sendRedirect是两个不同的request,是在客户端跳转,浏览器显示的是跳转后的页面的名字。因为它是从客户端跳转到第二个页面的。使用sendRedirect时,由于发送两次request请求,所以在下一个不能获取request属性

?

?

?

使用forward时,由于只是发送一次request请求,request设置的属性(setAttribute)依然能保留在下一个页面。

?

?

下面举例说明:

tian.jsp????
<%request.setAttribute("river","redwater");
????request.setAttribute("country","daguaiwan");
%>
<jsp:forward page="fengshan.jsp" />
?

donglan.jsp????
<%request.setAttribute("river","redwater");
????request.setAttribute("country","daguaiwan");
%>
<a href="fengshan.jsp">fengshan</a>
?

bama.jsp????
<%request.setAttribute("river","redwater");
????request.setAttribute("country","daguaiwan");
????response.sendRedirect("fengshan.jsp");
%>
?
fengshan.jsp
<%=request.getAttribute("river")%><br/>
<%=request.getAttribute("country")%>
?
  1. http://localhost:8080/ForwardRedirect/tiane.jsp?跳转后结果为: ?
  2. redwater ?
  3. daguaiwan ?
  4. ? ?
  5. http://localhost:8080/ForwardRedirect/donglan.jsp?跳转后结果为: ?
  6. null ?