Cookie和Session补充

来源:互联网 发布:linux c语言 sleep 编辑:程序博客网 时间:2024/06/05 19:36

        上次写了一篇关于cookie和session的文章:Session与Cookie解析,继续深入学习了之后,做几点补充。

        Cookie

        1、cookie的作用范围

        cookie分为两种,区分的标准就是其是否具有生命周期。如果不对cookie设置生命周期的话,则该cookie存放于内存中,默认只对浏览器当前窗口及其子窗口有效,对其他新的页面无效。

    而设置生命周期之后,对其他页面也有效。

    如:

<span style="font-size:18px;">Cookie c1 = new Cookie("username","Mr-Yang");//建立一个Cookieresponse.addCookie(c1);//不加时间限制的Cookie c2 = new  Cookie("username","Mr-Yang");//建立一个Cookiec2.SetMaxAge(60*60);//设置Cookie有效时间为1小时response.addCookie(c2);</span>
     

    下面我们通过图来理解一下: 

                         

                                     图一:未设置生命周期


              

                                       图二:设置了生命周期


    2、服务器可以向客户端写入的内容只能是文本内容,而客户端也可以通过禁用cookie来阻止浏览器的写入。

       另外,读取cookie时,一个servlet或JSP设置的cookie能被同一路径或子路径下面的servlet/jsp读到,其他路径无法读到。如:

<span style="font-size:18px;"><servlet-mapping>          <servlet-name>ShowCookies</servlet-name>          <url-pattern>/path/ShowCookies</url-pattern>//初始路径,此时可以读到</servlet-mapping><servlet-mapping>          <servlet-name>ShowCookies</servlet-name>          <url-pattern>/newPath/ShowCookies</url-pattern>//子路径,此时可以读到</servlet-mapping> <servlet-name>ShowCookies</servlet-name>          <url-pattern>/ShowCookies</url-pattern>//非子路径,此时不可以读到</servlet-mapping></span>
     


   Session

    1、关于Session,这里就补充一点吧,就是向浏览器发送SessionID的方式

       第一个就是通过cookie:

<span style="font-size:18px;"><pre name="code" class="java">HttpSession session = new request.getSession(true);//实例化一个Session,保证接收状态</span>
     <span style="font-size: 18px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">session.setAttribute("username","Mr-Yang");//写入内容</span>

       当cookie被浏览器禁用后,怎么办?

    此时就要采取第二种方式,重新URL:

<span style="font-size:18px;">HttpSession session = new request.getSession(true);response.getWriter.println(response.encodeURL(request.getRequestURL().toString()));</span>

       这样比较麻烦,但是能够无视浏览器禁用cookie的限制。


    随着学习的深入,对后续内容有了更深刻的理解之后,再继续分享给大家吧~

    

    

0 0
原创粉丝点击