在servlet中,轉向到其它servlet和jsp的時候,可以通過兩種方式實現:
(1)使用response物件的sendredirect()方法
(2)使用requestdispatcher物件的forward()方法
二者區別:
(1)跳轉路徑的區別
a、response.sendredirect("/projectname/***x"):
轉向web伺服器的根路徑如:http://localhost:8080/這裡的最後「/」!!!,所以要帶web專案名稱.
b、request.getdispatcher("/***x").forward(request,response);
轉向web專案的根路徑如:http://localhost:8080/projectname/這裡的最後「/」!!!,所以不帶web專案名稱.
(2)讀取request.setattribute()屬性的區別
a、response.sendredirect()
是重新定向前後頁面不是乙個request,不可以讀取轉向前request物件通過setattribute()方法所設
定的屬性值。就是用request.getattribute得不到設進request的引數了。
b、rd.forward(request,response)
是請求**,前後頁面共享乙個request ,可以讀取轉向前request物件通過setattribute()方法所設
定的屬性值。
(3)跳轉後在brower位址列的位址的區別
a、response.sendredirect()
位址列顯示的位址是所轉向到的servlet或者jsp的位址。(這個自己實驗下,我不講了,表達不清)
b、rd.forward(request,response)
轉向後,位址列顯示的位址是轉向前原servlet的位址。(這個自己實驗下,我不講了,表達不清)
(4)跳轉速度上的區別(但是平常這個好像也沒有太大的區別)
response.sendredirect()
可以轉向到本web應用之外的頁面和**,轉向的速度相對要慢
rd.forward(request,reponse)
不可以轉向到本web應用之外的頁面和**,轉向的速度相對要快,
Servlet的兩種配置
1 在web.xml中配置 index.htmlwelcome file welcome file list stunameparam name 王永亮param value context param servlet註冊名servlet name 全限定類名 包名 類名 servlet class...
兩種Servlet的路徑配置
來吧,看看我在過去的一小時裡面折騰了個什麼玩意兒 首先介紹乙個知識點,然後再說一下我遇到的bug?servlet的url就是在瀏覽器中輸入了之後會直接訪問到的位址 相對路徑 比如在我們專案裡面,專案執行之後的上下文位址是 http localhost 8080 test,firstservlet的u...
servlet兩種配置方法詳解
1 2 3 demoaction 4 5 com.uplooking.controller.demoaction 6 1 7 8 11 demoaction 12 13 demoaction 3 匹配到以後,找到servlet標籤中的servlet class標籤中對應servlet類的src資料夾...