您的位置:首页 > 编程语言 > Java开发

Java Cookie操作添加和清除

2015-01-23 11:09 274 查看
关于java cookie的操作。

包含方法:写入cookie、根据名称读取cookie、获取浏览器中的所有cookie的方法

注意:

1、通过用户提交的用户名和密码(加密后的密码,否则将会泄露用户密码)

并且去数据库验证正确后方可调用writerCookie()方法将用户名和密码存入到cookie中

2、在用户的session丢失后再进入登录界面则可以调用getCookieValueByName()或者getCookieByName()方法

将存入cookie中的数据取出来并使用request传回登录界面即可

cookieUtil.java

package com.iodn.util;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* 包含方法:写入cookie、根据名称读取cookie、获取浏览器中的所有cookie的方法
*
* 注意:
*
* 1、通过用户提交的用户名和密码(加密后的密码,否则将会泄露用户密码)
*    并且去数据库验证正确后方可调用writerCookie()方法将用户名和密码存入到cookie中
*
* 2、在用户的session丢失后再进入登录界面则可以调用getCookieValueByName()或者getCookieByName()方法
*    将存入cookie中的数据取出来并使用request传回登录界面即可
*
* @author hbzhang
* 所需环境:web服务器:tomcat\jboss等,所需jar:servlet-api.jar
*
*/
public class CookiesUtil {
/**
* 将cookie写入到response中
* @param response
* @param cookieName cookie名称
* @param cookieVlue cookie内容
* @param cookieDays 保存天数
*/
public void writerCookie(HttpServletResponse response,String cookieName,String cookieVlue,int cookieDays){
//创建一个cookie(包括名称和值)
Cookie cookie=new Cookie(cookieName,cookieVlue);
//设置路径,这个路径即该工程下都可以访问该cookie 如果不设置路径,那么只有设置该cookie路径及其子路径可以访问
cookie.setPath("/");
if(cookieDays!=0 && cookieDays!=-1){
cookieDays=cookieDays*24*60*60;
}
cookie.setMaxAge(cookieDays);//7天后失效
response.addCookie(cookie);
}
/**
* 根据名字获取cookie的值
* @param request
* @param name cookie名字
* @return
*/
public String getCookieValueByName(HttpServletRequest request,String name){
String result=null;
Map<String,Cookie> cookieMap = ReadCookieMap(request);
if(cookieMap.containsKey(name)){
Cookie cookie = (Cookie)cookieMap.get(name);
if(cookie!=null){
result=cookie.getValue();
}
}
return result;
}
/**
* 根据名字获取的cookie对象
* @param request
* @param name cookie名字
* @return
*/
public Cookie getCookieByName(HttpServletRequest request,String name){
Map<String,Cookie> cookieMap = ReadCookieMap(request); //得到所有的cookies
if(cookieMap.containsKey(name)){ //判断cookie名称是否与传入的参数一致
Cookie cookie = (Cookie)cookieMap.get(name); //获取浏览器中此名称的cookie
return cookie;
}
return null;
}

/**
* 将cookie封装到Map里面
* @param request
* @return
*/
private Map<String,Cookie> ReadCookieMap(HttpServletRequest request){
Map<String,Cookie> cookieMap = new HashMap<String,Cookie>();
Cookie[] cookies = request.getCookies(); //获取浏览器中所有的cookies
if(null!=cookies){
for(Cookie cookie : cookies){
cookieMap.put(cookie.getName(), cookie); //将cookie存入到Map中
}
}
return cookieMap;
}
}


后面会考虑将Servlet和jsp的代码上传。今天只到这里。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: