1.首先说明以下重定向和转发的区别
重定向:浏览器发送请求到服务器之后,服务器会发一个状态码和再次请求的地址给到浏览器,浏览器根据地址再次请求服务器的过程。
转发:浏览器发送请求到服务器之后,服务器处理之后调用内部资源(另一个页面)将结果显示在浏览器上面。
区别:
一:重定向发生了两次请求,转发只有一次。
二:重定向之后浏览器的地址栏会发生改变,转发不会。
三:重定向可以范围任何资源即使不是同一个web应用,转发只能访问本web应用的资源。
四:重定向后request域失效不能通过request来共享数据,转发可以。
五:重定向是浏览器跳转,转发是服务器跳转
2.servlet和jsp中转发与重定向代码实现
servlet:转发:RequestDispatcher rd = request.getRequestDispatcher("hello.jsp");
//Forward to requested URL
rd.forward(request, response);
servlet:重定向:response.sendRedirect("http://jakarta.apache.org/struts");
jsp:转发:在JSP页面中,可以使用jsp:forward标签来转发请求,例如:
<jsp:forward page="hello.jsp">
jsp:重定向:<%response.sendRedirect("new.jsp");