zoukankan      html  css  js  c++  java
  • Cookie

    cookie首先并不是java的概念,是web编程里一种客户端存储数据的方式(通常是加密过的)。
    有些数据,不是特别重要,但用户又经常要用到的,比如:网站用户的登录信息、历史查看记录等等,这些数据保存在服务器上会让服务器承担很大的压力,因此产生了cookie这样一种客户端数据存储的方式。意思就是说把你个人的一些数据保存在本地,这样服务器减少了压力,并且下次你访问网站的时候,服务器会主动去你的机器上读取这些数据并展现出来。
    比较常见的例子,有些网站登录的时候会有一个“记住登录状态”的选择,选了以后用户以后再来这个网站会发现不用再登录了,比如百度知道、猫扑等等;再比如最近优酷、腾讯视频上的的历史观看记录,不用登录,就可以记录你的机器上次看了哪些视频,看到多少分多少秒了,下次来直接点就能接着看,特别实用~~~~ PS.我最近一直在用,哈哈
    cookie虽然有诸多好处,但使用的过程中还是需要注意风险,因为客户端的不确定性,对安全和隐私要求较高的数据建议还是不要放在cookie里存储,比如网络游戏账号密码信息、电子银行账户信息等等。
    最后再说一个实例,当你清除浏览器缓存的时候,一般会有选择是否清除cookie,或者360安全卫士帮助你清除上网痕迹的时候,都会把本地cookie清除掉,这时候你会发现,你很长时间都不用登录的网站,比如百度知道、猫扑(原谅我经常上的网站就这俩,没别的例子可举- -!......),现在都需要重新登录了,原因就是cookie被清除掉了

     代码部分:
    首先在服务器上创建Cookie实例化对象并写入HttpServletRespons(响应使者)
    1、在servlet或jsp文件中导入javax.servlet.http.Cookie包
    2、接着开始创建:
            Cookie cookie=new Cookie(String key, String value); 
            cookie.setMaxAge(10);   //存活期为10秒
    3、然后写入HttpServletRespons(响应使者)
            response.addCookie(cookie);

    然后问题是如何把服务器端的数据写入到客户端上的硬盘

    4、HttpServletRespons(响应使者)开式带着Cookie数据返回客户端浏览器,不巧被IE截获并偷偷的存放到了C:Documents and SettingsAdministratorCookies目录下一个administrator@www.weisite.txt文件里面

          下面问题是jsp如何读取cookie中的文件,因为一方在客户端硬盘上,一方在远程服务器上,这就得看HttpServletRequest(数据采购员),不过之前我们必须得明确以下几点

    1、jsp文件运行的一瞬间客户端和服务端是出于连接交互状态的,如果服务端需要客户端的数据,那么他可以立刻通过网线传输过来,而这一任务就由HttpServletRequest(数据采购员)负责完成,换句话说客户端浏览器和服务器之间需要协作。
    2、浏览器的功能不只是接收到html标签,他还要接收来自服务器的动态命令和给远程web服务器实时的提供数据。包括从硬盘读取Cookie并传递给web服务器

    理解了这两点,应该可以搞清楚了。

    具体操作:
    <%
    Cookie cookies[]=request.getCookies(); //读出用户硬盘上的Cookie,并将所有的Cookie放到一个cookie对象数组里面
    Cookie sCookie=null; 
    String svalue=null; 
    String sname=null; 
    for(int i=0;i<cookies.length-1;i++){    //用一个循环语句遍历刚才建立的Cookie对象数组
    sCookie=cookies[i];   //取出数组中的一个Cookie对象

    sname=sCookie.getName(); //取得这个Cookie的名字
    svalue=sCookie.getValue(); //取得这个Cookie的内容
          
        }
    %>
  • 相关阅读:
    Arcgis javascript api离线开发环境搭建
    hbase基础
    Dojo 之 面向对象(转)
    Linux
    并行计算多线程常见问题
    [转]捕捉DataGridView的单元格编辑时的键事件
    'router' => array( 'routes' => array( 'album' => array( 'type' => 'segment', 'options' => arra
    [疯狂xml讲义]chap4之Schema记录
    [WinForm]DataGridView如何绑定对象的复合属性
    [C#之Ftp]RFC959笔记01
  • 原文地址:https://www.cnblogs.com/qiehaoleng/p/3960489.html
Copyright © 2011-2022 走看看