一、转发
在Servlet中实现页面的跳转有两种方式:转发和重定向。
1.转发的概念:
由服务器端进行的页面跳转。
2.原理
3.转发的特点:
- 地址栏不发生变化,显示的是上一个页面的地址
- 请求次数:只有1次请求
- 根目录:http://localhost:8080/项目地址/,包含了项目的访问地址
- 请求域中数据不会丢失
4.如何调用
request.getRequestDispatcher("/地址").forward(request, response);
5.案例
需求
实现从OneServlet中转发到TwoServlet
步骤
- OneServlet向请求域中添加了一个键和值,转发给TwoServlet
- TwoServlet就从请求域中取出键和值,打印到浏览器上。
效果
二、重定向
1.概念
由浏览器端进行的页面跳转
2.原理
3.重定向特点
- 地址栏:显示新的地址
- 请求次数:2次
- 根目录:http://localhost:8080/ 没有项目的名字
- 请求域中的数据会丢失,因为是2次请求
4.调用
response.sendRedirect("要跳转的地址")
5.重定向效果:
三、疑问
1.什么时候使用转发,什么时候使用重定向?
如果要保留请求域中的数据,使用转发,否则使用重定向。以后访问数据库,增删改使用重定向,查询使用转发。