`
chengyue2007
  • 浏览: 1489096 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Cookie详解

    博客分类:
  • java
阅读更多

一。

Cookie username_Cookie =new Cookie("topic_userId",userid.toString());
  username_Cookie.setMaxAge(-1);//
  username_Cookie.setDomain(".ncpqh.com");
  response.addCookie(username_Cookie);

 

setPath();同一个应用(项目),

和setDomain(); 不能同时用,不同的应用(项目),

当二级域名的时候属于后者

二。清除所有的cookie

/**  
     * 清空cookie  
     */  
    public static void clearCookie(HttpServletRequest request,HttpServletResponse response, String path) {   
      Cookie[] cookies = request.getCookies();   
      try  
      {   
           for(int i=0;i<cookies.length;i++)     
           {   
            //System.out.println(cookies[i].getName() + ":" + cookies[i].getValue());   
            Cookie cookie = new Cookie(cookies[i].getName(), null);   
            cookie.setMaxAge(0);   
            cookie.setPath(path);//根据你创建cookie的路径进行填写       
            response.addCookie(cookie);   
           }   
      }catch(Exception ex)   
      {   
           System.out.println("清空Cookies发生异常!");   
      }    
        
    }  

 

基本原理就是设置cookie的时间是0,当我们在添加的时候setDomain 的时候,我们在删除的时候也要和创建的时候最后设置一样

Cookie cookie5 = new Cookie("topic_userId", null); cookie5.setMaxAge(0); cookie5.setDomain(".ncpqh.com"); response.addCookie(cookie5);

 

 

 

cookie 是个键值对,可以担当用户名和密码的验证的效果,和session具有相同的作用,但是我认为这个必须要一开始就这样做,或者我们创建一个默认的方法来获取cookie中的数值,目前这个是个抽象的方法,有待于验证。

import="javax.servlet.http.Cookie"

Cookie cookie_name =new Cookie("Parameter","Value");

 

Cookie username_Cookie =new Cookie("username","waynezheng");
response.addCookie(username_Cookie);

 

读取客户端的Cookie

<%
 //从提交的HTML表单中获取,用户名
 String userName=request.getParameter("username");
 //以"username", userName 值/对 创建一个Cookie
 Cookie theUsername=new Cookie("username",userName);
 response.addCookie(theUsername);
%> 
<% Cookie myCookie[]=request.getCookies();//创建一个Cookie对象数组
 for(int n=0;n=cookie.length-1;i++);//设立一个循环,来访问Cookie对象数组的每一个元素
 Cookie newCookie= myCookie[n];
 if(newCookie.getName().equals("username")); //判断元素的值是否为username中的值
{

%> 

 你好,<%=newCookie.getValue()%>!//如果找到后,向他问好
<%}
%> 

设置Cookie的存在时间,及删除Cookie

  在JSP中,使用setMaxAge(int expiry)方法来设置Cookie的存在时间,参数expiry应是一个整数。正值表示cookie将在这么多秒以后失效。注意这个值是cookie将要存在的最大时间,而不是cookie现在的存在时间。负值表示当浏览器关闭时,Cookie将会被删除。零值则是要删除该Cookie。

<%
 Cookie deleteNewCookie=new Cookie("newcookie",null);
 deleteNewCookie.setMaxAge(0); //删除该Cookie
 deleteNewCookie.setPath("/");
 response.addCookie(deleteNewCookie);
%> 

<%
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的内容
%>
<%
}
%>
name  value
<%=name%> <%=svalue%>
=================================================================

正常的cookie只能在一个应用中共享,即一个cookie只能由创建它的应用获得。
1.可在同一应用服务器内共享方法:设置cookie.setPath("/");
本机tomcat/webapp下面有两个应用:cas和webapp_b,
1)原来在cas下面设置的cookie,在webapp_b下面获取不到,path默认是产生cookie的应用的路径。
2)若在cas下面设置cookie的时候,增加一条cookie.setPath("/");或者cookie.setPath("/webapp_b/");就可以在webapp_b下面获取到cas设置的cookie了。
3)此处的参数,是相对于应用服务器存放应用的文件夹的根目录而言的(比如tomcat下面的webapp),因此cookie.setPath("/");之后,可以在webapp文件夹下的所有应用共享cookie,而cookie.setPath("/webapp_b/");是指cas应用设置的cookie只能在webapp_b应用下的获得,即便是产生这个cookie的cas应用也不可以。
4)设置cookie.setPath("/webapp_b/jsp")或者cookie.setPath("/webapp_b/jsp/")的时候,只有在webapp_b/jsp下面可以获得cookie,在webapp_b下面但是在jsp文件夹外的都不能获得cookie。
5)设置cookie.setPath("/webapp_b");,是指在webapp_b下面才可以使用cookie,这样就不可以在产生cookie的应用cas下面获取cookie了
6)有多条cookie.setPath("XXX");语句的时候,起作用的以最后一条为准。
6)设置多个path的方法???
2.跨域共享cookie的方法:设置cookie.setDomain(".jszx.com");
A机所在的域:home.langchao.com,A有应用cas
B机所在的域:jszx.com,B有应用webapp_b
1)在cas下面设置cookie的时候,增加cookie.setDomain(".jszx.com");,这样在webapp_b下面就可以取到cookie。
2)这个参数必须以“.”开始。
3)输入url访问webapp_b的时候,必须输入域名才能解析。比如说在A机器输入:http://lc-bsp.jszx.com:8080/webapp_b,可以获取cas在客户端设置的cookie,而B机器访问本机的应用,输入:http://localhost:8080/webapp_b则不可以获得cookie。
4)设置了cookie.setDomain(".jszx.com");,还可以在默认的home.langchao.com下面共享。
5)设置多个域的方法???
最近的工作经常用到cookie,看了一些资料,虽然原来依赖cookie比较多的方案已经改成现在这个了,但是当时看得一些东西还是最好记下来,免得过些天就一干二净了,怪可惜的。老梁说过这样的文字最好不要是纯文本的,说得是。本来就已经很抽象了,最好弄点图表,就算用123列出来也好

 

 

分享到:
评论
1 楼 will_zhuzhu2 2014-09-20  
楼主说的挺实用的

相关推荐

    浏览器中使用JS操作Cookie详解

    并且在Cookie详解这篇文章中,介绍了如何在服务器端和使用JavaScript创建Cookie,并设置属性。 ​我们知道,Cookie是存储在客户端的,并且现在前后端分离慢慢变得流行起来,因此如何在浏览器上可以使用方便快捷的...

    java web cookie 详解 java web cookie 详解

    java web cookie 详解

    cookie 详解

    ### Cookie详解 #### 一、会话跟踪技术概述 会话跟踪是Web开发中的关键环节之一,用于确保用户的每次操作都被正确地关联到相应的会话中。常见的会话跟踪技术主要包括Cookie与Session。 #### 二、Cookie机制 ####...

    Cookie详解.pdf

    Cookie 详解 Cookie 是一种在 Web 应用程序中存储用户特定信息的方法。它是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息。 ...

    session和cookie详解

    ### Session与Cookie详解 #### 一、Session与Cookie的基本概念 **Session** 和 **Cookie** 是Web开发中用于保持客户端与服务器之间会话状态的重要技术。由于HTTP协议本身是无状态的,即服务器无法自动记录客户端的...

    Flash Cookie详解及其在网络教育中的应用.pdf

    Flash Cookie详解及其在网络教育中的应用

    session与cookie详解

    关于session和cookie的详细解释 &lt;br&gt;所有疑问通吃

    Cookie详解[定义].pdf

    此外,Cookie还包含一个域(domain)属性,限制了Cookie的可见性,只有指定域下的服务器才能访问该Cookie。路径(path)属性则指定了Cookie在哪个URL路径下有效。 4. **Session与Cookie的关系**: Session是服务器...

    php cookie 详解使用实例

    **PHP Cookie 详解与使用实例** Cookie 是一种在 Web 开发中常见的技术,它用于在客户端(用户的浏览器)和服务器之间存储和交换信息。本文将详细介绍 Cookie 的概念、工作原理以及如何在 PHP 中创建、读取、更新和...

    JavaScript操作Cookie详解

    主要介绍了JavaScript操作Cookie详解,本文讲解了什么是Cookie、Cookie基础知识、Cookie常见问题、cookie 有两种清除方式、Cookie基础用法、Cookie高级用法等内容,需要的朋友可以参考下

    cookie

    Cookie是Web开发中的一种关键机制,它用于在客户端和服务器之间传递信息,特别是在维护用户状态时。这篇博客文章深入探讨了Cookie的工作原理及其在实际应用中的使用。 首先,Cookie是由服务器端通过HTTP响应头Set-...

    JAVA之cookie与session

    #### 二、Cookie详解 **Cookie** 的主要功能是存储用户的状态信息,并且这些信息可以在多次请求之间共享。以下是 Cookie 的几个关键特性: 1. **Cookie的结构**:Cookie 由名称、值和一系列可选属性组成。这些属性...

    python使用cookie库操保存cookie详解

    Cookie用于服务器实现会话,用户登录及相关功能时进行状态管理。要在用户浏览器上安装cookie,HTTP服务器向HTTP响应添加类似以下内容的HTTP报头: 复制代码 代码如下:Set-Cookie:session=8345234;expires=Sun,15-...

    phpwind登录cookie演示

    《PHPWind登录Cookie详解》 PHPWind是一款广泛应用于社区建站的开源软件,其登录机制中的Cookie技术是网站用户身份验证的重要组成部分。本文将详细解析PHPWind登录过程中的Cookie使用,帮助开发者理解这一核心功能...

    JavaScript cookie详解及简单实例应用

    本文详细介绍了JavaScript中cookie的概念、基本属性以及如何在实际开发中应用cookie。cookie是一种能够让web浏览器存储小量数据并将其在浏览器和服务器之间传递的技术。其重要性在于能够在用户浏览器中持久化存储...

    chrome插件-editthiscookie

    **Chrome插件——EditThisCookie详解** Chrome浏览器作为全球广泛使用的网页浏览工具,其丰富的扩展插件库是其一大特色。其中,“EditThisCookie”是一款备受用户青睐的插件,专为Google Chrome量身定制,旨在帮助...

    用js写的cookie

    ### 使用JavaScript操作Cookie详解 #### 一、Cookie简介 Cookie是一种服务器端发送到客户端的小型文本文件,存储在客户端硬盘上。当用户访问网站时,这些Cookie会被重新发送回服务器,以便服务器能够识别用户并...

    第二节 XSS盗取cookie-01

    XSS盗取cookie详解 在Web安全领域中,XSS(Cross-Site Scripting)是一种常见的攻击手法,通过inject恶意脚本来盗取用户的Cookie信息。下面我们将详细介绍XSS盗取cookie的攻击原理、实施方法和防御策略。 Cookie...

    cookie,jsp详细介绍

    ### Cookie详解及JSP中的应用 #### 一、Cookie简介 Cookie是一种常用的技术,用于存储用户的浏览器信息。它被广泛应用于网站中,帮助网站记住用户的偏好设置或登录状态等信息,从而提供更个性化的用户体验。 ####...

Global site tag (gtag.js) - Google Analytics