介绍
JavaWeb中的转发(forward)和重定向(redirect)是两种Web应用程序的跳转机制。
转发是指服务器将请求转发给另一个资源进行处理,它只能在服务器内部进行转发。转发时,请求对象和响应对象不变,转发后客户端浏览器的地址栏中显示的是Servlet。在Servlet中,可以通过RequestDispatcher对象的forward()方法来实现请求的转发。
重定向是指服务器告诉客户端浏览器重新发起一个新的请求,从而访问不同的资源。重定向后,请求对象和响应对象都发生了变化,客户端浏览器的地址栏中显示的是新的URL地址。在Servlet中,可以通过HttpServletResponse对象的sendRedirect()方法来实现请求的重定向。
转发跳转
特点:
只需1次请求即可完成 效率高 URL地址不会改变 例如从B转发到A URL地址依然是B
语法:
req.getRequestDispatcher("跳转地址").forward(req,resp);
重定向跳转
特点:
只需2次请求即可完成 效率低 URL地址会改变 例如从B定向到A URL地址就是A
超链接本质就是重定向跳转
语法:
resp.sendRedirect("xxx");