關於請求轉發和重定向(一)--- 請求轉發
阿新 • • 發佈:2019-02-09
在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