JSP的四大作用域

前言

JSP全称Java Server Pages(中文名叫Java服务器页面),是一种动态网页开发技术。有经验的开发人员应该清楚JSP有9大内置对象和4大作用域,初学者可能不了解。在这里,进修者不讲9大内置对象,只讲JSP的4大作用域。

进入正文之前,先给大家准备一道面试题,每天积累一点点面试经验。

JSP四大作用域分别是什么?

问题分析考官主要考察点在JSP,目的是检查面试者有没有实际开发经验

答案:这里先不给大家答案,读者可以通过正文的学习来总结归纳出答案。当然我也会给出答案的,关键看你们能否找到了。

正文

四大作用域

为什么JSP中要引入4大作用域呢?其主要原因是为了解决在页面、请求以及用户之间传递和共享数据问题。JSP的4种作用域分别为:page、request、session、application。这些作用域规定了数据可以传递和共享的范围以及数据存活的时间。

page

JSP默认的作用域是page,它是页面级的,就是说它只在当前页面有效。如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前JSP页面里。 从把变量pageContext开始,到JSP页面结束,你都可以使用这个变量。不过在开发中使用的不多。

1 <%
2     out.print(pageContext.getAttribute("userName")); 
3     pageContext.setAttribute("userName", "孙悟空");
4 %>

如果是从其他页面forward跳转过来的,上面获取userName的值就是空的。如果本页面中前面有对这个属性赋值,那么当前页面获取这个userName是可以拿到的。

request

request是请求作用域。如果把变量放到request里,就说明它的作用域是request,它的有效范围是当前请求周期。所谓请求周期,就是指从http请求发起,到服务器处理结束,返回响应的整个过程。在这个过程中可能使用forward的方式跳转了多个jsp页面,在这些页面里你都可以使用这个变量。它在开发中使用是非常多的。

session

session是会话作用域。如果把变量放到session里,就说明它的作用域是session,它的有效范围是当前会话。所谓当前会话,就是指从用户打开浏览器开始,到用户关闭浏览器这中间的过程。这个过程可能包含多个请求响应。也就是说,只要用户不关浏览器,服务器就有办法知道这些请求是一个人发起的,整个过程被称为一个会话(session),而放到会话中的变量,就可以在当前会话的所有请求里用。它也是使用比较多的,如:存放用户登录信息,购物车功能等。

application

application是应用作用域。如果把变量放到application里,就说明它的作用域是application,它的有效范围是整个应用。整个应用是指从应用启动,到应用结束。我们没有说“从服务器启动,到服务器关闭”,是因为一个服务器可能部署多个应用,当然你关闭了服务器,就会把上面所有的应用都关闭了。application作用域里的变量,它们的存活时间是最长的,如果不进行手工删除,它们就一直可以使用。与上述三个不同的是,application里的变量可以被所有用户使用。这在其他scope中都是不会发生的,page, request, session都是完全隔离的,无论如何修改都不会影响其他人的数据。因为application的范围过大,实际开发中应尽量少用。

小结

通过阅读正文内容,我想大家大概了解了JSP的4种作用域。随着现在技术的不断更新,虽然后面会使用的越来越少,不过对于底端学习还是有帮助的。

 面试题答案见评论区哦!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进修者之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值