请求转发:request.getRequestDispatcher(URL地址).forward(request, response)
重定向:response.sendRedirect(URL地址)
一、处理流程不同
请求转发:
客户端发送一次请求,Servlet做出业务逻辑处理并调用forword()方法,把目标资源返回给客户端浏览器。
响应重定向:
- 客户端可能发送请求,Servlet做出业务逻辑处理,调用response.sendReadirect()方法,把要访问的目标资源作为response响应头信息发给客户端浏览器。
- 客户端浏览器重新访问服务器资源xxx.jsp,此时响应服务和资源服务是不同的服务器,对服务器和资源的访问都是多次,服务器再次对客户端浏览器做出响应。
二、路径不同
针对html:以“/“开头,是相对当前web服务器的根目录,即tomcat;不以“/“开头,是相对当前web应用程序的根目录,如”chapter01“.
针对请求转发:以“/“开头,是相对当前web应用程序的根目录;不以“/“开头,是相对当前资源所在目录,如src的webapp。
针对重定向:以“/“开头,是相对当前web服务器的根目录;不以“/“开头,是相对当前web应用程序的文档根目录,如src的main目录。
三、客户端浏览器地址栏显示