`
hz_chenwenbiao
  • 浏览: 1010399 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

cookie的简单使用

阅读更多

一、cookie的作用

在我们平常写的B/S程序中,会经常用到cookie,主要有以下一些作用:

1、 记录用户名和密码

以及该用户需要保存的一些信息,如购物购站,使用cookie,可以让用户自动登录到站点等。

2、 定制站点

可以使用cookie来记录用户的偏好。

3、 定向广告

可以使用cookie来记录用记经常访问的主题,并向他们显示与这些主题相关的广告。


二、向客户程序发送cookie

1、 创建cookie对象

Cookie c = new Cookie(“userId”,”landril”);

2、 设置最大时效,默认该cookie是存储在浏览器的内在中,用户关闭浏览器则被删除,下面的方法是将cookie存储在硬盘上。

c.setMaxAge(60*60*24);//一天,如果设置为0则是删除该cookie

3、 将cookie放入到HTTP响应报头,可以使用HttpServletResponse的addCookie方法,此方法不修改之前指定的Set-Cookie报头,而是创建新的报头。

response.addCookie(c);

       注意:设置cookie的步骤为创建cookie对象,设置最大时效,将cookie放入响应报头,即发送到客户程序,记住一定要将cookie发送到客户程序


三、从客户端读取cookie

1、 调用HttpServletRequest的getCookies得到一个Cookie对象的数组

2、 对数组进行循环,调用cookie的getName方法,获取具体的cookie的值

 

Cookie[] cookies = request.getCookies();
if(cookies != null){
for(int i=0;i<cookies.length;i++){
        Cookie c = cookies[i];
        if(“userId”.equals(c.getName())){
        System.out.println(c.getValue());
}
}
}
 

 


四、cookie的常用方法

1、 setComment()/getComment():指定或查找与该cookie相关的注释

2、 setDomain()/getDomain():设置或读取该cookie适用的域

3、 setMaxAge()/getMaxAge():操作cookie保留的时间,多长时间后过期

4、 getName():读取cookie的名称

5、 setPath()/getPath():设置或取得cookie适用的路径

cookie.setPath(“/”);指定服务器的所有页面都应该收到该cookie

6、 setSource()/getSource():指定cookie是否只能通过加密连接(SSL)

默认false,表示cookie适用所有连接

7、 setValue()/getValue():指定或获取cookie的值


五、下面给出一个cookie的最简单的使用例子cookie.jsp:

 

<%@ page contentType="text/html; charset=GB2312" import="java.util.*"%>
<%@ page import="javax.servlet.http.Cookie" %>
<html>
<head>
<title>cookie 用户登录次数</title>
</head>
<body>
<center>
<font size = 5 color = blue>cookie 用户登录次数</font>
</center>
<hr><p></p>
<%
Cookie temp = null;
Cookie[] cookies = request.getCookies();
int cookielen = 0;
if(cookies != null)
	cookielen = cookies.length;
int count=1;
//取得cookie变数阵列的长度
 
if(cookielen != 0) //判断是否成功取得cookie资料
{     
       for (int i = 0; i < cookielen; i++)
       {                   temp = cookies[i]; //取得cookies数组中的Cookie变量
                            
              if (temp.getName().equals("accessCount"))
              { 
               count=Integer.parseInt(temp.getValue());//获取登录页面次数
              }
       }
}
 %>
 通过这个浏览器<font color = blue></font>
 您的登录次数是<font color = red>
   <%= count %>
   </font><br>
 <%
  //下次显示会多一次
Cookie accessCount = new Cookie("accessCount", String.valueOf(count+1));
 accessCount.setMaxAge(60);//这个只是设置它的生命周期,也就是说,当你设置了这个cookie的有效期为1分钟时,你关了浏览器它不是由浏览器来监视cookie文件夹,发现过期就删除去,而是当用户下去请求该站点时,站点会分析出这个cookie文件内容已过期,就会发一个新的文件内容到客户端,并请求删除或覆盖原来过期的cookie文件,然后浏览器才会执行删除操作,再访问原cookie文件时就找不到了
 response.addCookie(accessCount); //将更新后的数据存入cookie变数加入cookie中,存在客户端
%>
</body>
</html>

 

放入服务器,进行访问时,同时看一下你的浏览器存放cookie文件所在的文件夹,就可以看到访问期时,会产生一个cookie文件,当你不设置setMaxAge时或将它值设置为0时,就不会产生cookie文件,没有设置setMaxAge属性

cookie信息会存放在浏览器中,而设置了setMaxAge属性则会存放在磁盘中。

 

再转:


各位高手,建立的cookies,但是删除的时候失败,想问一下应该怎样做。我在一个test文件夹下的cookies.jsp里建立
了两个cookies,主要代码如下:

 

 

<%
Cookie sp=new Cookie("spread",spread);
Cookie spn=new Cookie("spreadN",spreadN);
sp.setMaxAge(360*24*60*60);
spn.setMaxAge(360*24*60*60);
sp.setPath("/");
spn.setPath("/");
response.addCookie(sp);
response.addCookie(spn);
%>
 

 


然后在同一个目录下用一个logout.jsp文件,想删除cookies,主要代码如下:

 

 

 

<%
Cookie sp=new Cookie("spread",null);
Cookie spn=new Cookie("spreadN",null);
sp.setMaxAge(0);
spn.setMaxAge(0);
sp.setPath("/");
spn.setPath("/");
response.addCookie(sp);
response.addCookie(spn);
%>

 但是删除不了,请求各位帮忙,解决了可加高分。

 

最佳答案

修改logout.jsp文件如下

 

 

<% 
Cookie[] cookies=request.getCookies();
 if(cookies!=null)   
 {   
     for(int   i=0;i<cookies.length;i++){
     Cookie sp = cookies[i].getName();
     if(sp.equals("spreadN"))   
      {   
          cookies[i].setMaxAge(0);   
          response.addCookie(cookies[i]);   
      }   
      if(sp.equals("spread"))   
      {   
          cookies[i].setMaxAge(0);   
          response.addCookie(cookies[i]);     
      } 
    }    
} 
   

%> 
 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    cookie使用,localStorage使用

    总结来说,Cookie适合存储少量、短期、需要在服务器端访问的数据,而localStorage则适用于存储大量、长期、仅客户端使用的数据。在实际应用中,开发者可以根据需求选择合适的存储方案。对于学习和实践,"CookieTest...

    asp.net中httpcookie 的使用和简单计数器

    接下来,我们将构建一个简单的计数器应用,展示如何使用Cookie记录用户访问次数: 1. **初始化计数器**:在页面加载事件中检查是否存在名为`count`的Cookie,如果存在则读取其值并转换为整型,否则初始化为1。 `...

    silverlight中cookie的使用

    如果项目主要基于Silverlight构建,且对Cookie的需求相对简单,那么Silverlight的HtmlPage.Document接口可能足够使用。但如果需要更灵活的控制和服务器端的交互,ASP.NET的Cookie机制将更为合适。 通过阅读压缩包中...

    用jsp简单实现cookie功能

    在本文中,我们将深入探讨如何使用JavaServer Pages (JSP) 实现基本的Cookie功能。Cookie是Web应用程序中用于存储用户会话数据的一种机制,它允许服务器在客户端(即用户的浏览器)上保存信息,以便在后续请求中进行...

    Java 模拟cookie登陆简单操作示例

    我们可以使用 Java 语言来发送 HTTP 请求,并将 Cookie 信息写入到 HTTP 头部中,以便模拟用户的登陆行为。 Java 模拟 Cookie 登陆的实现 下面是一个简单的 Java 模拟 Cookie 登陆的示例代码: ```java import ...

    cookie的使用,实用的demo

    下面是一个简单的Cookie使用示例: ```jsp ; charset=UTF-8" %&gt; // 创建Cookie对象 Cookie cookie = new Cookie("username", "John Doe"); // 设置Cookie的生命周期,单位为秒 cookie.setMaxAge(3600); // 1...

    JavaWeb基础-Cookie和Session的简单使用案例

    本文将深入探讨这两个概念,并通过一个简单的登录案例来阐述它们的使用。 首先,Cookie是服务器发送到用户浏览器并存储在本地的一小块数据。它可以用来跟踪用户的偏好、状态或任何其他信息。每个Cookie都有一个唯一...

    cookie读写,子cookie

    例如,一个简单的Cookie工具类可能如下所示: ```java public class CookieUtil { public static void addCookie(HttpServletResponse response, String name, String value, int maxAge, String path) { Cookie...

    jquery下cookie插件使用

    下面是一个简单的示例,展示了如何使用jQuery Cookie插件创建、读取Cookie: ```javascript $(document).ready(function() { // 创建Cookie $.cookie('name', 'runoob'); // 读取Cookie var name = $.cookie('...

    关于document.cookie的使用

    设置一个cookie非常简单,只需要使用赋值语句即可: ```javascript document.cookie = "userId=828"; ``` 如果想要设置多个键值对,可以在同一行中使用分号加空格进行分隔: ```javascript document.cookie = ...

    怎样使用Cookie跟踪来访者

    以下是一个简单的ASP脚本,演示了如何使用Cookie来跟踪用户访问次数: ```vbscript Dim NumVisit ' 声明变量 NumVisit = Request.Cookies("chunfeng")("totalvisit") ' 检查用户来访问过多少次 If NumVisit = "" ...

    关于java应用cookie

    在Java中,创建Cookie非常简单。下面的示例展示了如何创建并设置用户名和密码的Cookie: ```java // 创建用户名Cookie对象 Cookie cookieUserName = new Cookie("userName", userName); cookieUserName.setMaxAge...

    java 操作cookie

    在 Java 中建立 Cookie 非常简单,主要通过 HttpServletResponse 对象的 addCookie() 方法来实现。下面是一个简单的示例代码: ```java HttpServletResponse response; Cookie cookie = new Cookie("cookiename", ...

    EditThisCookie.crx cookie编辑导入导出利器

    在实际应用中,EditThisCookie.crx的这一特性使得跨平台和自动化测试变得更加简单。例如,当需要频繁测试同一用户登录状态下的网站功能时,可以先在浏览器中获取到登录后的Cookie,然后通过curl快速复现该状态,大大...

    jquery 设置cookie、删除cookie、获取cookie

    获取 Cookie 的过程也非常简单,只需要调用 `$.cookie()` 并传入 Cookie 名称即可: **示例代码**: ```javascript var value = $.cookie('name'); // 获取名为 'name' 的 Cookie 值 console.log(value); // 输出...

    Cookie、Session和Token三者的区别及使用

    ### Cookie、Session与Token的区别及使用详解 #### 一、Cookie **定义**: Cookie是一种用于在客户端保持状态的方案。简单来说,当你访问一个网站时,该网站可能会在你的计算机上留下一些信息(如用户名、密码等),...

    php简单的cookie身份验证机制

    在PHP编程中,Cookie是一种常见的身份验证机制,用于在客户端(浏览器)和服务器之间...了解这些基础知识后,你可以根据提供的源代码学习和理解实际的实现细节,并可能进一步优化和增强这个简单的Cookie身份验证机制。

    Net Cookie操作读取数据

    在.NET中创建Cookie非常简单,首先需要创建一个HttpCookie对象,并设置相应的属性,如: ```csharp HttpCookie cookie = new HttpCookie("myCookie"); cookie.Value = "这是Cookie的值"; cookie.Expires = DateTime...

    一个用于操作cookie的Vue插件使用简单无依赖

    该插件名为v-cookie,正如其标题和描述所述,它的特点是使用简单且无任何外部依赖。这意味着你无需额外安装其他库,只需将这个插件集成到你的Vue项目中,即可轻松地进行cookie的操作。 在JavaScript开发中,操作...

Global site tag (gtag.js) - Google Analytics