Welcome

首页 / 网页编程 / JSP / Jsp的两种跳转方法

Jsp的两种跳转方法2013-05-13 赵玉强 对于<jsp:forward>和response.sendRedirect()这两种跳转,信心大家一定不会陌生了,<jsp:forward>属于跳转的一个指令,response.sendRedirect()是response对象里的一个跳转方法,更确切说应该一个转向。但不管怎么说,两者都能实现由一个页面跳转到另一个页面的跳转功能。 那么两者有什么区别呢?还是随便用哪一个都行呢? 我们来共同看一下:

了解区别,举个例子是最直观的,看以下的例子:

我们要做两个页面:

一个跳转页面【turn_01.jsp(用<jsp:forward>),turn_02.jsp(用response.sendRedirect())】

一个跳转之后的页面(turnAfter.html).

turnAfter.html <html><head><title>web</title></head><body><h1>编程入门网:http://www.bianceng.cn</h1></body></html>
turn_01.jsp <%@ pagelanguage="java" contentType="text/html" pageEncoding="gbk" %><html><head><title>web</title></head><body><%System.out.println("====forward跳转之前========="); %><jsp:forward page="turnAfter.html"/><%System.out.println("====forward跳转之后========="); %></body></html>
运行一下,看浏览器的结果,的确是跳转了,但是地址栏并没有发生改变,更有趣的是看一下服务器的结果,如下图所示:

根据结果显示,只有跳转之前,而没有跳转之后。我们再来看另一种跳转方式会怎么样。

turn_02.jsp <%@ pagelanguage="java" contentType="text/html" pageEncoding="gbk" %><html><head><title>web</title></head><body><%System.out.println("====response跳转之前========="); %> <% response.sendRedirect("turnAfter.html");%><%System.out.println("====response跳转之后 ========="); %></body></html>