response.sendRedirect("url")和request.getRequestDispatcher("url").forword(request,response)這兩種方法都能實現頁面的跳轉,可是他們二者的本質是不同的.瀏覽器
1.response.sendRedirect("url")是重定向,當一個Servlet向當前的Servlet發出請求後,通過當前的 Servlet的方法後,會再向服務器發出一個請求,生定向到這個方法中指定的URL,也就是說,在這個過程當中,Servlet要向服務器請求兩次,才能 轉到請求的URL.服務器
2.request.getRequestDispatcher("url").forword(request,response)是請求轉發,也就是說,一個Servlet向當前的url
Servlet發出請求後,通過這個方法後,請求會繼續轉發到請求的URL,在這個過程當中,只向服務器發出一次請求.效率固然也就高了.spa
從在瀏覽器地址欄中顯示的URL來看,response.sendRedirect("url"),地址欄中的URL會發生變化,會顯示重定向的這個 URL的地址,而request.getRequestDispatcher("url").forword(request,response)這種方 法,地址欄中的地址是不變的.ip
3 另還有一種跳轉頁面的方法,也就是在Servlet中輸出JavaScript代碼,也能實現頁面的跳轉get
.PrintWriter out = request.getWriter();it
out.println("<script>window.location.href = "url"</script>");io
這種方法和response.sendRedirect()的效率是差很少的,也要向服務器發出再次請求才能跳轉到的URL.效率