JSP数据交互(二)

一 . 什么是cookie(javax.servlet.http)

答 : 1 . cookie是由Netscape公司发明 , 是最常用的跟踪用户会话的方式 ;     

       2 . 它是由服务器端生成并发送给客户端浏览器的 , 浏览器会将其保存为某个目录下的文件 ;     

       3 . cookie一般是用户在浏览网站的时候输入的一些文字信息或者选择 , 当用户下一次访问该网站时 , 服务器会先从客户端查看是否有保存下来的cookie信息 ,

    然后根据cookie的内容 , 呈现特定的页面给用户 ;     

     4 . 最典型的cookie应用情景就是保存用户登录网站的一些帐号和密码 , 用户可以选择下次自动登录 , 以简化操作 , 但在数据上 , 可能会有安全问题的存在 ;

二 . cookie作用的体现
答 : 1 . 对特定对象的追踪 , 如访问者的访问次数 , 最后的访问时间 , 路径等 ;      

       2 . 统计网页的浏览次数 ;      

       3 . 在cookie的有效期内记录用户的登录信息 ;      

       4 . 实现各种个性化服务 , 如针对不同用户喜好 , 以不同的风格展示不同的内容 ;

三 . 在JSP中使用cookie答 :

      1 . 创建cookie对象          

           Cookie newCookie=new Cookie(String name,String value);     

      2 . 写入cookie         

           response.addCookie(newCookie);

四 . cookie的常用方法答 :

      1 . void setMaxAge(int expiry) : 设置cookie的有效期以秒为单位 ;      

      2 . void setValue(String value) : 在cookie对象创建后 , 为cookie对象赋予新的值 ;      

      3 . String getName() : 获得cookie的名称 ;     

      4 . String getValue() : 获取cookie的值 ;     

      5 . int getMaxAge() : 获取cookie的有效时间 , 以秒为单位 ;

特别注意 :          

     1 . 通过response对象的addCookie()方法写入cookie ;        

     2 . 通过request对象的getCookie方法得到cookie数组 , 之后进行遍历输出cookie的值 ;        

     3 . cookie是通过name/value方式进行保存的 , 因此必须先调用cookie对象的getName()方法对每个数组成员的名称进行检查 , 直到找到我们需要的cookie , 之后用getValue()方法获取名称对应的值 ;

特别注意 :      

    如果不实用response重定向 , 而是使用getRequestDispatcher().forward(request,response)转发的话 , 是看不到cookie中的JSESSIONID的 ,

    因为重定向是将页面重新定向到一个新的地址 , 在跳转之前 , 已经对上一个请求作出了响应 , 在客户端写入了cookie ; 如果用转发的形式 ,

    跳转之前并没有对上一个请求做出响应 , 因而在客户端没有写入cookie , 这个时候只要直接输入URL , 再次跳转后的页面 , 就可以看到上次响应写入的cookie ;

原文地址:https://www.cnblogs.com/qinzhenyu/p/11136539.html