JSP学习-传值2

Session

客户端的session其实是标记了你的请求来自哪个浏览
器,每一个客户端的session都是不同的

问题一:
在同一个客户端中session永远都一样吗?
    答:每一次重启浏览器,你的session Id就会发生改变,结果会导致,再也无法取回原来在服务断奶保存的数据.
    注意:有各种各样的浏览器,没打开一个不同的浏览器都是相当于重新打开了一个新的session,
    而浏览器重启是完全关闭,不是在打开一个相同的浏览器,是要把所有一样的浏览器都关闭,在重新打开session才会发生改变.
    
问题二:
假设客户端的session ID不变(浏览器不重启),那么服务器会一直保存这个数据吗?
    答:服务端(Tomcat)如果20分钟,没有人动,那么这个session就自动销毁
    
而session一般而言,就是用在记录你的登录信息

application

对于application在整个项目中,变量是有且只有一个的,所有的客户端是共同使用同一个application对象的

那么在人类社会中,哪里要用到application呢,
application就是用来解决资源分配问题的
那么那些应用场景是资源共享呢?
1.抢火车票
2.抽奖
3.统计点击次数


t1.jsp  创新一个新的session
t2.jsp  取出来显示
t3.jsp  取出来后,自增1,然后再重新赋值session

t1
<%
session.setAttribute("abc", 0);

%>

T2
<%
int i = (Integer)session.getAttribute("abc");
out.println("i的值:"+i);
%>

${abc}

T3
<%
int i = (Integer)session.getAttribute("abc");
//把取出来的值,自增1
i = i + 1;
//把运算后新的值,重新赋值给session
session.setAttribute("abc", i);
out.println("i的值:"+i);
%>


Application
A1.jsp
<%
application.setAttribute("abc", 0);
%>
A2.jsp
<%
int i = (Integer)application.getAttribute("abc");
i++;
application.setAttribute("abc", i);
%>
${abc}

关于Session和application的异同

1.session和application,request在配置属性,代码是一样的
2.session对每一个用户(浏览器)是单独的,而appli的所有用户(浏览器)是共享的一个的.从使用的角度来讲,共享同一个变量会出现资源争夺的冲突.(所有绝大部分是不用application的)
3.session服务器默认值保存20分钟(可以修改),而appli则是一直存在,知道tomcat关闭.

posted @ 2018-06-07 20:21  世界上最瘦的男人  阅读(107)  评论(0编辑  收藏  举报