天天看點

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

在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

繼續閱讀