JavaBean标签中scope属性里的Session与Application的区别

Jsp中使用JavaBean是利用useBean标签来实现的,具体实现方法:

<jsp:useBean id="JavaBeanId" class="Class类" scope="" />

我在Jsp项目中创建了一个com.po包,包中建立了一个实体用户类,取名为Users,具体如下:
在这里插入图片描述
Users类中具体代码如下(其实无非就是两个私有属性,getter和setter方法,我只截了一部分图):
在这里插入图片描述
下面用jsp来实现JavaBean,JavaBean中的scope属性可以存放有四个值:
page、request、session、application。
page表示当前页面有效,request表示请求转发时保留数据请求重定向不保存数据。这两个都好说,重点是session和application。

session和application的共同点就是在进行请求重定向的时候数据会保留,不会消失(超链接或者是response.sendRedirect()),下面来看下区别:

先测试一下session属性:
这里我写了一个login.jsp,里面有一个表单,填写相关属性,表单提交到dologin.jsp去处理。

在dologin.jsp中使用JavaBean的setProperty将表单中的数据赋值到Users中

<jsp:useBean id="myUsers" class="com.po.Users" scope="session"/>

将scope属性设置为session

<jsp:setProperty property="username" name="myUsers"/>
<jsp:setProperty property="password" name="myUsers"/>

(这里username和password都是login.jsp中表单里的用户名和密码,一 一 对 应)

然后写一个超链接,测试其区别

<a href="testScope.jsp">测试session与application的区别</a>

testScope.jsp核心代码如下:

    <jsp:useBean id="myUsers" class="com.po.Users" scope="session" />
    用户名:<jsp:getProperty property="username" name="myUsers"/><br>
    密码:<jsp:getProperty property="password" name="myUsers"/><br>

这里通过getProperty获取属性值

同样将scope属性设置为session。启动Tomcat服务器,页面效果如下:
在这里插入图片描述

用户名:xiaonan
密码:123456

点击登录。
在这里插入图片描述

这里登录成功,我们来看一下testScope.jsp中的页面显示,点击超链接。
在这里插入图片描述
这里请求重定向也能保存数据,然后我把浏览器关了,再打开,直接访问testScope.jsp,看看能不能获取到数据。(这里没有关闭Tomcat服务器)

在这里插入图片描述
数据已经没了。

我们再来测试一下application。

其他内容不变,将scope属性中的session改为application即可。

<jsp:useBean id="myUsers" class="com.po.Users" scope="application" />

(其他内容略写)

再来看一下效果

在这里插入图片描述
(在dologin.jsp中也能获取到数据)

在这里插入图片描述

(请求重定向之后testScope.jsp也有数据)

再把浏览器关了过一会儿再打开直接访问testScope.jsp。

在这里插入图片描述

数据还在。

重启Tomcat服务器,再访问testScope.jsp。
在这里插入图片描述

没有数据了。

总的来说session和application的区别就是:

session只保存当前会话中存储的数据,当前会话关闭以后再打开新的会话数据就会消失。

application是无论当前会话关闭与否,是否开启新的会话,数据只要没被修改,就会一直保存,直到关闭服务器之后,数据才会消失。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值