请求的转发和重定向:
请求转发的代码:
具体:
①.请求的转发 :地址栏是初次发出请求的地址
请求的重定向:地址栏不再是 初次发出请求的地址。 地址栏为最后响应的那个地址。
②. 请求转发:在最终的Servlet中, request对象和中转的那个对象request是同一个对象。
请求对的重定向: 在最终的Servlet中, request对象和中转的那个对象不是同一个对象。
③.请求的转发:只能转发个当前WEB应用的资源
请求的重定向: 可以重定向到任意资源
④.请求的转发:/ 代表的是当前WEB应用的根目录http://localhost:8080/Servlet02
请求的重定向:/ 代表的是当前WEB 站点的根目录。http://localhost:8080
请求转发的代码:
//请求的转发
//1.调用HttpServletRequest 的getRequestDispatcher()方法获取RequestDispatcher对象。
//调用getRequestDispatcher()需要传入要转发的地址。
String path="testServlet";
RequestDispatcher requestDispatcher=request.getRequestDispatcher("/"+ path);
//2.调用HttpServletRequest 的forward(request,response)进行请求的转发
requestDispatcher.forward(request, response);
请求的重定向的代码:
//执行请求的重定向,直接调用response.sendRedirect(path)方法,
//path为要重定向的地址
String path="testServlet";
response.sendRedirect(path);
本质区别:请求的转发只发出了一次请求,而重定向则发出了两次请求 。
具体:
①.请求的转发 :地址栏是初次发出请求的地址
请求的重定向:地址栏不再是 初次发出请求的地址。 地址栏为最后响应的那个地址。
②. 请求转发:在最终的Servlet中, request对象和中转的那个对象request是同一个对象。
请求对的重定向: 在最终的Servlet中, request对象和中转的那个对象不是同一个对象。
③.请求的转发:只能转发个当前WEB应用的资源
请求的重定向: 可以重定向到任意资源
④.请求的转发:/ 代表的是当前WEB应用的根目录http://localhost:8080/Servlet02
请求的重定向:/ 代表的是当前WEB 站点的根目录。http://localhost:8080