Java中cookie用法总结

JavaWeb开发--cookie用法总结

 

 

今天刚刚学过cookie的用法,为了防止忘记,就在这里总结一下。 

 

一、cookie的由来的原因

 

    Http协议是无状态的协议,它不会记录用户与服务器多次交互需要保留或记录的状态信息。cookie 的出现旨在帮助服务器记录浏览器访问状态信息,服务器可以读取访问它的浏览器中的cookie信息,并进行相应操作,例如:用户的自动登陆信息、网上商城的购物车等都由此实现。

 

二、cookie概念

 

    cookie实际上是web服务器通过浏览器保存在客户端硬盘上的一个文本文件,它只能进行文本信息的保存,内容以键值对(key/value)形式进行保存,类似于"request.setParameter(name,value)"方法的形式。cookie文件可以通过程序进行读写。在java程序中,可以通过javax.servlet.http.Cookie对象来读写访问浏览器的cookie信息,并执行相应操作。

 

三、cookie的创建

 

    cookie对象在创建构造器时,就要传入相应的key/value:

//创建cookie对象,并传入要存储的字符串以及对应的名称
javax.servlet.http.Cookie cookie=new javax.servlet.http.Cookie("key",value);

    注:其中的value的值只允许是字符串,而不能是其他的对象。

 

    常用方法:

	//设置有效时间,单位为秒(与之对应的有getter方法)
	cookie_username.setMaxAge(60*60*24);
					
	//设置域名(与之对应的有getter方法)
	cookie_username.setDomain(String pettern);
					
	//设置提交的路径(与之对应的有getter方法)
	cookie_username.setPath(uri);
					
	//保存cookie到客户端浏览器
	response.addCookie(cookie);
					 
	//获取cookie的名字(与之对应有setter方法)
	cookie.getName();
		
	//获取cookie的值(与之对应有setter方法)
	cookie.getValue();

  

 

四、cookie的读取

 

    cookie的读取是通过request.getCookies()方法进行的,该方法可以读取访问浏览器中的所有cookie,并返回一个Cookie对象的数组。

//读取访问浏览器cookie
  javax.servlet.http.Cookie[] cookies=request.getCookies();
    
  javax.servlet.http.Cookie cookie=null;
    
  //判空
  if(cookies!=null){
     
  for(int i=0;i<cookies.length;i++){
      
  cookie=cookies[i];
  
  //输出cookie的名字
  System.out.println(cookie.getName());  
  
  //输出cookie的值
  System.out.println(cookie.getValue());    
    }  
  }

 

五、cookie的写入

   

    cookie写入是通过response.addCookie()方法进行的。

//创建cookie对象,并传入要存储的字符串以及对应的名称
javax.servlet.http.Cookie cookie=new javax.servlet.http.Cookie("key",value);
		
//设置有效时间,单位为秒
cookie_username.setMaxAge(60*60*24);
		
//保存cookie
response.addCookie(cookie);

  

六、cookie的删除

 

    删除cookie没有专用的方法,但可以通过设置cookie的有效时间为0,或是将cookie对象的值设为空即可。

 

七、cookie的修改

 

//读取Cookie对象数组
javax.servlet.http.Cookie[] cookies=request.getCookies();

javax.servlet.http.Cookie cookie=null;

//遍历cookie数组
for(int i=0;i<cookies.length;i++){

cookie=cookies[i];

//查找符合条件的cookie
if(cookie.getName().equals(condition)){

    //设置值
    cookie.setValue(value);

    //设置有效时间
    cookie.setMaxAge(time);

    //写入cookie(切记修改之后要记得写入)
    response.addCookie(cookie);

}
}

 

 

注:

      1.cookie的数量和大小有限,不能用来存储大量的数据;

      2.cookie的内容中不可出现汉字;

      3.cookie的安全性较低,不适合用于保存敏感信息(例如重要的账号和密码);

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值