`
jdlsfl
  • 浏览: 159824 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

因为可能要用到cookie,所以学了一下,但又发现不用了, 为了以后不忘,写下此篇笔记。 一、cookie简介    浏览器与WEB服务器之间是使用HTTP协议进行通信的;而HTTP协议是无状态协议。 也就是说,当某个用户发出页面请求时,WEB服务器只是简单的进行响应,然后就关闭与该用户的连接。 因此当一个请求发送到WEB服务器时,无论其是否是第一次来访,服务器都会把它当作第一次来对待, 这样的不好之处可想而知。 为了弥补这个缺陷,Netscape开发出了cookie这个有效的工具来保存某个用户的识别信息,     它是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段。     它是服务器发送给浏览器的体积很小的纯文本信息。     定义:cookie是Web浏览器存储的少量命名数据,它与某个特定的网页和网站关联在一起。     cookie实际上和某一网站和网页关联的,保存用户一定信息的文本文件。

二、cookie的属性     除名字与值外,每个cookie有四个可选属性:     1.expires:指定cookie的生存期。默认情况下cookie是暂时的,浏览器关闭就失效。     2.path:它指定了与cookie关联在一起的网页。默认是在和当前网页同一目录的网页中有效。         如果把path设置为"/",那么它对该网站的所有网页都可见了。     3.domain:设定cookie有效的域名,         如果把path设置为"/",把domain设为".sohu.com",那么 A.sohu.com和B.sohu.com         的所有网页都能够访问此cookie。     4.secure:布尔值,它指定了网络上如何传输cookie。默认情况下,cookie是不安全的,         可以通过一个不安全的,普通的HTTP协议传输;若设置cookie为安全的,那么它将         只在浏览器和服务器通过HTTPS或其它的安全协议连接在一起时才被传输。

三、cookie的操作     cookie可以用javascipt来操作,也可以用JSP来操作。     下面给大家我写的几个例子,相信大家一看就明白了:     1.javascript 操作:    


    <script language="javascript">     //设置cookie,cookie有效期时间未GMT时间(距1970年1月1日临时的毫秒)     //例如可以设置setCookie("password","12345",(3600000*24*180)),180有效     function setCookie (name, value, expires) {   var expdate = new Date();  expdate.setTime(expdate.getTime() + expires);  document.cookie = name + "=" + escape(value) +         "; expires=" + expires.toGMTString() +  "; path=/";     }          //根据cookie名,取得cookie值     function getCookie(name) {         var search;        search = name + "="       offset = document.cookie.indexOf(search)       if (offset != -1) {         offset += search.length ;         end = document.cookie.indexOf(";", offset) ;         if (end == -1)           end = document.cookie.length;         return unescape(document.cookie.substring(offset, end));       }       else         return "";     }         //删除某一cookie     function deleteCookie(name) {          var expdate = new Date();       expdate.setTime(expdate.getTime() - (3600 *24* 1000 * 1));       setCookie(name, "", expdate);     }         //检查是否存在此cookie     function checkCookie(cookieName,cookieValue){  if (getCookie(cookieName)==cookieValue){   return true;  }else{   return false;  }     }

    </script>

    2.jsp 操作:     java中有个Cookie类:javax.servlet.http.Cookie


    //读取cookie的通用类,以Cookie[] 做参数传个构造函数;
    package com.test;
    import javax.servlet.http.*;
 /**
 * @author sheng_li
 *
 */
 public class ComCookie {
 private Cookie[] cookies;
 private Cookie cookie;
 public ComCookie(Cookie[] cs){
  cookies = cs;  
 }
 /**
  * 通过cookieName,取得cookieValue,如果没有此cookie则返回默认值
  * @param cookieName
  * @param defaultValue
  * @return
  */
 public String getCookieValue(String cookieName,String defaultValue) {
  for(int i=0; i< cookies.length; i++) {
    Cookie cookie = cookies[i];
    if (cookieName.equals(cookie.getName()))
   return(cookie.getValue());
  }
  return(defaultValue);
 }
 /**
  * 类方法,通过cookieName,取得cookieValue
  * @param cookies
  * @param cookieName
  * @param defaultValue
  * @return
  */
 public static String getCookieValue(Cookie[] cookies,
       String cookieName,
       String defaultValue) {
  for(int i=0; i < cookies.length; i++) {
    Cookie cookie = cookies[i];
    if (cookieName.equals(cookie.getName()))
   return(cookie.getValue());
  }
  return(defaultValue);
 }
 }

 JSP中:(以下内容来源于网络)

JSP是使用如下的语法格式来创建cookie的:   Cookie cookie_name =new Cookie("Parameter","Value");   例如:Cookie newCookie =new Cookie("username","waynezheng"); response.addCookie(newCookie);   解释:JSP是调用Cookie对象相应的构造函数Cookie(name,value)用合适的名字和值来创建Cookie,然后 Cookie可以通过HttpServletResponse的addCookie方法加入到Set-Cookie应答头,本例中Cookie对象有两个字符串参数:username,waynezheng。注意,名字和值都不能包含空白字符以及下列字符: @ : ;? , " / [ ] ( ) =

  处理Cookie的属性   看到这里,有的朋友又要问了:我光知道如何创建Cookie有什么用呀?是呀,光知道如何创建Cookie而不知道怎么使用是不够的。在JSP中,程序是通过cookie.setXXX设置各种属性,用cookie.getXXX读出cookie的属性,现把Cookie的主要属性,及其方法列于下,供大家参考:  读取客户端的Cookie

类型 方法名 方法解释
String getComment() 返回cookie中注释,如果没有注释的话将返回空值.
String  getDomain() 返回cookie中Cookie适用的域名. 使用getDomain() 方法可以指示浏览器把Cookie返回给同 一域内的其他服务器,而通常Cookie只返回给与发送它的服务器名字完全相同的服务器。注意域名必须以点开始(例如.yesky.com) 
int  getMaxAge()  返回Cookie过期之前的最大时间,以秒计算。 
String getName()  返回Cookie的名字。名字和值是我们始终关心的两个部分,笔者会在后面详细介绍 getName/setName。 
String getPath() 返回Cookie适用的路径。如果不指定路径,Cookie将返回给当前页面所在目录及其子目录下 的所有页面。
boolean getSecure() 如果浏览器通过安全协议发送cookies将返回true值,如果浏览器使用标准协议则返回false值。
String  getValue() 返回Cookie的值。笔者也将在后面详细介绍getValue/setValue。 
int getVersion()  返回Cookie所遵从的协议版本。 
void setComment(String purpose) 设置cookie中注释。
void setDomain(String pattern) 设置cookie中Cookie适用的域名
void setMaxAge(int expiry)  以秒计算,设置Cookie过期时间。
void setPath(String uri) 指定Cookie适用的路径。 
void  setSecure(boolean flag) 指出浏览器使用的安全协议,例如HTTPS或SSL。 
void setValue(String newValue) cookie创建后设置一个新的值。 
void setVersion(int v) 设置Cookie所遵从的协议版本。    

   在Cookie发送到客户端前,先要创建一个Cookie,然后用addCookie方法发送一个HTTP Header。  JSP将调用request.getCookies()从客户端读入Cookie,getCookies()方法返回一个HTTP请求头中  的内容对应的Cookie对象数组。你只需要用循环访问该数组的各个元素,调用getName方法检查各  个Cookie的名字,至找到目标Cookie,然后对该Cookie调用getValue方法取得与指定名字关联的值 。

例如

<!----><!----><%  String userName=request.getParameter("username");//从提交的HTML表单中获取,用户名  Cookie theUsername=new Cookie("username",userName);//以"username",userName值/对创建一个Cookie  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);  deleteNewCookie.setPath("/");  response.addCookie(deleteNewCookie); %>

 

jsp设置页面过期

服务端方法: <% response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires", -10); %> 在登陆页面和登陆后页面均加入这段代码即可 注意,一定要在登陆页面(或类似功能的页面使session无效)

客户端方法:

meta是用来在HTML文档中模拟HTTP协议的响应头报文。meta 标签用于网页的<head>与</head>中,meta 标签的用处很多。meta 的属性有两种:name和http-equiv。name属性主要用于描述网页,对应于content(网页内容),以便于搜索引擎机器人查找、分类(目前几乎所有的搜索引擎都使用网上机器人自动查找meta值来给网页分类)。这其中最重要的是description(站点在搜索引擎上的描述)和keywords(分类关键词),所以应该给每页加一个meta值。比较常用的有以下几个: name 属性 1、<meta name="Generator" contect="">用以说明生成工具(如Microsoft FrontPage 4.0)等; 2、<meta name="KEYWords" contect="">向搜索引擎说明你的网页的关键词; 3、<meta name="DEscription" contect="">告诉搜索引擎你的站点的主要内容; 4、<meta name="Author" contect="你的姓名">告诉搜索引擎你的站点的制作的作者; 5、<meta name="Robots" contect= "all|none|index|noindex|follow|nofollow">

其中的属性说明如下: 设定为all:文件将被检索,且页面上的链接可以被查询; 设定为none:文件将不被检索,且页面上的链接不可以被查询; 设定为index:文件将被检索; 设定为follow:页面上的链接可以被查询; 设定为noindex:文件将不被检索,但页面上的链接可以被查询; 设定为nofollow:文件将不被检索,页面上的链接可以被查询。

http-equiv属性 1、<meta http-equiv="Content-Type" contect="text/html";charset=gb_2312-80"> 和 <meta http-equiv="Content-Language" contect="zh-CN">用以说明主页制作所使用的文字以及语言;又如英文是ISO-8859-1字符集,还有BIG5、utf-8、shift-Jis、Euc、Koi8-2等字符集; 2、<meta http-equiv="Refresh" contect="n;url=http://yourlink">定时让网页在指定的时间n内,跳转到页面http;//yourlink; 3、<meta http-equiv="Expires" contect="Mon,12 May 2001 00:20:00 GMT">可以用于设定网页的到期时间,一旦过期则必须到服务器上重新调用。需要注意的是必须使用GMT时间格式; 4、<meta http-equiv="Pragma" contect="no-cache">是用于设定禁止浏览器从本地机的缓存中调阅页面内容,设定后一旦离开网页就无法从Cache中再调出; 5、<meta http-equiv="set-cookie" contect="Mon,12 May 2001 00:20:00 GMT">cookie设定,如果网页过期,存盘的cookie将被删除。需要注意的也是必须使用GMT时间格式; 6、<meta http-equiv="Pics-label" contect="">网页等级评定,在IE的internet选项中有一项内容设置,可以防止浏览一些受限制的网站,而网站的限制级别就是通过meta属性来设置的; 7、<meta http-equiv="windows-Target" contect="_top">强制页面在当前窗口中以独立页面显示,可以防止自己的网页被别人当作一个frame页调用; 8、<meta http-equiv="Page-Enter" contect="revealTrans(duration=10,transtion= 50)">和<meta http-equiv="Page-Exit" contect="revealTrans(duration=20,transtion =6)">设定进入和离开页面时的特殊效果,这个功能即FrontPage中的“格式/网页过渡”,不过所加的页面不能够是一个frame页面。

 

分享到:
评论

相关推荐

    js操作Cookie子键+Jquery调用Ajax方法执行后台操作

    本文将深入探讨如何使用JS操作Cookie的子键,以及如何利用jQuery的Ajax方法进行无刷新的数据提交,并接收后台返回的值。 首先,让我们了解什么是Cookie和它的子键。Cookie是一种在客户端存储小量信息的方法,它由...

    jsp操作cookie实例

    // 设置Cookie的有效期,单位为秒,-1表示会话结束时失效 int maxAge = 60 * 60 * 24 * 30; // 30天 cookie.setMaxAge(maxAge); response.addCookie(cookie); } %&gt; ``` 在这个例子中,我们接收用户输入的name...

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

    jQuery 提供了一个非常方便的方式来处理这些操作,本文将详细介绍如何利用 jQuery 和其插件来设置、获取及删除 Cookie。 #### 二、环境搭建 首先,确保您的项目环境中已经包含了 jQuery 库。可以使用 CDN 方式引入...

    java 操作cookie

    Java 操作 Cookie Java 操作 Cookie 是一种常用的 Web 开发技术,用于在服务器端和客户端之间交换数据。Cookie 是一种小文本文件,存储在客户端浏览器中,用于记录用户的行为和偏好。下面我们将详细介绍 Java 操作 ...

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

    2. **设置Cookie**:在Vue组件内,你可以使用`this.$cookie.set('cookieName', 'cookieValue', { expires: 7 });`来设置一个名为'cookieName',值为'cookieValue'的cookie,其中expires参数可以指定过期时间(以天为...

    asp+ 操作Cookie 方法大全

    代码示例中还包括了一个简单的HTML界面,用于展示设置Cookie、删除Cookie以及获取Cookie的操作按钮。 #### 四、注意事项 - **安全性**:应谨慎设置Cookie的安全性属性,以防止数据泄露。 - **有效期**:合理设置...

    Extjs 关于 cookie的操作

    ### Extjs 中关于 Cookie 的操作 #### 一、引言 在 Web 开发中,Cookie 是一种常用的数据存储方式,用于保存用户的一些基本信息或者状态,从而实现网站的个性化设置或登录状态保持等功能。Extjs 作为一种强大的 ...

    通过js来设置cookie和读取cookie,实现登陆时记住密码的功能

    设置cookie主要涉及以下几个步骤: 1. 创建一个键值对对象,例如`{key: 'username', value: 'JohnDoe'}`。 2. 将对象转换为字符串,以便在HTTP头部中发送。可以使用`encodeURIComponent`函数对键和值进行编码,防止...

    Spring Security2中设置Cookie的保存时间

    正确设置Cookie的生命周期可以帮助优化用户体验,同时避免潜在的安全风险。 首先,我们需要了解Spring Security的架构。它是Spring框架的一个扩展,提供了全面的身份验证和授权服务。在Spring Security 2中,配置...

    js操作cookie.pdf

    设置cookie需要指定cookie的名称、值和可选的过期时间和路径。下面是一个设置cookie的函数示例: ```javascript function setCookie(name, value, expires, path, domain, secure) { var cookieText = name + "=" +...

    C# cefsharp 多账号同时登陆,设置cookie隔离,修改部分浏览器指纹

    2. 设置Cookie:在登录时,针对每个浏览器实例分别设置相应的Cookie,确保它们不会互相干扰。 3. 监听事件:注册事件监听器,如导航完成、加载错误等,以便于处理登录过程和其他操作。 **二、Cookie隔离** 为了...

    易语言取设cookie

    首先,`InternetSetCookieA` 设置Cookie,然后通过 `InternetGetCookieA` 获取Cookie,以实现客户端与服务器之间的信息交换。开发者可能会结合这些函数来实现登录验证、个性化推荐等功能。 压缩包中的“易语言取设...

    js操作cookie 读取 存取 删除 调用

    设置Cookie是为了将数据存储在用户的浏览器中。通常情况下,我们会为Cookie设置一个有效期,以便在未来的某个时间点自动清除。 ```javascript function SetCookie(id, value, expdate) { document.cookie = id + "=...

    jquery验证form,表单,操作cookie 插件

    本文将深入探讨如何使用jQuery进行表单验证、操作Cookie,并介绍相关的插件。 ### jQuery表单验证 jQuery提供了丰富的API,使得表单验证变得简单易行。在前端验证用户输入的数据是必要的,可以提升用户体验,防止...

    JAVA操作COOKIE.docx

    JAVA 操作 COOKIE Cookie 是一种小型文本文件...JAVA 操作 COOKIE 主要包括设置 Cookie、读取 Cookie、删除 Cookie 和修改 Cookie 四个方面,通过设置 Cookie 的路径、域名和生存期,可以实现两个网站共用 Cookies。

    js对cookie操作的封装

    要设置Cookie,可以编写一个函数,接收名称、值和过期时间作为参数,然后构建一个符合规范的字符串赋值给`document.cookie`。 ```javascript function setCookie(name, value, days) { var expires = ""; if ...

    JS设置cookie和获取cookie 方法

    js写的方法,可以设置cookie和获取cookie值,简单易懂

    如何操作cookie,分页标签

    在Java中,我们可以使用`HttpServletResponse`的`addCookie`方法来设置Cookie,使用`HttpServletRequest`的`getCookies`方法来获取Cookie。例如: ```java // 设置Cookie Cookie cookie = new Cookie("username", ...

    【JavaScript源代码】详解操作cookie的原生方法cookieStore.docx

    - **设置Cookie**:`document.cookie = "key=value; expires=expirationDate; path=path; domain=domain; secure";` - **读取Cookie**:`document.cookie`返回的是一个包含所有Cookie的字符串,需要通过正则匹配来...

    JS操作Cookie 大全

    在提供的代码中,可以看到`setCookies`函数被定义用来设置Cookie。该函数接受两个参数:`name`(键名)和`value`(值)。另外还定义了一个名为`Days`的变量,它代表Cookie的有效期,默认为30天。以下是该函数的关键...

Global site tag (gtag.js) - Google Analytics