请求转发:
服务端的行为,地址栏不会发生改变,只有一个请求,request当中的数据在servlet程序中共享
转发的地址只能是网站内的资源,不能转到百度等页面
//请求跳转到servlets02
request.getRequestDispatcher("s02").forward(request, response);
//请求跳转到页面
request.getRequestDispatcher("web/user.html").forward(request, response);
//跳转到WEB-INF的页面
request.getRequestDispatcher("WEB-INF/test.html").forward(request, response);
重定向:
客户端的行为,地址栏发生改变,有两个请求,重定向可以转发到任意地址(可以跨越),request中的数据不共享
不能重定向到WEB-INF中的页面
可以重定向到百度等页面
response.sendRedirect("s02");
response.sendRedirect("https://wap.baidu.com");
//客户端行为,不能重定向到WEB-INF中的页面
在session中,当cookie在网页中被禁用之后,可以在网址栏中添加cookie中存的session的id即可访问,通过重定向方法转到另一个servlet:
HttpSession session=request.getSession();
//session设置数据
session.setAttribute("username","admin");
session.setAttribute("password","123456");
System.out.println(session.getId());
//重写url,追加sessionID
String newUrl=response.encodeRedirectUrl("getSession");
System.out.println(newUrl);
//重定向到要跳转的servlet
response.sendRedirect(newUrl);