之前呢在学习新闻小项目的时候,就有运用到的一些这方面的知识点;
现在就把它们细细解剖一下。了解它们的用途、区别......
一、对象(范围由小到大,性能损耗也增大,so尽量使用小范围):
(1)pageContext:只在当前页面有效
(2)request:请求(response:响应)
(3)session(用户级,存在与服务器端):会话(会话开始:打开浏览器;
会话结束:关闭浏览器。)
注意:关闭或切换浏览器则失效
(4)application:全局可用(整个项目)
注意:切换浏览器可用,担关闭则失效
二、跳转页面
1.转发(request:请求):
//代码:
request.getRequestDispatcher("跳转后的页面").forward(request,response);
优点:转发带有数据:直接把请求对象和响应对象,转发给目标页面
(通俗的讲:就是把数据传到了跳转后的页面)
缺点:传递的数据有效范围只在两个页面之间。
2.重定向(response:响应):
//代码:
response.sendRedirect("要跳转的页面");
特点:此种跳转页面不带有数据。
3. js 方式跳转:
//代码:
out.print("<script>location.href='要跳转的页面'</script>");
此方法可传值(加‘’?名字=数据‘’),也可不传。
三、多个页面跳转时,重定向与请求转发的区别:
当数据由a页面到b页面,再由b页面到c页面时:
a.请求次数:
重定向中:
实际上是a--b再回到a,然后a--c:
转发中:
则是a--b,然后 b--c:
b. 地址栏:
重定向:页面地址会从a到b再到c
转发:页面会从a到b,然后还是b.
为什么? 转发中的第二次跳转是服务器内部跳转
c.数据是否保留:
这个是要看对象的
request:重定向不会传值,
转发可以有传值。
session(application也一样):重定向可以有传值,
转发可以有传值。
今天的小知识点就这些,
如果有错误或者有疑问,随时欢迎来找我,拜拜~