session默认有效期是30分钟

设置session有效期

***session默认有效期是30分钟***,设置session的有效期有三种方法:

1.在tomcat中的server.xml中定义:

在tomcat中的conf/server.xml文件可以修改服务器上的所有程序的默认有效期,设置单位为毫秒,定义代码如下:

<Context path="/test" docBase="/test"  
  defaultSessionTimeOut="36000" isWARExpanded="true"  
  isWARValidated="false" isInvokerEnabled="true"  
  isWorkDirPersistent="false"/>

2.在工程的web.xml中定义:

在工程web.xml中修改有效期,设置单位为分钟,定义代码如下:

<session-config>
<session-timeout>60</session-timeout>
</session-config>

3.通过Java代码设定:

设置单位为秒,设置为-1则表示永不过期

session.setMaxInactiveInterval(30*60

session和cookie的区别

1.保存的位置不同

cookie保存在浏览器端,session保存在服务端。

2.使用方式不同

cookie如果在浏览器端对cookie进行设置对应的时间,则cookie保存在本地硬盘中,此时如果没有过期,则就可以使用,如果过期则就删除。如果没有对cookie设置时间,则默认关闭浏览器,则cookie就会删除。
session:我们在请求中,如果发送的请求中存在sessionId,则就会找到对应的session对象,如果不存在sessionId,则在服务器端就会创建一个session对象,并且将sessionId返回给浏览器,可以将其放到cookie中,进行传输,如果浏览器不支持cookie,则应该将其通过encodeURL(sessionID)进行调用,然后放到url中。

3.存储内容不同

cookie只能存储字符串,而session存储结构类似于hashtable的结构,可以存放任何类型。

4.存储大小

cookie最多可以存放4k大小的内容,session则没有限制。

5.session的安全性要高于cooKie

6.cookie的session的应用场景

cookie可以用来保存用户的登陆信息,如果删除cookie则下一次用户仍需要重新登录
session就类似于我们拿到钥匙去开锁,拿到的就是我们个人的信息,一般我们可以在session中存放个人的信息或者购物车的信息。

7.session和cookie的弊端

cookie的大小受限制,cookie不安全,如果用户禁用cookie则无法使用cookie。如果过多的依赖session,当很多用户同时登陆的时候,此时服务器压力过大。sessionId存放在cookie中,此时如果对于一些浏览器不支持cookie,此时还需要改写代码,将sessionID放到url中,也是不安全。