请求转发和重定向
1、定义
请求转发:服务器程序内部请求转发,这个特性允许前一个程序用于处理请求,而后一个程序用来返回响应,请求转发只是把请求转发给服务器上的另一个组件(Servlet或Jsp等)。
重定向:服务端发送给客户端一个重定向的临时响应头,这个响应头包含重定向之后的URL,客户端用新的URL重新向服务器发送一个新的请求。
2、本质区别
请求转发发生在服务器端,由服务器(比如servlet)控制。
重定向发生在客户端,由客户(通常是浏览器)控制。
3、请求和响应次数
请求转发过程在同一个请求当中完成,只会返回一个响应。
重定向过程则发生在两个不同的请求中,会返回两个不同响应。
4、服务器端调用的方法
- 请求转发使用RequestDispatcher对象的forward()方法
request.getRequestDispatcher("edit_product.jsp").forward(request, response);
- 重定向则使用HttpServletResponse对象的sendRedirect()方法。
response.sendRedirect("list_product.jsp");