Cookie和Session的特点
Cookie(不是jsp的内置对象):以键值对的形式存储,即name=value
包:javax.servlet.http.Cookie
构造方法:
常用方法:
获取当前Cookie对象的name值:String getName()
获取当前Cookie对象的value值:String getValue()
设置当前Cookie对象的最大有效期,单位为秒:public void setMaxAge()
服务端增加Cookie对象:response.addCookie(Cookie cookie)
客户端获取Cookie对象,ps:不能直接获得单个Cookie,只能一次性获取全部的Cookie:Cookie[ ] getCookies( )
注意:除了自己设置的Cookie对象之外,还有一个name值为JSESSIONID的cookie
Session(jsp的内置对象):会话(浏览器的开始-关闭)
包:javax.servlet.http
Session机制:客户端第一次请求服务端,服务端会生成一个session对象(用于保存客户信息),并且每一个session都会有唯一的一个sessionId(用于区分session),服务端产生cookie对象,该cookie的name值=JSESSIONID,value值=服务端sessionId的值,然后服务端响应回给客户端的时候,客户端就有了一个name为JSESSIONID的cookie,客户端的cookie就可以和服务端的session对应(JSESSIONID-sessionId)
第二次访问时,客户端会拿JSESSIONID去服务端的session中匹配sessionId,如果匹配成功说明不是第二次访问。
常用方法:
获取sessionId:
判断是否为第一次访问:
使session失效:void invalidate( )
设置属性:void setAttribute(String name,Object value )
获取属性:Object getAttribute( Object name,Object value)
设置最大有效,非活动时间:void setMaxInactiveInterval( )
获取最大有效,非活动时间:int getMaxInactiveInterval( )
cookie和session的区别:
- cookie保存在客户端,session保存在服务端
- cookie(客户端)较不安全,session(服务端)较为安全
- cookie保存的是String,session保存的是Object