jsp:forward和response.sendRedirect的区别
2013-07-19 09:24
330 查看
最简单的jsp:forward
forward.jsp
<html>
<head>
<title>Forward Example</title>
</head>
<!--最终显示的是forforward.jsp中的内容-->
<body bgcolor=red>
Welcome to forward.jsp
<%--直接跳转到forforward.jsp,这两个jsp用的是同一个request--%>
<jsp:forward page="forforward.jsp" />
</body>
</html>
forforward.jsp
<html>
<head>
<title>forforward.jsp</title>
</head>
<body bgcolor=blue>
Welcome<br>
Here is forforward.jsp
</body>
</html>
②jsp:forward和response.sendRedirect的比较
forward1.jsp
<html>
<head>
<title>Forward Example</title>
</head>
<body bgcolor=red>
Welcome to forward1.jsp
<jsp:forward page="forforward1.jsp" >
<jsp:param name="name" value="m" />
<jsp:param name="oldName" value='<%= request.getParameter("name")%>' />
<jsp:param name="roles" value="manager" />
</jsp:forward>
</body>
</html>
forforward1.jsp:和forward1.jsp使用的是同一个request(服务器跳转)
<html>
<head>
<title>forforward1.jsp</title>
</head>
<body bgcolor=blue>
Welcome<br>
Here is forforward1.jsp<br>
<%= request.getParameter("name")%>
<%= request.getParameter("oldName")%>
<%= request.getParameter("roles")%>
<%= request.getParameter("address")%>
</body>
</html>
测试结果:
访问http://localhost:8888/test/forward/forward1.jsp?name=yyg&address=34527144231
结果:
Welcome
Here is forforward1.jsp
m yyg manager 34527144231
此时页面URL还是forward1.jsp,并没有跳转到forforward1.jsp,给用户的感觉还是刚才的页面在为自己服务。
说明:m 和manager 是forward1.jsp中传过来的;而yyg 和34527144231 是在URL中通过request传过来的。并且forward1.jsp中也没有address属性,这也从另一个角度说明了这两个jsp使用的是同一个request。
test.jsp:和forward1.jsp使用的是不同的request
说明:访问过http://localhost:8888/test/forward/test.jsp后,页面跳转成http://localhost:8888/test/forward/forforward1.jsp
这个过程中客户和服务器之间产生了两个request,并且test.jsp后跟参数并不能传递到forforward1.jsp(原因也很明显:两次是不同的request)
<%
response.sendRedirect("forforward1.jsp")
%>
forward.jsp
<html>
<head>
<title>Forward Example</title>
</head>
<!--最终显示的是forforward.jsp中的内容-->
<body bgcolor=red>
Welcome to forward.jsp
<%--直接跳转到forforward.jsp,这两个jsp用的是同一个request--%>
<jsp:forward page="forforward.jsp" />
</body>
</html>
forforward.jsp
<html>
<head>
<title>forforward.jsp</title>
</head>
<body bgcolor=blue>
Welcome<br>
Here is forforward.jsp
</body>
</html>
②jsp:forward和response.sendRedirect的比较
forward1.jsp
<html>
<head>
<title>Forward Example</title>
</head>
<body bgcolor=red>
Welcome to forward1.jsp
<jsp:forward page="forforward1.jsp" >
<jsp:param name="name" value="m" />
<jsp:param name="oldName" value='<%= request.getParameter("name")%>' />
<jsp:param name="roles" value="manager" />
</jsp:forward>
</body>
</html>
forforward1.jsp:和forward1.jsp使用的是同一个request(服务器跳转)
<html>
<head>
<title>forforward1.jsp</title>
</head>
<body bgcolor=blue>
Welcome<br>
Here is forforward1.jsp<br>
<%= request.getParameter("name")%>
<%= request.getParameter("oldName")%>
<%= request.getParameter("roles")%>
<%= request.getParameter("address")%>
</body>
</html>
测试结果:
访问http://localhost:8888/test/forward/forward1.jsp?name=yyg&address=34527144231
结果:
Welcome
Here is forforward1.jsp
m yyg manager 34527144231
此时页面URL还是forward1.jsp,并没有跳转到forforward1.jsp,给用户的感觉还是刚才的页面在为自己服务。
说明:m 和manager 是forward1.jsp中传过来的;而yyg 和34527144231 是在URL中通过request传过来的。并且forward1.jsp中也没有address属性,这也从另一个角度说明了这两个jsp使用的是同一个request。
test.jsp:和forward1.jsp使用的是不同的request
说明:访问过http://localhost:8888/test/forward/test.jsp后,页面跳转成http://localhost:8888/test/forward/forforward1.jsp
这个过程中客户和服务器之间产生了两个request,并且test.jsp后跟参数并不能传递到forforward1.jsp(原因也很明显:两次是不同的request)
<%
response.sendRedirect("forforward1.jsp")
%>
相关文章推荐
- <jsp:forward>和response.sendRedirect()两种跳转的区别
- jsp:forward标签和response.sendRedirect()方法的区别
- JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,respon 区别
- jsp:forward标签与response.sendRedirect()的区别
- <jsp:forward>与response.sendRedirect()的区别
- Jsp重定向(response.sendRedirect())和转发(request.getRequestDispatcher().forward(request,r)的区别
- jsp中<jsp:forward page=""/>和response.sendRedirect("")两种跳转的区别
- response.sendRedirect()与request.getRequestDispatcher().forward()、<jsp:forward> 区别
- jsp中<jsp:forward page=""/>和response.sendRedirect("")两种跳转的区别
- <jsp:forward>标签跳转指令和response.sendRedirect()跳转指令的区别
- <jsp:forward>与response.sendRedirect的区别
- request.getRequestDispatcher("*.jsp").forward( request, response)和sendRedirect区别
- Jsp:forward与response.sendRedirect()两种跳转的区别
- request.getRequestDispatcher(".jsp")和response.sendRedirect(".jsp")的区别
- RequestDispatcher.forward() 方法和HttpServletResponse.sendRedirect()方法的区别
- 明白response.sendRedirect()与request.getRequestDispatcher().forward()区别
- 在JAVA中使用response.sendRedirect和使用RequestDispatcher.forward的区别
- response.sendRedirect()与request.getRequestDispatcher().forward()区别
- JSP中三种页面跳转方式(jsp:forward、response.sendRedirect、response.setHeader)
- JSP中forward()与sendRedirect()区别