在Servlet中实现页面的跳转有两种方式:转发和重定向
1、转发
什么是转发:由服务器端进行的页面跳转
原理图
转发的方法
转发案例:实现从OneServlet中转发到TwoServlet
步骤
1.OneServlet向请求域中添加了一个键和值,转发给TwoServlet
2.TwoServlet就从请求域中取出键和值,打印到浏览器上。
效果
代码
OneServlet
TwoServlet
转发的特点
1.地址栏不发生变化,显示的是上一个页面的地址
2.请求次数:只有1次请求
3.根目录:http://localhost:8080/项目地址/,包含了项目的访问地址
4.请求域中数据不会丢失
转发使用哪个方法?
2、重定向
什么是重定向:由浏览器端进行的页面跳转
原理图
重定向方法
重定向案例:从OneServlet重定向到TwoServlet
步骤
1.在OneServlet中向请求域中添加键和值
2.使用重定向到TwoServlet,在TwoServlet中看能否取出请求域的值
效果
代码
OneServlet
TwoServlet
重定向的特点
1.地址栏:显示新的地址
2.请求次数:2次
3.根目录:没有项目的名字
4.请求域中的数据会丢失,因为是2次请求
3、疑问
问:什么时候使用转发,什么时候使用重定向?
如果要保留请求域中的数据,使用转发,否则使用重定向。
以后访问数据库,增删改使用重定向,查询使用转发。
问:转发或重定向后续的代码是否还会运行?
无论转发或重定向后续的代码都会执行
4、小结:重定向和转发的区别