程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> Jsp的兩種跳轉方法

Jsp的兩種跳轉方法

編輯:關於JSP

對於<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     
<%@ page  language="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     
<%@ page  language="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>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved