session和application——会话变量

session和application——会话变量

session和application的区别

session和application都属于会话,session是不共享会话,application是共享会话。
session一般用于存放用户登录状态,application一般用于存放非敏感的数据
代码一样,只是单词不同

Session与Application区别:

  1. session是会话变量,只要同一个浏览器没有被关闭,session对象就会存在。
    因此在同一个浏览器窗口中,无论向服务器发送多少请求,session对象只有一个。但是如果在一个会话中,客户端长时间不向服务器发出请求,session对象就会自动消失。这个时间取决于服务器,但是我们可以通过编写程序进行修改这个session的生命周期的时间。session.setMaxInactiveInterval(10000);//用来设置session的有效期为10000秒,超出这个范围将失效。并且通过session对象可以存储或者读取客户的相关信息,例如用户名或购物信息等,可以通过session对象的setAttribute(String name,Object obj)方法和getAttribute(String name)的方法实现。注意的是getAttribute()方法的返回值是Object类型,如果将获取到的信息赋给String类型的变量,则需要进行强制类型转换或者调用其的toString()方法。
    session.setAttribute("user","小名");
    String user=(String)session.getAttribute("user");
  2. application它类似于系统的全局变量,用于保存所有程序中的公有数据。它在服务器启动时自动创建,在服务器停止时销毁。
    当application对象没有被销毁的时候,所有用户都可以享用该application对象。它的生命周期可以说是最长的。但是其应用程序初始化的参数是要在web.xml文件中进行设置的,通过标记配置应用程序初始化参数。也就是说同时再打开另一个浏览器,他们使用的都是同一个application对象。
    版权声明:本文为CSDN博主「香柠檬YU」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/sinat_36841379/article/details/53509767

session的用法

js

//设置值
sessionStorage.setItem('key',value);
//得到值
this.num = sessionStorage.getItem('key');
//删除值
sessionStorage.removeItem('key');
//清除Session中所有的值
sessionStorage.clear();

jsp中使用

写入值
HttpSession session = req.getSession();
session.setAttribute("count",122333);
读取值
<div>${count}</div>

java

写入值
HttpSession session = req.getSession();
session.setAttribute("key", "value");
读取值
HttpSession session = req.getSession();
Object obj = session.getAttribute("key");

application的用法

jsp中使用

写入值
ServletContext application = req.getServletContext();
application.setAttribute("count",122333);
读取值
<div>${count}</div>

java读取值

ServletContext application = req.getServletContext();
Object obj = application.getAttribute("count");

java创建的session,如何用JavaScript 读取

Java创建的Session是存储在服务器端的,而JavaScript是在客户端的浏览器中执行的脚本语言,无法直接读取服务器端的Session对象。因此,JavaScript无法直接读取Java创建的Session。