關於理解request和response上的問題:
1.request.getRequestDispatcher()是請求轉發,前後頁面共享一個request ; response.sendRedirect()是重新定向,前後頁面不是一個request。request.getRequestDispather();返回的是一個RequestDispatcher對象。
2.RequestDispatcher.forward()是在服務器端運行;
HttpServletResponse.sendRedirect()是通過向客戶浏覽器發送命令來完成.
所以RequestDispatcher.forward()對於浏覽器來說是“透明的”;
而HttpServletResponse.sendRedirect()則不是。
3.ServletContext.getRequestDispatcher(String url)中的url只能使用絕對路徑; 而ServletRequest.getRequestDispatcher(String url)中的url可以使用相對路徑。因為ServletRequest具有相對路徑的概念;而ServletContext對象無次概念。RequestDispatcher對象從客戶端獲取請求request,並把它們傳遞給服務器上的servlet,html或jsp。