1. 程式人生 > >response.Redirect進行頁面的跳轉時所進行的請求和響應的過程

response.Redirect進行頁面的跳轉時所進行的請求和響應的過程

 
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>使用sendRedirect方法進行頁面的跳轉操作</title>
</head>
<body>
	<%
	//當前頁面向伺服器傳送第一次請求,伺服器接收到請求後進行處理的結果是:在向客戶端傳送的響應當中添加了一個請求的重
//定向操作,使得客戶端在接收到第一次響應之後,直接自動向伺服器傳送第二次請求,請求訪問的資源地址是第一次響應當中所獲取
//到的地址,伺服器獲取第二次請求資源之後將處理後的結果通過響應再次傳送到客戶端當中去。所以在使用sendRedirect進行頁面的
//跳轉操作時,客戶端一共傳送了兩次請求,伺服器一共進行了兩次響應的回覆。所以在客戶端向伺服器傳送了第二次請求之後,頁面的URL地址值將會發生改變,
//變為hello.html地址值
		 response.sendRedirect("hello.html");
	%>
</body>
</html>
與之相對應的另一種跳轉方式是在伺服器端的跳轉:
request.getRequestDispatcher("deptinfo.jsp").forward(request, response);
當伺服器接收到來自客戶端的請求資訊之後,將會當前所接收到請求物件進行轉發操作,使得當前請求物件去對deptinfo.jsp頁面當中的資源進行訪問操作,然後將所獲取到的全部資料新增到response物件當中返回給客戶端。整個過程當中客戶端傳送了一次請求,進行了一次響應物件的接收操作。在伺服器當中,伺服器對客戶端所傳送來的請求物件進行了請求轉移操作,所以是屬於伺服器端的跳轉操作。其中URL地址始終是第一次客戶端進行請求訪問時的地址,不是請求轉發後的deptinfo.jsp地址值。