zoukankan      html  css  js  c++  java
  • 理解session

    JavaEE规范中,session被定义为一个具体的接口,javax.servlet.http.HttpSession,这个接口最终由符合 JavaEE规范的应用服务器来实现,如我们最常用的Tomcat、Weblogic、Websphere等,session通常是存储在服务器内存中的 (也有其它存储方式,但这里只讨论这种情况),也就是说session是服务器创建的,而不是浏览器创建的。

    在服务器上,通过session来区分每一个上网用户,用户只要连上服务器,就会立即分配一个Session 给用户

      Session 主要方法:

        服务器上通过session给每一个用户分配一个不会重复的session ID,sessionID 是由服务器统一管理的,人为不能控制。

        session.getId();  长度:32

      判断是否为新的session

        public boolean isNew();

      Session的属性设置

        设置属性:public void setAttribute(String name,Object value);

        取得属性:public Object getAttribute(String name)

        删除属性:public void removeAttribute(String name)

      注销用户:让用户的session失效

        如果session失效,则在session所保留的全部操作也会消失

        public void invaldate() 是session失效(手工)

        如果session长时间不被使用,也会自动失效

      得到session的创建时间

        public long getCreateTime()

        此方法放回long类型,通过new Date()可以取得一个完整时间

        取得用户最后操作的时间:pubic long getLastAccessedTime();

      总结

      Session将信息保存在服务器上,而cookie保存在客户端上

      Session比Cookie更安全,Session比Cookie更占资源

      Session是消耗服务器内存的,所以要合理使用Session,别什么东西都往Session里放。

      Session是由服务器创建的,跟浏览器没有半毛钱关系,浏览器只是拿到一个JSESSIONID。

      开发原则:Session 要尽量少用,尽量少向Session中保存信息

      Session使用了Cookie的机制,如果Cookie被禁用,则Session也无法使用,因为客户端的Session ID以Cookie的形式存在,保存在客户端的内存中,我们可以通过url重写来保证session的有效性。

      重写URL的方法如下

      resp.encodeURL(request.getRequsetURL().toString());

  • 相关阅读:
    Java之this关键字的用法
    JavaSE 之 final 初探
    LinkedList 浅析示例
    HashSet 浅析示例
    ArrayList 浅析示例
    MySQL5.7 修改密码
    IE10 和 Chrome50 对日期 new Date() 支持的区别
    databtables 设置(显示)行号
    团队管理
    财务名称
  • 原文地址:https://www.cnblogs.com/tgq0101457/p/8650486.html
Copyright © 2011-2022 走看看