1. 程式人生 > >ServletRequest.getRequestDispatcher和ServletContext.getRequestDispatcher的區別。

ServletRequest.getRequestDispatcher和ServletContext.getRequestDispatcher的區別。

本節介紹以下幾種跳轉方法。

1.用RequestDispatcher跳轉:

馬 克-to-win: javax.servlet.RequestDispatcher是Sun公司編寫的一個Interface,顧名思義,它可以把使用者請求"a資源"的 request派遣(dispatch)到"b資源"上,從而實現跳轉。(本來人家要訪問'a資源",你的程式卻讓人家自動的跳轉到"b資源"上。) 注意:RequestDispatcher有兩種形式:這兩種形式都能達到跳轉的目的。一種是 ServletRequest.getRequestDispatcher(String url)。一種是ServletContext.getRequestDispatcher(String url)。但正常來講,二者都只能訪問同一web應用的資源。見下面理論論述和實驗。


馬克-to-win:注意以下兩者的而區別:ServletContext.getRequestDispatcher(String
url)中的url只能使用絕對路徑; 而ServletRequest.getRequestDispatcher(String
url)中的url可以使用相對路徑(兩個資源在同一個目錄下,所以省去路徑),也可以絕對路徑。假如你寫成相對路徑時,比如
request.getRequestDispatcher("add").forward(request, response);
系統會在同一目錄下找add,見後面的例子。
但是假如你寫成request.getRequestDispatcher(/WebModule1/jsp1.jsp).forward
(request, response); 系統也會傻傻的
變成:request.ge

詳情請見:http://www.mark-to-win.com/index.html?content=Jsp/jspUrl.html&chapter=Jsp/jsp2_web.html#DifferenceRequestDispatcher