Cookie-Session

会话:用户打开浏览器,点击多个链接,访问服务器多个web资源,到关闭浏览器的过程称为一个会话。

会话产生的两种技术:Cookie和Session

  • Cookie

    Cookie客户端技术,程序把每个用户的数据以cookie的形式写本地浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。

    CookieAPI:javax.servlet.http.CookieString getName(); //获得cookie名

String getValue();    //获得cookie值
void setValue();      //设置cookie值
void setMaxAge(int expiry) //设置cookie的有效期,默认一次会话有效。如果设置了有效期,关闭浏览器会把cookie信息保存到硬盘
// 若setMaxAge(0);表示关闭浏览器就删除此cookie 
int getMaxAge() //获取有效期 void setPath(String url) //设置cookie的有效路径,只有访问这个路径时才会带上cookie String getPath() //获得有效路径 void setDomain(String pattern) //设置有效域 String getDomain() //获取有效域 request.getCookie() response.addCookie()

    Cookie的注意事项:

      1. 一个cookie只能表示一种信息

      2. cookie大小限制为 4kb,浏览器一般只允许存放300个cookie

  • Session

    Session是服务器端技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务。

    一个session为一个用户浏览器服务

    服务器创建session对应session的id号,以cookie的形式回写给客户端,只要客户端不关,再去访问服务器时,都会带着session的id号,服务器发现客户机浏览器带session id过来了,就会使用内存中与之对应的session为之服务

    

Session session = request.getSession();
String getId();       //
void setAttribute(name,value);   //
Object getAttribute();       //
void removeAttribute();    //
invalidate();    //清空本次对话,删除session

    生命周期:

      创建:调用getSession方法时

      销毁:Session存放在服务器的内存中,可以持久化

         关闭服务器、会话过期(默认30min tomcat中可设置)

  
    <session-config>
        <session-timeout>15session-timeout>
    session-config>

 

转载于:https://www.cnblogs.com/xiaoyi0214/p/10281514.html

你可能感兴趣的:(java)