zoukankan      html  css  js  c++  java
  • 170814关于Cookie的知识点

    1.会话控制 

                    Http协议   Http协议两个缺陷:

                             1.HTTP协议是纯文本的    2.HTTP协议是无状态的    

                                       服务器不能简单的通过HTTP协议来区分多次请求是否发自同一个用户    虽然通过HTTP协议不能区分不同请求是否来同一用户,但是我们实际生活却有这样的需求。

     [1] Cookie   

              看电影    

                    去电影院看电影时,检票人员是认票不认人。 

                    电影院的运作流程     1.印刷电影票     2.将票发给看电影     3.看电影的拿着票来看电影     4.检票    

              简介    

                    我们想可以通过服务器向浏览器发送一个类似票的东西,浏览器在访问服务器时就可以拿着票来访问,服务器就可以根据这个票来识别不同的用户。 服务器发送给浏览器的这张票我们称为Cookie。  

                   Cookie的使用流程:

                          1.服务器先要创建Cookie     2.将Cookie发送给浏览器     3.浏览器带着Cookie访问服务器     4.服务器检查浏览器的Cookie        

                   Cookie实际上就是一个头     服务器通过响应头将Cookie发送给浏览器, 浏览  器通过请求头将Cookie发回给服务器, 服务器可以根据不同的Cookie来识别不同的用户。

                    使用Cookie    - 创建Cookie     Cookie cookie = new Cookie(name,value);        

                    发送Cookie      response.addCookie(cookie);     注意:可以发送多个cookie!         - 读取Cookie   

                                             request.getCookies(); 返回的是一个Cookie数组。  

                                             虽然Cookie是一个键值对结构,但是它并没有给咱们提供一个根据键获取值的方法。      我们要想读取Cookie的信息,只能通过遍历数组。       

                     修改Cookie     一旦Cookie发给浏览器以后,服务器便不能直接修改Cookie, 但是可以通过使用同名Cookie来替换的老Cookie方式来间接的修改      

                     Cookie的有效时间    - Cookie的默认有效时间为一次会话,当关闭浏览器时,Cookie将失效。       

                                            通过setMaxAge(秒数)来设置Cookie的有效时间    -//当秒数大于0时,有效时间会设置为相应的秒数     cookie.setMaxAg(30);

                                             //当秒数等于0时,代表Cookie立即失效,浏览器不会保存。  

                     cookie.setMaxAge(0);       //当秒数小于0时,和不设置是一样,一次会话中有效     

                     cookie.setMaxAge(-100);         设置一个长久有效的Cookie     cookie.setMaxAge(60*60*24*365*10)      在程序中使Cookie立即失效     

                                                                      还可以使用一个同名的,立即失效的Cookie来替换已有Cookie     

                     注意:不建议在cookie中传递中文,会用base64编码!         

                    Cookie的Path    path指的Cookie的路径,所谓的Cookie路径就是指,浏览器在访问哪些地址时会携带Cookie。

                                              Cookie默认有效路径是项目的根目录,只要访问当前项目下的资源就会带着Cookie,通过setPath()方法来设置Cookie有效路径   

                    //修改Cookie的有效路径    

                    //Cookie的路径由浏览器解析,所以设置路径时需要加上项目名    

                    cookie.setPath(request.getContextPath()+"/hello");   

                     应用:    1.可以用来保持用户的登录状态    2.可以用来记录用户上次输入的用户名        3.广告的推送    

                     Cookie练习    

                     模拟一个taobao的功能,保存用户输入用户名。    

                     用户在login.jsp输入用户名和密码 , 请求发送个LoginServlet    

                     LoginServlet收到请求行,检查用户名和密码是否正确。(默认登录成功)     如果正确,则将用户名保存到一个Cookie中,并发送给浏览器 ,重定向到 login-success.jsp     如果错误,转发到login.jsp

  • 相关阅读:
    JDBC连接MySQL并且查询操作。
    struts
    KMP 剪花布条hdoj2087
    线段树---敌兵布阵hdoj 1166
    设计模式----观察者模式
    线段树--hdoj1754
    ZOJ 2283 Challenge of Wisdom
    SGU 134 Centroid
    UVA 1637 Double Patience
    HDU 4389 X mod f(x)
  • 原文地址:https://www.cnblogs.com/12344321hh/p/7388759.html
Copyright © 2011-2022 走看看