1、在ForwardServlet中新建如下代码,让它跳转到testServlet,此代码为请求转发
2、新建TestServlet代码如下,只输出一句话
3、新建RedirectServlet 代码如下,让他也跳转到testServlet,此代码为请求重定向
4、在test.jsp中新增两个servlet的入口,分别为转发和重定向
5、预览效果如下
6、首先访问frowardServlet,输出如下需要注意的是,浏览器的URL地址转为了forwardServlet,控制台分别输出forwardServlet 和testServlet的内容
7、再访问redirectServlet,输出如下:同样注意:浏览器的URL地址为testServlet控制台分别输出了redirectServlet和testServlet的内容
8、总结下:请求的转发和重定向:本质区别:请求的转发只发出了一次请求,而重定向则发出了两次请求。请求的转发:地址栏是初次发出请求的地址。请求的重定向:地址栏不再是初次发出的请求地址。地址栏为最后响应的地址。还有个区别,在forwardServlet中新增如下代码:
9、testServlet新增代码如下
10、redirectServlet新增代码如下:
11、访问forwardServlet,发现,testServlet能正常获取到name的值
12、访问redirectServlet,发现,testServlet不能获取name的值
13、总结:请求转发:在最终的Servlet中,requerst 对象和中转的requerst是同一个对象。请求重定向:在最终的Servlet中,requerst 对象和中转的requerst不是同一个对象。