java操作Cookie---javax.servlet.http.Cookie

1.增加一个Cookie

Cookie cookie = new Cookie("username","zhangsan");
cookie.setPath("/");
cookie.setMaxAge(7*24*3600);//设置生存期7天
response.addCookie(cookie);

2.读取Cookie

String username="";

Cookie[] cookies = request.getCookies();

for (Cookie cookie : cookies){
if (cookie.getName().equals("username")){
username = cookie.getValue();
}
}

3.删除Cookie

Cookie cookie = new Cookie("username",null);
cookie.setPath("/");
cookie.setMaxAge(0);
response.addCookie(cookie);

 

为了方便操作,将其封装进CookieUtil类中,如下:

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class CookieUtil {
/**
* 增加一个Cookie
*/
public static void addCookie(HttpServletResponse response,String name,String value,int maxAge){
Cookie cookie = new Cookie(name,value);
cookie.setPath("/");
if (maxAge>0){
cookie.setMaxAge(maxAge);
}
response.addCookie(cookie);
} /**
* 根据name获取Cookie的value值
*/
public static String getCookieValue(HttpServletRequest request,String name){
Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies) {
if (cookie.getName().equals(name)){
return cookie.getValue();
}
}
return null;
} /**
* 根据name获取Cookie
*/
public static Cookie getCookieByName(HttpServletRequest request,String name){
Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies) {
if (cookie.getName().equals(name)){
return cookie;
}
}
return null;
} /**
*删除Cookie
*/
public static void clear(HttpServletResponse response,String name){
addCookie(response,name,null,0);
} }

此时再进行操作就很方便了:

1.增加一个Cookie

CookieUtil.addCookie(response,"username","zhangsan",7*24*3600);

2.读取Cookie

String username = CookieUtil.getCookieValue(request,"username");

3.删除Cookie

CookieUtil.clear(response,"username");

 

jQuery操作Cookie---jquery.cookie.js

在jQuery中,引入Cookie插件后,可以很方便地定义某个cookie名称,并设置cookie值。

所需js文件:jquery-1.11.3.js 和 jquery.cookie.js

在导入cookie插件后,可以通过一个全局性的方法管理客户端的cookie对象,格式如下:

$.cookie(名称, 值, [option])

如果是写入或设置cookie值,其调用的格式如下:

$.cookie(cookieName, cookieValue)

如果是读取cookie值,其调用的格式如下:

$.cookie(cookieName)

如果是销毁cookie值,其调用的格式如下:

$.cookie(cookieName, null)

在方法$.cookie()中,可选项参数[option]以对象的形式展示,用于补充说明设置的cookie对象,其常用的属性如下:

$.cookie(cookieName, cookieValue, {
expires: //有限日期,可以是一个整数或一个日期(单位:天)
path: //cookie值被保存的路径,默认值与创建页路径一致
domain: //cookie域名属性,默认值与创建页域名一样
secure: //一个布尔值,表示传输cookie值时,是否需要一个安全协议
})

