在一个web应用中有两种方式完成资源的跳转
- 转发
- 重定向
重定向和转发的区别
- 代码
//转发:
//获取请求转发器对象
RequestDispatcher dispatcher=request.getRequeestDispatcher("不带项目名的路径");
//调用请求转发器的forward方法
dispatcher.forward(request,response);
//合并一行代码
request.getDispatcher("不带项目名的路径").forward(request,response);
//重定向:
response.sendRedirect("带项目名的路径");
//带项目名的原因:因为是浏览器重新发送请求到新的servlet中
- 形式
- 转发:一次请求
- 重定向:两次请求
- 本质区别
- 转发:由WEB服务器控制,A资源跳转到B资源,跳转动作在Tomcat服务器内部完成
- 重定向:由浏览器完成
- 如何选择
- 如果上一个Servlet中向request域中存入了数据,想在下一个servlet中取出来,使用转发机制
- 其他情况使用重定向
- 跳转的资源没有要求,可以是任何合法的资源
- 转发存在浏览器的刷新问题