**session and cookie
1. 概念和原理
Cookie:??
?
Session:?
?
2. 用法举例说明
2.1?cookie应用:面试题: 如何保存用户的登陆状态呢?
Cookie[] cookies = request.getCookies(); if(cookies != null) for(Cookie cookie:cookies){ out.print(cookie.getName()+","+cookie.getValue()); } ?4. Cookie机制采用的是在客户端保持 HTTP 状态信息的方案;session机制采用的是在服务器端保持 HTTP 状态信息的方案
5. Cookie有效的路径:只对当前目录及其子目录有效,对父目录无效,可以调用Cookie对象的setPath()方法设置Cookie的有效路径例:cookie.setPath(/)
6. page指令中的session=false:当前页面的session对象不可用!但并不意味着当前页面不可以使用HttpSession对象,可以通过其他方法获取Session对象来使用;不是只要访问JSP页面或web应用,Session就会被创建,而是只有当Server端程序调用HttpServletRequest.getSession(true)这样的语句时才会被创建;关闭浏览器只会使存储在客户端浏览器内存中的session cookie失效,不会使服务器端的session对象失效
7. 设置Session的有效时间的两种方法:A:session.setMaxInactiveInterval() (单位为秒)
B: <session-config>
<session-timeout>20</session-timeout>
</session-config>
8. 保存session id的两种方式
A: 保存session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器
B: 由于cookie可以被人为的禁用,必须有其它的机制以便在cookie被禁用时仍然能够把session id传递回服务器,经常采用的一种技术叫做URL重写,就是把session id附加在URL路径的后面,附加的方式也有两种,一种是作为URL路径的附加信息,另一种是作为查询字符串附加在URL后面。网络在整个交互过程中始终保持状态,就必须在每个客户端可能请求的路径后面都包含这个session id.
?