2011-11-09 148 views
-1

我仍然對使用RequestDispatcher感到困惑。JSP:爲什麼我們需要RequestDispatcher?

如果我有一個內部使用的URL來調用一個servlet如下圖所示的JavaScript文件:

var url = "../../../../FeesServlet?selectedCode="+selectedCode+"&searchNameOrCode="+searchNameOrCode 

req.open("GET", url, true); 
req.onreadystatechange = someFunction(); 
req.send(null); 

爲什麼我們需要一個RequestDispatcher時,我能得到沒有它完成上述工作嗎?上面的代碼仍然稱作業務邏輯所在的servlet(資源),並且仍然可以完成工作。

我只是看不到需要RequestDispatcher。

回答

0

但你如何在servlet中轉發到新的url/servlet?您需要RequestDispatcher:

RequestDispatcher dispatcher = aRequest.getRequestDispatcher(aResponsePage.toString()); 
dispatcher.forward(aRequest, aResponse); 

如果您不需要轉發,則不需要調度程序。

+0

IC。現在來自JavaScript文件,當然,我可以調用上面顯示的servlet,但除非使用RequestsDispatcher,否則無法在servlet中調用另一個servlet(如JS)。我說得對嗎? – yapkm01

+0

是的,您可以使用HttpServletResponse重定向功能調用轉發或重定向。 –

+0

@Ramario重定向函數 - 在RequestsDispatcher上的forward/include時,執行不會在調用程序中繼續執行。答對了? – yapkm01