一.请求重定向:
1.原始方式
response.setStatus(302);
response.setHeader("Locaton","/xxxxxx");
2.快捷方式
response.sendRedirect("/xxxx");
*3.额外的方式
response.setHeader("refresh","0;url=/xxxx");
<c:redirect>
二、请求转发
1.
ServletContext.getRequestDispatcher().forward();
2.
request.getRequestDispatcher().forward();
3.
pageContext.forward("");
<jsp:forward>
三、请求包含
1.
ServletContext.getRequestDispatcher().include()
2.
request.getRequestDispatcher().include()
3.
<%@ include file=""%>
4.
pageContext.include("/index.jsp");
5.
<jsp:include/>
6.
<c:import/>
转发与重定向的区别:
1.重定向的执行过程:Web服务器向浏览器发送一个http响应--》浏览器接受此响应后再发送一个新的http请求到服务器--》
服务器根据此请求寻找资源并发送给浏览器。它可以重定向到任意URL,不能共享request范围内的数据。
2.重定向是在客户端发挥作用,通过新的地址实现页面转向。
3.重定向是通过浏览器重新请求地址,在地址栏中可以显示转向后的地址。
4.转发过程:Web服务器调用内部方法在容器内部完成请求和转发动作--》将目标资源发送给浏览器,它只能在同一个Web应用中
使用,可以共享request范围内的数据。
5.转发是在服务器端发挥作用,通过forward()方法将提交信息在多个页面间进行传递。
6.转发是在服务器内部控制权的转移,客户端浏览器的地址栏不会显示出转向后的地址。