您的位置:首页 > 其它

Cookie和Seesion的常用方法

2017-04-20 20:38 363 查看
一 Cookie的简单用法:

1写入读取

1)写入

//创建cookie对象,键值对
Cookie c1 = new Cookie("username","admin");
Cookie c2 = new Cookie("password","admin");
// 把cookie写入浏览器,req为HttpServletRequest的对象
req.addCookie(c1);
req.addCookie(c2);

2)读取

Cookie[] cookies = req.getCookies(); // req为HttpServletRequest的对象
for (Cookie cookie : cookies) {
String key = cookie.getName();
if ("user".equal(key)) {
String value = cookie.getValue();
}
}


2生命周期

cookie.setMaxAge(60*60);//单位为s,表示生命周期为1小时;
cookie.setMaxAge(0);//表示删除之前的cookie
cookie.setMaxAge(-1);//默认值,表示一次会话结束即浏览器关闭时,cookie失效;负数都表示这个意思

3路径设置

// 如果你想在Bservlet中访问Aservlet的cookieA,就需要设置cookieA的路径
// 如果不设置cookie的path,默认是/项目名称/当前路径的上一层地址,如/projectName/servlet/login,cookie的路径为/projectName/servlet
// 当我们访问的路径包含cookie的路径时,request对象中就包含了该cookie

/*当访问http://localhost/a/b/MyServlet时候,会包含下面两个cookie*/
cookie1.setPath("/项目名称/a/");
cookie2.setPaht("/项目名称/a/b/");

4中文存取

Cookie c = new Cookie("key", URLEncoder.encode("中文")); //写入
String value = URLDecoder.decode(cookie.getValue()); //读取


二 Session的用法(session的范围大于request;session通过id与浏览器绑定区分会话)

1写入读取

//写入
HttpSession session = req.getSession();
session.setAttribute("key","value");

//读取
HttpSession session = req.getSession();
String value = (String)session.getAttribute("key");//常见如获取用户名、密码等
String seesionId = session.getId();//一个session利用唯一的id与浏览器的cookie进行绑定,用来区分会话

2失效(常用于注销;失效原因:会话超时,invalidate方法,浏览器cookie禁用)

//注销
session.invalidate();

//时长-web.xml中配置,单位为分钟
<session-config>
<session-timeout>1</session-timeout>
</session-config>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: