1. 程式人生 > >關於請求轉發和重定向(一)--- 請求轉發

關於請求轉發和重定向(一)--- 請求轉發

在servlet中可能會牽扯到傳值或者跳轉的問題,可以能是servlet之間互相跳轉,也可能是兩個web應用程式之間互相跳轉。這就出現了請求轉發和重定向。

請求轉發:

說道請求轉發,不得不提到兩個parameter和attribute

parameter attribute
引數名(String) 引數值(String) 引數名(String) 引數值(Object)
name xiaoli

我們可以在客戶端頁面上通過<form>表單進行資料提交,在伺服器中,通過request來提取

通過getParameter方法對客戶端頁面提交的資料進行接收

String name = request.getParameter("userName") 

attribute則需要通過setAttribute方法,在伺服器端進行輸入新增。

request.setAttribute("xuehao", "123456");

而我們傳值的辦法,就是通過傳遞request來達到傳值的目的

(request裡面的值包括表單上可以通過parameter方法獲得的的引數和伺服器端通過setAttribute方法輸入的。)

RequestDispatcher wxm = request.getRequestDispatcher("/LiServlet");
wmx.forward(request, response);//LiServlet是下一跳的servlet

接下來就是通過上面的語句進行請求轉發了。

請求轉發的特點:

1.請求轉發需要RequsetDispatcher,最後通過forward方法傳遞request和response

2.request資料從第一個servlet 到第二個servlet不會丟失,因為是同一個request

3.轉發只能web應用程式內部進行轉發

4.如果第一個servlet請求方法是doGet,那麼轉發給其他servlet的方法都是doGet,及所有的請求方法類別一致

5.請求轉發的位址列顯示的依然是第一個請求資源路徑(可能會導致表單的重複提交

http://blog.csdn.net/u011832252/article/details/26099907