(當前地址是:http://localhost:8080/foo/stuff.html)
重定向: URL地址不是以“/”開頭:
response.sendRedirect(http://www.google.com);
現在的地址是:http://www.google.com
URL地址是以“/”開頭:
response.sendRedirect(/http://www.google.com);
現在的地址是:http://localhost:8080/http://www.google.com(當讓這樣的地址你會看到一個404錯誤,在這我只是為了理解更方便一點)
總結:從上面的內容我們看到,通過sendRedirect后url 的地址發生了變化, 我們通常叫他客戶端跳轉。
請求分派:RequestDispatcher有兩種方法得到:
1、request.getRequestDispatcher("/result.jsp");或request.getRequestDispatcher("result.jsp");
如果是由request引導的,那么“/”可有可無
2、getServletContext().getRequestDispatcher("/result.jsp");
如果是由getServletContext()引導的,那么必須讓“/”開頭
總結:嘗試后,你會發現,通過getRequestDispatcher后url 的地址沒有發生變化, 我們通常叫他服務器端跳轉。
另外再多嘴一句:ServletContext 接口下有一個getNamedDispatcher("name");name是Servlet或jsp的名字而不是路徑(需要在web.xml中定義他們的路徑)是為了以后修改方便