• 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");
      }
    %>
    
  • 相关阅读:
    jquery学习以及下载链接
    iOS:进度条控件的详细使用
    iOS: 工具栏控件UIToolBar和工具栏按钮控件UIBarButtonItem的使用
    iOS:分段控件UISegmentedControl的详细使用
    iOS:分页控件UIPageControl的使用
    iOS:提示框(警告框)控件UIActionSheet的详解
    iOS:风火轮活动刷新视图控件UIActivityIndicatorView的详细使用
    iOS:UIPageViewController翻页控制器控件详细介绍
    iOS:提示框(警告框)控件UIAlertView的详解
    iOS:网络编程的第三方框架:AFNetworking、SDWebImage
  • 原文地址:https://www.cnblogs.com/loveer/p/11346347.html
Copyright © 2020-2023  润新知