cookie、session

来源:互联网 发布:linux curl post body 编辑:程序博客网 时间:2024/06/05 22:37
  1. Cookie干嘛的?  
  2.   会话(cookie,session)技术的一种.  
  3.   因为http协议是无状态的,每次都是基于一个请求一个响应.每次请求和响应都跟上次没有关系.  
  4.   我们需要记录之前对话信息.  
  5.   cookie技术.是属于客户端(浏览器)保存信息的技术.  
  6.     
  7.   
  8.   
  9. cookie怎么用?  
  10.     1.添加cookie到浏览器  
  11.                 1>新建一个cookie(键值对)  
  12.                 Cookie cookie = new Cookie("name""tom");  
  13.                 2>将cookie 添加到响应中  
  14.                 response.addCookie(cookie);  
  15.     2.浏览器发送cookie到服务器,如何取  
  16.             1>获得所有浏览器发送的cookie  
  17.                 Cookie[] cookies  = request.getCookies();  
  18.             2>遍历并判断我们要找的cookie  
  19.                     if(cookies!= && cookies.length>0){  
  20.                         for(Cookie c : cookies){  
  21.                                 if(c.getName().equals("name")){  
  22.                                     System.out.println("获得的cookie:"+c.getName()+":"+c.getValue());  
  23.                                 }  
  24.                         }  
  25.                     }  
  26. cookie原理.  
  27.     让浏览器记住键值对.是向响应头中添加一下头即可:  
  28.         set-Cookie:name=tom;  
  29.     浏览器记住之后,向服务器发送键值对,是在请求头中添加下面的信息:  
  30.         Cookie: name=tom;  
  31.   
  32.   
  33. cookie细节问题:  
  34.     1.浏览器记多久?  
  35.         默认是在会话期间有效.(关闭浏览器,cookie就被删除).(有效时间-1)  
  36.     2.有效时间如何设置?  
  37.         //设置cookie的最大有效时间  
  38.         1>设置一个正数,标示最大有效时间.单位是秒  
  39.         //cookie.setMaxAge(60*60);  
  40.         2>设置为-1 , 就是相当于默认有效时间, 浏览器关闭就消失.  
  41.         //cookie.setMaxAge(-1);  
  42.         3> 标示cookie的有效时间为0.发送到浏览器就消失了.  
  43.                 //利用有效时间为0 这件事,我们可以做删除cookie的操作.  
  44.                 // 因为同一个路径 ,不能存在相同的cookie(键相同).  
  45.                 // 我们可以通过覆盖的方式,设置有效时间为0. 删除cookie  
  46.         cookie.setMaxAge(0);  
  47.           
  48.     3.浏览器在什么情况下发送cookie(路径)  
  49.             cookie的默认路径就是发送cookie的servlet所在目录.  
  50.                 /Day09-cookie   
  51.                 /Day09-cookie/abc/xxxServlet  
  52.             访问路径如果是cookie路径的子路径那么,浏览器就会把该cookie告诉服务器.  
  53.     4.cookie中的域 (了解)  
  54.         想要以下三个 主机和主机下的项目能共享一个cookie.  
  55.             www.baidu.com  
  56.             music.baidu.com  
  57.             map.baidu.com  
  58.         完成两步即可:   
  59.             1.设置cookie的域为 ".baidu.com"  
  60.             2.设置cookie路径 为: "/"   
  61.         以上就是跨主机访问cookie.不常用.  



  1. Session  
  2.   
  3. 1什么是session  
  4.  服务器端保存会话信息的技术.  
  5.       
  6.   
  7. 2.怎么用  
  8.             //1 如何获得session  
  9.             HttpSession session = request.getSession();  
  10.             //2 如何操作session  
  11.         //          session.setAttribute(arg0, arg1)  
  12.         //          session.getAttribute(arg0)  
  13.         //          session.removeAttribute(arg0)  
  14.         //          session.getAttributeNames()  
  15.       
  16. 3.原理  
  17.     浏览器第一次访问服务器,服务器会在内存中开辟一个空间(session),并把session对应的ID发送给浏览器.  
  18.     那么下次浏览器再去访问服务器,会把sessionID 交给服务器,服务器通过sessionID 找到刚才开辟的空间.  
  19.     以上就是session的原理.  
  20. 4.session细节问题  
  21.     1> 服务器让浏览器记住sessionID的cookie 默认过期时间是 (-1)==> 关闭浏览器 cookie就丢失 ==>  cookie丢失 sessionID就丢失 ==> 找不到服务器的session   
  22.     2> session中除了 4个操作 map的方法之外,还有哪些方法.  
  23.         long getCreationTime()   获得创建时间  
  24.         String getId()    获得sessionID  
  25.         long getLastAccessedTime()   获得最后一次访问时间  
  26.         int  getMaxInactiveInterval()  获得session的寿命  
  27.         void setMaxInactiveInterval(int interval)   设置session的过期时间   
  28.         void invalidate()   让session立即失效  
  29.         boolean isNew()    
  30.     3> 关于设置session的最大有效时间  
  31.         默认是30分钟. ==> 在tomcat的web.xml中 <session-config> 配置的.  
  32.         如何修改session的过期时间?  
  33.             1.修改在tomcat的web.xml中 <session-config> ==> 影响服务器中的所有项目  
  34.             2.在项目的web.xml中 加入<session-config> 配置.==> 影响的是当前项目  
  35.             3.通过setMaxInactiveInterval(int interval)方法设置.==> 当前操作的session  
  36.               
  37.     4>(了解内容)URL重写  
  38.         如果浏览器 禁用cookie功能不能保存任何cookie.那么session技术要是用 cookie来保存sessionID. 没有cookie怎么保存?  
  39.             使用url重写解决该问题.  
  40.             将页面中所有的连接 末尾全都加上 cookieid的参数. 这样用户点击连接访问网站,通过url把SeesionID带到了服务器.这样就解决了.  
  41.             但是 互联网行业没有这么干的.  

原创粉丝点击