`
youanyyou
  • 浏览: 196569 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

js/jsp操作cookie的方法

阅读更多

最近项目用到了自动登录功能,使用到了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);
%>

深圳人才网 深圳招聘网 深圳人才招聘网 深圳人才大市场 

企业、个人免费注册,获取想要的 深圳 软件工程师招聘信息 月薪最低3000-8000,更有高端猎头职位! 

www.szrcwz.com                                                                                                                                           

                  Google 提供的广告

分享到:
评论

相关推荐

    jsp的Cookie讲解与例子

    **JSP(JavaServer Pages)**是Java平台上的一种动态网页技术,它允许开发...通过学习和实践这个"Cookie讲解与例子",你可以深入了解JSP中的Cookie操作,并将其应用于实际的Web开发项目中,提升用户体验和应用功能。

    jsp 通过cookie 记住用户名

    这通常在`&lt;jsp:useBean&gt;`或`&lt;jsp:setProperty&gt;`动作标签中完成,或者在Servlet的`doGet`或`doPost`方法中处理: ```java Cookie[] cookies = request.getCookies(); if (cookies != null) { for (Cookie c : ...

    jsp cookie+session实现简易自动登录

    本文实例为大家分享了jsp cookie+session实现简易自动登录的具体代码,供大家参考,具体内容如下 关闭浏览器只会使存储在客户端浏览器内存中的session cookie失效,不会使服务器端的session对象失效。 如果设置了...

    如何操作cookie,分页标签

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

    jsp源码实例.rar_cookie_javascript cookie_jsp 实例_jsp 搜索_jsp 表单

    在这个名为"jsp源码实例.rar_cookie_javascript cookie_jsp 实例_jsp 搜索_jsp 表单"的压缩包中,包含了五个关于JSP的源码实例,这些实例涵盖了从基本的输出操作到更复杂的cookie管理和搜索引擎功能。以下是这些实例...

    jsp cookie+session实现简易自动登录.docx

    ### JSP Cookie+Session 实现简易自动登录 #### 概述 在Web开发中,实现用户的自动登录功能是一项常见的需求。通过使用JSP(JavaServer Pages)、Cookie 和 Session 技术,可以有效地实现这一功能。本文将详细介绍...

    jsp通过cookie实现网页记录

    在服务器端的`saveHistory.jsp`中,接收这个Ajax请求,按照前面的方法更新Cookie。 6. **读取和显示历史记录**:当用户返回网站时,JSP可以从Cookie中读取历史记录,并在适当的地方显示,例如在一个下拉菜单或侧边...

    jsp设置cookie

    ### JSP 设置与读取 Cookie ...通过上述方法,开发者可以在JSP中轻松地实现Cookie的设置与读取功能,也可以利用JavaScript来增强Cookie的操作灵活性。这对于实现用户登录状态的持久化、用户偏好的记忆等功能非常有用。

    新生报道系统/JSP/JAVA源码

    【新生报道系统/JSP/JAVA源码】是一个基于JAVA技术和JSP(JavaServer Pages)的教育信息化管理系统,主要用于大学新生的入学报道流程。这个系统涵盖了新生注册、信息录入、资料审核、宿舍分配等一系列功能,旨在简化...

    java/web/jsp班费管理系统

    4. **Session和Cookie**:为了保持用户状态,系统可能使用了Session或Cookie技术,例如记录用户的登录状态。 5. **HTML/CSS/JavaScript**:前端界面的构建离不开HTML、CSS和JavaScript,它们共同决定了用户看到的...

    JS cookie Java cookie regex 整理结果

    在JavaScript中,我们可以使用`match()`、`search()`或`test()`方法与正则表达式配合,实现对Cookie字符串的复杂操作。 在实际应用中,JS和Java Cookie结合使用可以实现更高级的功能。例如,服务器通过Java Cookie...

    java/JSP车辆租赁管理系统

    本系统基于Java和JSP技术实现,旨在提供高效、便捷的车辆租赁服务管理,方便用户进行车辆预订、查询、支付等操作,同时也为企业后台管理提供了强大的数据支持和决策依据。 一、Java技术基础 Java是一种广泛使用的...

    达内servlet/jsp/jquery资料

    根据提供的文件信息,以下是对达内servlet/jsp/jquery培训资料中的关键知识点的详细解析: ### 1. 架构 - **C/S 架构(Client-Server 架构)**: - 客户端和服务端通过TCP/IP协议进行通信。 - 特点包括:需要...

    JSP中java代码与js之间的传值

    在JavaServer Pages (JSP) 中,我们经常需要在Java代码和JavaScript之间传递数据。这在构建动态网页时尤其重要,因为Java代码通常用于处理服务器端逻辑,而JavaScript则负责客户端交互。这篇博客将探讨如何在JSP中...

    用JSP操作Cookie

    【JSP操作Cookie详解】 Cookie作为一种历史悠久的网络技术,自HTML早期就已出现,用于解决独立页面间无法识别不同用户的问题。它会在用户访问网页时在客户端(即用户的计算机)创建一个文件,存储特定信息,以便...

    cookie使用方法集

    本文将深入探讨JavaScript和JSP中如何操作Cookie,以及涉及的超时设置和跨文件夹使用。 一、Cookie的基本概念 Cookie是由服务器端发送到客户端(浏览器)的一小段文本信息,当客户端再次请求同一服务器时,会将...

    jquery管理cookie和form的js

    在网页开发中,jQuery是一个非常流行的JavaScript库,它极大地简化了JavaScript的使用,尤其是在...通过在JSP页面中引入这些插件,你可以轻松地进行cookie管理和表单操作,从而为用户提供更流畅、更个性化的交互体验。

    js+jsp树形菜单

    这种技术结合了JavaScript(js)的动态特性与JavaServer Pages(jsp)的服务器端处理能力,使得网页可以动态显示和操作数据结构为树状的菜单。 JavaScript是一种广泛使用的客户端脚本语言,它允许在用户浏览器上...

    使用Cookie记录用户名和密码.

    - **设置HttpOnly标志**:这可以防止JavaScript访问Cookie,减少XSS攻击的风险。 - **设置Secure标志**:确保Cookie仅通过HTTPS协议传输,防止中间人攻击。 - **限制Cookie的有效期**:避免长期存储敏感信息,减少...

    基于JSP动态登陆,注册的网站 cookie统计信息

    在Web开发中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,它结合了HTML、JavaScript、Java代码以及服务器端的Java对像,使得开发者能够更方便地构建交互式网站。本项目涉及到的关键知识点包括JSP、脚本...

Global site tag (gtag.js) - Google Analytics