• 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关闭.
    
    
  • 相关阅读:
    通过AOP引入Log4j
    Spring和Spring MVC框架进行单元测试
    JAVA异常基本知识及异常在Spring框架中的整体解决方案
    JAVA基础之重载,覆盖/重写,多态
    JAVA基础之内存
    JAVA基础之数组
    软件设计模式的原则
    ecstore 新增模块(页面)
    gitstack 密码重置
    thinkphp3.2整合workerman 多入口模式(windows)
  • 原文地址:https://www.cnblogs.com/skjy/p/9152595.html
Copyright © 2020-2023  润新知