Cookie
Cookie是服务器通知客户端保存键值对的一种技术
客户端每次发送请求都会携带Cookie到服务器【<=4KB】
<a href="cookieservlet?action=createCookie" target="target">cookie的创建</a>
protected void createCookie(HttpServletRequest req, HttpServletResponse resp) throws Exception {
//1 创建cookie对象
cookie cookie = new cookie("key2","value2");
//2通知客户端保存cookie
resp.addcookie(cookie);
// 创建多个Cookie
cookie cookie1 = new cookie("key3","value3");
resp.addcookie(cookie1);
//打印到屏幕上
resp.getwriter().write("cookie创建成功");
}
请求头
查看Cookie
<a href="cookieservlet?action=getCookie" target="target">cookie获取</a>
protected void getcookie(HttpservletRequest req, HttpServletResponse resp) throws Exception {
cookie[] cookies = req.getcookies();
for (cookie cookie : cookies) {
// getName方法返回cookie的key (名)
// getvalue方法返回cookie的value值
resp.getwriter().write( "cookie[" + cookie.getName() + "=" + cookie.getvalue() + "]<br/>");
}
}
Cookie的生命控制
setMaxAge()
正数,表示在指定的秒数后过期
负数,表示浏览器一关,cookie就会被删除【默认值是-1,即session】
零,表示马上删除cookie
Cookie的path路径
protected void testPath(HttpServletRequest req,HttpServletResponse resp throws Exception {
cookie cookie = new cookie("path1","path1");
// getcontextPath( ) ===>>>>得到工程路径【只有匹配路径的才会有效】
cookie.setPath( req.getContextPath() + "/abc" ); // ===>>>>/工程路径/abc
resp.addcookie(cookie);
resp.getwriter( ).write( s:"创建了一个带有Path路径的cookie");
}
================================= 一条华丽的分割线 ==================================================
Session
每个客户端都有一个session来保存用户登录后的信息
Session的创建和获取
request.getSession() 第一次调用是:创建Session会话 之后调用都是:获取前面创建好的session会话对象。
isNew();判断Session到底是不是刚创建出来的(新的)
getld()得到session的会话id值。
Session的创建和获取
protected void createOrGetSession(HttpServletRequest req, HttpServletResponse resp) throws ServletEx(
//创建和获取session会话对象
Httpsession session = req.getsession();
//判断当前session会话,是否是新创建出来的
boolean isNew = session.isNew( );
//获取session会话的唯一标识id
string id = session.getId();
resp.getwriter().write( "得到的session,它的id是:" + id + " <br />");
resp.getwriter().write( "这个session是否是新创建的: " + isNew + " <br /> ");
}
Session域中数据的存取
req.getsession( ).setAttribute( "key1", "value1");
req.getsession().getAttribute( "key1" );
Session 生命周期
setMaxInactiveInterval(1200)
值为正数的时候,设定session的超时时长。
负数表示永不超时(极少使用)
session.invalidate() 让当前session会话马上超时无效。
// 设置Session的超时时间〈以秒为单位),超过指定的时长,Session就会被销毁。
setMaxInactiveInterval(int interval)
// 获取Session的超时时间
getMaxlnactivelnterval()
//session默认的超时时间长为30分钟,因为在Tomcat服务器的配置文件web.xml中有默认配置
// 单独设置超时时长。
session.setMaxInactivelnterval(int interval)
================================= 一条华丽的分割线 ==================================================
Cookie和Session
Session 技术,底层其实是基于cookie技术来实现的。
因为cookie创建的JSESSIONID,默认的生存时间为session,即关闭浏览器就消失
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/133728.html