JavaWeb同步学习笔记之十八、JavaWeb_请求的转发和重定向

JavaWeb_请求的转发和重定向

请求的转发和重定向

  • 1.本质区别:请求的转发只发出了一次请求, 而重定向则发出了两次请求。
		//请求转发的代码.
		//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);
  • 2.具体区别:
     1)
      ①请求的转发:地址栏是初次发出请求的地址。
      ②请求的重定向:地址栏不再是初次发出的请求地址。地址栏为最后响应的那个地址。
     2)
      ①请求的转发:在最终的 Servlet 中,request 对象和中转的那个 request 是同一个对象。
      ②请求的重定向:在最终的 Servlet 中,request 对象和中转的那个 request 不是同一个对象。
     3)
      ①请求的转发:只能转发给当前 WEB 应用的的资源。
      ②请求的重定向:可以重定向到任何资源。
     4)
      ①请求的转发:/ 代表的是当前 WEB 应用的根目录。
      ②请求的重定向:/ 代表的是当前 WEB 站点的根目录。
     5)注意:
	当前 WEB 应用的根目录:http://localhost:8080/项目名称/
 	站点的根目录:http://localhost:8080/

猜你喜欢

转载自blog.csdn.net/baidu_38688346/article/details/88106312