转发:
request.setAttribute("requestAttr","requestAttribute");
session.setAttribute("sessionAttr","sessionAttribute");
application.setAttribute("applicationAttr","applicationAttribute");%>pageContext:
request:
session:
application:
StringservletName= "myELServletPage.jsp";
RequestDispatcher requestDispatcher=request.getRequestDispatcher("/" +servletName);
requestDispatcher.forward(request, response);// 1、 重定向"/"代表当前web站点的根目录//转发:“/”代表当期web应用的 根目录。// 2、转发:只能转发到当前web应用的资源;//重定向:可以重定向到任何资源(包括外部资源)。%>
重定向:
request.setAttribute("requestAttr","requestAttribute");
session.setAttribute("sessionAttr","sessionAttribute");
application.setAttribute("applicationAttr","applicationAttribute");%>pageContext:
request:
session:
application:
// 1、 重定向"/"代表当前web站点的根目录//转发:“/”代表当期web应用的 根目录。
response.sendRedirect("myRedirectPage.jsp");// 2、转发:只能转发到当前web应用的资源;//重定向:可以重定向到任何资源(包括外部资源)。%>
myELServletPage.jsp与myRedirectPage.jsp内容都相同:
pageContext:
request:
session:
application:
当访问转发页面时,结果是:
当访重定向页面时,结果是:
转发与从定向区别:
1、用法却别:
重定向请求:1、调用HttpServletRequest 的getRequestDispatcher()的方法,获取RequestDispatcher对象, 调用getRequestDispatcher()需要传入转发的地址。
2、调用HttpServletRequest的forward(request,response)方法。
转发请求:调用HttpServletResponse对象的sendRedirect()方法,直接在sendRedirect()方法中传入要转发的目标地址。
2、重定向请求: "/"代表当前web站点的根目录;
转发请求:“/”代表当期web应用的 根目录。
3、重定向请求:可以重定向到任何资源(包括外部资源);
转发请求:只能转发到当前web应用的资源。
4、重定向请求:只发送了一个次请求。浏览器地址不发送变化。
转发请求:发送了两次请求。浏览器地址发送变化。
5、转化请求:目的页面可以接受该页面传递的参数信息。在最终的Servlet中,request对象和中转的那个request是同一个对象。
重定向请求:在最终的Servlet中,request对象和中转的那个request不是同一个对象。