cookie 用法_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > cookie 用法

cookie 用法

 2013/7/23 12:40:38  xticfc  程序员俱乐部  我要评论(0)
  • 摘要:新建cookieCookiecookie=newCookie("isAutoLogin","0");//创建一个名称为isAutoLogin,值为0的cookiecookie.setMaxAge(365*24*60*60);//设置本cookie的有效期,本有效期是指从当前时间算起,多长时间内有效,以秒为单位。cookie.setSecure(false);//是否强制要求浏览器使用安全协议传输,类似https或ssl,如果没使用这些协议的话,应该设置成falsecookie.setPath
  • 标签:用法 Cookie
新建cookie
class="java" name="code">
Cookie cookie = new Cookie("isAutoLogin", "0");//创建一个名称为isAutoLogin,值为0的cookie
cookie.setMaxAge(365*24*60*60);//设置本cookie的有效期,本有效期是指从当前时间算起,多长时间内有效,以秒为单位。
cookie.setSecure(false);//是否强制要求浏览器使用安全协议传输,类似https或ssl,如果没使用这些协议的话,应该设置成false
cookie.setPath("/");//设置只有指定的路径下的页面才能访问到本cookie,权限会自动向下级页面延伸。如果想让全站能看到的话,设置成"/"
cookie.setDomain(".bb.com");//设置跨域访问。如果当前网址为www.aa.com,那么默认的www.bb.com是不能访问到本cookie的,但是如果设置了跨域访问,那么www.bb.com就可以访问到本cookie了。
response.addCookie(cookie);//用HttpServletResponse对象将cookie写到客户端。


普通方式获取cookie
Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies) {
 if ("username".equals(cookie.getName())) {
    usernameCookie = cookie.getValue(); // 得到cookie的用户名  
 }else if ("password".equals(cookie.getName())) {  
    passwordCookie = cookie.getValue(); // 得到cookie的密码  
 }else if ("isAutoLogin".equals(cookie.getName())) {  
    isAutoLogin = cookie.getValue(); // 得到cookie的某种标志  
 }  
}

springMVC获取cookie
@RequestMapping(value="/index")
public String index(HttpServletRequest request,HttpServletResponse response, @CookieValue(value="username", required=false) String username) throws Exception{
   //TODO String aa = username;
}

此处的required=false表示并不强制取到cookie中username的值,所以可能username为null。如果写成required=true,那么在取不到该cookie时,会抛出异常

普通方式写cookie
response.addCookie(cookie);//用HttpServletResponse对象将cookie写到客户端。

springMVC方式写cookie与普通方式写cookie没有区别,但是如果当前方法返回的是null,也就是说没有走页面跳转的话,那么这种方式将不能把cookie值写到客户端。

js方式写cookie
因为非跳转的请求不能写cookie,所以可以采用js写cookie。
var exdate=new Date(); 
var expireDays=365; //定义本cookie的存活天数
exdate.setTime(exdate.getTime() + expireDays*24*3600*1000);
document.cookie = "username=" + $("#username").val() + ";expires=" + exdate.toGMTString() + ";path=/";//网上有说在一个语句里可写多条cookie,但经试验不成功。cookie的有效期只接收GMT格式的日期。
document.cookie = "password=" + $("#password").val() + ";expires=" + exdate.toGMTString() + ";path=/";
document.cookie = "isAutoLogin=1;expires=" + exdate.toGMTString() + ";path=/";
//document.cookie = ''方法就是在执行写cookie操作

js方式读取cookie
function getCookie(c_name){
     if (document.cookie.length>0){
	  c_start=document.cookie.indexOf(c_name + "=")
	  if (c_start!=-1){ 
	    c_start=c_start + c_name.length+1 
	    c_end=document.cookie.indexOf(";",c_start)
	    if (c_end==-1) {c_end=document.cookie.length}
	    return document.cookie.substring(c_start,c_end)
	    } 
	  }
	return ""
	}


cookie本身不允许存储中文,所以需要提前把字符转码。转码可用escape,unescape。具体用法可从网上搜索。
发表评论
用户名: 匿名