Java面試 Servlet兩種轉向的區別

2021-08-25 05:06:43 字數 1134 閱讀 6492

在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資料夾...