请看如下示例:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>cookie插件</title>
<script type="text/javascript" src="js/jquery-1.11.3.js"></script>
<script type="text/javascript" src="js/jquery.cookie.js"></script>
<style type="text/css">
body{font-size:13px}
.divFrame{width:260px;border:solid 1px #666}
.divFrame .divTitle{padding:5px;background-color:#eee;font-weight:bold}
.divFrame .divContent{padding:8px;line-height:1.6em}
.divFrame .divBtn,#divData{padding-bottom:8px;padding-left:8px}
.txt{border:#666 1px solid;padding:2px;width:150px;margin-right:3px}
.btn {border:#666 1px solid;padding:2px;width:80px;
filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#ffffff, EndColorStr=#ECE9D8);}
</style>
<script type="text/javascript">
$(function() {
if ($.cookie("UserName")!="null") { //如果有值,则显示在文本框中
$("#UserName").val($.cookie("UserName"));
$("#UserPass").val($.cookie("UserPass"));
}
$("#sbtUser").click(function() { //表单提交事件
if ($("#chkSave").prop("checked")) { //如果选中了保存"用户名"项
$.cookie("UserName", $("#UserName").val(), {path: "/", expires: 7} )//设置Cookie值,有效期为7天
$.cookie("UserPass", $("#UserPass").val(), {path: "/", expires: 7} )
}else {
$.cookie("UserName", null, {path: "/"})//销毁Cookie值
$.cookie("UserPass", null, {path: "/"})
}
// return false; //表单不提交
})
})
</script>
</head>
<body>
<form method="post" action="login.do">
<div class="divFrame">
<div class="divTitle">用户登录</div>
<div class="divContent">
<div>用户名:<br /><input id="UserName" name="UserName" type="text" class="txt" /></div>
<div>密码:<br /><input id="UserPass" name="UserPass" type="password" class="txt" /></div>
<div><input id="chkSave" type="checkbox" checked />记住我</div><%--默认为选中--%>
</div>
<div class="divBtn">
<input id="sbtUser" type="submit" value="提交" class="btn" />
</div>
</div>
</form>
</body>
</html>

代码执行后的效果如下:

     

左图为首次登陆的界面,右图为下次登陆的页面

Cookie用法简介的更多相关文章

  1. Apache自带压力测试工具ab用法简介

    ab命令原理 ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL进行访问.它的测试目标是基于URL的,因此,既可以用来测试Apache的负载压力,也可以测试nginx.lighthttp ...

  2. Postman用法简介

    转自:http://blog.csdn.net/flowerspring/article/details/52774399 Postman用法简介 转载 2016年10月10日 09:04:10 10 ...

  3. IOS NSInvocation用法简介

    IOS NSInvocation用法简介 2012-10-25 19:59 来源:博客园 作者:csj007523 字号:T|T [摘要]在 iOS中可以直接调用某个对象的消息方式有两种,其中一种就是 ...

  4. jquery cookie 用法

    jquery cookie 用法 $.cookie("name","value","options")  当不设置options时,此coo ...

  5. JodaTime用法简介

    JodaTime用法简介 Java的Date和Calendar用起来简直就是灾难,跟C#的DateTime差距太明显了,幸好有JodaTime 本文简单罗列JodaTime的用法 package co ...

  6. jquery.cookie用法详细解析,封装的操作cookie的库有jquery.cookie.js

    jquery.cookie用法详细解析 需要注意存入cookie前,对数据进行序列化, 得到后在反序列化: 熟练运用:JSON.stringify();和JSON.parse(): 通常分为如下几个步 ...

  7. golang 的 http cookie 用法

    golang的http cookie用法 在服务端程序开发的过程中,cookie经常被用于验证用户登录.golang 的 net/http 包中自带 http cookie的定义,下面就来讲一下coo ...

  8. MSSQL Sql加密函数 hashbytes 用法简介

    转自:http://www.maomao365.com/?p=4732 一.mssql sql hashbytes 函数简介 hashbytes函数功能为:返回一个字符,通过 MD2.MD4.MD5. ...

  9. java assert的用法简介【转】

    assert的基本用法 assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制,如C,C++和Eiffel等,但是支持的形式不尽相同,有的是通过语言本身.有的是通过库 ...

随机推荐

  1. PHP抓取网络数据

    涉及到的知识点不多 file_get_contents:读取数据: preg_match_all:正则匹配: 和匹配之后的数据分析. 不同网页所需要抓取的数据是不同的,所以正则表达式自然也不一样,针对 ...

  2. npm安装vue-cil出现错误

    这个错误有点尴尬..... 之前全局安装过cil,然后在全局安装出现了这个错误,各种手册看了半天也没有头绪,猛然想起来之前安装过,试下直接初始化项目试一下,果然成功了 然后在 npm install ...

  3. Struts2开发者模式

    在Struts2开发中,这应该是第一个学习配置的值.为了启用 Struts 2 的开发模式,可以通过自动配置显著增加Struts2的开发速度和属性文件加载,以及额外的日志和调试功能. 注:自动重新加载 ...

  4. jQuery CSS 操作函数

    CSS 属性 描述 css() 设置或返回匹配元素的样式属性. height() 设置或返回匹配元素的高度. offset() 返回第一个匹配元素相对于文档的位置. offsetParent() 返回 ...

  5. Android--去除EditText边框,加入下划线

    <span style="font-family: Arial, Helvetica, sans-serif;"><?xml version="1.0& ...

  6. UIAlertView及UIActionSheet 在ios8极其以下版本的兼容问题解决方案

    本文转载至 http://www.aichengxu.com/view/35326 UIAlertView及UIActionSheet在ios8中被放弃,其功能将完全由UIAlertControlle ...

  7. IOS 多线程的一些总结

    IOS 多线程 有三种主要方法 (1)NSThread (2)NSOperation (3)**   下面简单介绍这三个方法 1.NSThread 调用方法如下:         如函数需要输入参数, ...

  8. linux下jmeter使用帮助

    1.linux下jmeter使用方法 例:jmeter -n -t test1.jmx -l logfile1.jtl -H 192.168.1.1 -P 8080 -h 帮助 -> 打印出有用 ...

  9. VS2008试用版到期解决办法----win7下VS2008升级补丁.zip

    打开好久没用的Visual studio 2008,才知道试用版已经到期了.在网上找来了序列号,可是连一个输入序列号的地方都没有,困惑了好久,终于找到了解决办法. 首先献上自己收集的Visual st ...

  10. Minimal Steiner Tree ACM

    上图论课的时候无意之间看到了这个,然后花了几天的时间学习了下,接下来做一个总结. 一般斯坦纳树问题是指(来自百度百科): 斯坦纳树问题是组合优化问题,与最小生成树相似,是最短网络的一种.最小生成树是在 ...