jsp页面跳转请求转发和请求重定向的区别

jsp实质上就是一个servlet,在完成多页面跳转的时候有俩种方式1.请求转发2.请求重定向
用servlet来举列子实现(现把三个Servlet在项目的web.xml中初始化和映射哦)
列子思路:写好一个界面,里面有请求转发实现的servlet(图中:ForwardServlet),和请求重定向的servlet(图中:RedirectServlet).通过点击界面的超链接来实现不同的跳转方式,跳转到TestServlet。这个过程来看俩种方式的不同
写一个one.jsp来开始跳转实验吧
在这里插入图片描述
那么俩次Servlet怎么来验证俩种跳转方式的不同呢?我们看他们源代码
在这里插入图片描述
在这里插入图片描述
俩者将要跳转到的TestServlet代码
在这里插入图片描述
验证解说:用request.setAttribute()方法丢进去一个值,在通过跳转去取,查看控制台值能不能在跳转后的TestServlet中取到,同时查看俩者的地址栏变化
运行结果:值能顺利的传过去的
在这里插入图片描述
说明在最终的Servlet中,request对象和中转的那个request是同一对象
运行结果:值不能顺利的传过去的
在这里插入图片描述
说明在最终的Servlet中,request对象和中转的那个request不是同一对象

运行好的界面
在这里插入图片描述
请求跳转地址栏为初次请求的地址
在这里插入图片描述
请求重定向地址栏为最后响应请求的地址
在这里插入图片描述
我再把代码改下,看能不能跳转到百度的网页上
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
请求转发方式报错了,说明跳转的范围资源只能是整个项目范围内的资源
在这里插入图片描述
成功了耶,说明重定向可以调到所有的资源哇
得出结论:
请求转发:地址栏是初次发出请求的地址,最终的Servlet中,request对象和中转的那个request是同一对象,跳转的范围资源只能是整个项目范围内的资源。
请求重定向:地址栏是最后响应请求的地址,最终的Servlet中,request对象和中转的那个request不是同一对象,说明重定向可以调到所有的资源。
图片解释
在这里插入图片描述
图中servlet1对应的是Redirectservlet
图中servlet2对应的是Testservlet
在这里插入图片描述
本人是新手,所以肯定有很多知识方面的不足,可能还有错误闹笑话,各位大佬有好的建议可以在下面留言哦。

猜你喜欢

转载自blog.csdn.net/shitou1259/article/details/86314334
今日推荐