zoukankan      html  css  js  c++  java
  • JSP Cookie 处理

    Cookie是存储在客户机的文本文件,它们保存了大量轨迹信息。在Servlet技术基础上,JSP显然能够提供对HTTP cookie的支持。

    通常有三个步骤来识别回头客:

    1. 服务器脚本发送一系列cookie至浏览器。比如名字,年龄,ID号码等等。
    2. 浏览器在本地机中存储这些信息,以备不时之需。
    3. 当下一次浏览器发送任何请求至服务器时,它会同时将这些cookie信息发送给服务器,然后服务器使用这些信息来识别用户或者干些其它事情。

    JSP Cookie处理需要对中文进行编码与解码

    String   str   =   java.net.URLEncoder.encode("中文", "UTF-8");            //编码
    String   str   =   java.net.URLDecoder.decode("编码后的字符串","UTF-8");   // 解码
    
    (1)创建一个 cookie 对象
    Cookie cookie = new Cookie("key","value");
    
    (2) 设置有效期:调用 setMaxAge() 函数表明 cookie 在多长时间(以秒为单位)内有效。下面的操作将有效期设为了 24 小时。
    cookie.setMaxAge(60*60*24); 
    
    (3) 将 cookie 发送至 HTTP 响应头中:调用 response.addCookie() 函数来向 HTTP 响应头中添加 cookie。
    response.addCookie(cookie);
    
    示例
    <%
       // 编码,解决中文乱码   
       String str = URLEncoder.encode(request.getParameter("name"),"utf-8");  
       // 设置 name 和 url cookie 
       Cookie name = new Cookie("name",
               str);
       Cookie url = new Cookie("url",
                  request.getParameter("url"));
    
       // 设置cookie过期时间为24小时。
       name.setMaxAge(60*60*24); 
       url.setMaxAge(60*60*24); 
    
       // 在响应头部添加cookie
       response.addCookie( name );
       response.addCookie( url );
    %>
    
    <%
       Cookie cookie = null;
       Cookie[] cookies = null;
       // 获取 cookies 的数据,是一个数组
       cookies = request.getCookies();
       if( cookies != null ){
          for (int i = 0; i < cookies.length; i++){
             cookie = cookies[i];
             out.print("参数名 : " + cookie.getName());
             out.print("参数值: " + URLDecoder.decode(cookie.getValue(), "utf-8"));
          }
      }else{
          out.println("没有发现 Cookie");
      }
    %>
    
    删除 cookie 非常简单。如果您想要删除一个 cookie,按照下面给的步骤来做就行了:
        获取一个已经存在的 cookie 然后存储在 Cookie 对象中。
        将 cookie 的有效期设置为 0。
        将这个 cookie 重新添加进响应头中。
    
    <%
       Cookie cookie = null;
       Cookie[] cookies = null;
       // 获取当前域名下的cookies,是一个数组
       cookies = request.getCookies();
       if( cookies != null ){
          for (int i = 0; i < cookies.length; i++){
             cookie = cookies[i];
             if((cookie.getName( )).compareTo("name") == 0 ){
                cookie.setMaxAge(0);
                response.addCookie(cookie);
                out.print("删除 Cookie: " + 
                cookie.getName( ) + "<br/>");
             }
          }
      }else{
          out.println("没有发现 Cookie");
      }
    %>
    
  • 相关阅读:
    Device eth0 does not seem to be present, delaying initialization(解决克隆CentOS6.3虚拟机后网卡设备无法启动问题)
    CI整合Smarty
    修改crontab默认的编辑器
    添加数据之后不跳页面显示一个漂亮的提示信息(非ajax提交数据)
    jsp连接mysql数据库
    PHP使用CURL详解
    内、外部号码范围配置
    更改SAP的字段翻译
    SAP 应用服务负载均衡的实现
    SAP中禁止特定用户更改密码
  • 原文地址:https://www.cnblogs.com/loveer/p/11346347.html
Copyright © 2011-2022 走看看