天天看点

请求转发、重定向、请求包含的比较请求转发、重定向、请求包含的比较

请求转发、重定向、请求包含的比较

一、请求转发与请求包含比较

1,如果在AServlet中请求转发到BServlet,那么在AServlet中就不允许再输出响应体,即不能再使用response.getWriter()和response.getOutputStream()向客户端输出,这一工作应该由BServlet来完成;如果是使用请求包含,那么没有这个限制;

2,请求转发虽然不能输出响应体,但还是可以设置响应头的,例如:response.setContentType(”text/html;charset=utf-8”);

3,请求包含大多是应用在JSP页面中,完成多页面的合并;

4,请求转发大多是应用在Servlet中,转发目标大多是JSP页面;

请求转发、重定向、请求包含的比较请求转发、重定向、请求包含的比较

二、请求转发与重定向比较

1  请求转发是一个请求,而重定向是两个请求;

2  请求转发后浏览器地址栏不会有变化,而重定向会有变化,因为重定向是两个请求;

3  请求转发的目标只能是本应用中的资源,重定向的目标可以是其他应用;

4  请求转发对AServlet和BServlet的请求方法是相同的,即要么都是GET,要么都是POST,因为请求转发是一个请求;

5  重定向的第二个请求一定是GET;