一、页面转向

页面转向可以调用函数:

1
response.sendRedirect("xx.jsp");
  • 页面转向时 request 和 response 的信息都丢失了,它是重新发起一个定向请求,和原先的没有关系了.
  • 由于它是新的定向请求,所以效率不高。页面转向可以用在同一个应用中,也可以用在不同应用中。也就是说 redirect 可以转到外部系统。
1
2
3
4
response.sendRedirect("xx.jsp");
// 等同于
response.setStatus(302);
response.setHeader("Location","xx.jsp");

二、页面转发

页面转发调用函数:

1
request.getRequestDispatcher("xx.jsp").forward(request,response);
  • 页面转发效率高,同时 request 中的对象还可以在下一页面使用

  • 注:转发不能转发到本 web 服务器以外的地址

  • 转发:指一个 web 资源收到客户端请求,通知服务器去调用另外一个 web 资源进行处理。

1
2
3
4
5
6
7
// 获取username 的值
String u = request.getParameter("username");
// 设置request的属性
request.setAttribute("username",u);
// 使用转发的方法,把 request,response对象转发个下一个页面
// 所以下一个页面和上一个页面用的是同一个 request,response对象 ,可以获取相应的值
request.getRequestDispatcher("/servlet2").forward(request,response);