1.Cookie (客户端所拥有)
a.含义:服务器给浏览器的甜点
b.语法:
//创建Cookie
Cookie cookie = new Cookie("name", "zhangsan"); //将Cookie发送到客户端
response.addCookie(cookie); //获取Cookie
Cookie[] cookies = request.getCookies(); //获取Cookie的name
String name = cookie.getName(); //获取Cookie的value
String value = cookie.getValue();
c.注意:Cookie 的 name 和 value 都不能是中文,一个浏览器最多存放20个Cookie
d.Cookie的有效时间(-1为默认时间)
cookie.setMaxAge(3600*24*7); //设置cookie的有效时间,单位:秒 cookie.setMaxAge(0);
response.addCookie(cookie); //设置cookie的有效时间为0,则为清除cookie
2.Session (服务端所拥有)
a.语法:
HttpSession session = request.getSession(true); //当session不存在的时候创建一个session,存在就取session
b.设置非活动间隔时间
①在web.xml中设置(单位:分钟)
<session-config>
<session-timeout>10</session-timeout>
</session-config>
②在Servlet中设置(单位:秒)
session.setMaxInactiveInterval(60*5); //值为-1时为永不失效
c.属性:
session.setAttribute("dateTime" , new Date()); //设置或修改session属性 Date date = (Date)session.getAttribute("dateTime"); //获取session属性
d.删除:
session.removeAttribute("user"); //删除属性 session.invalidate(); //彻底删除session(不推荐)
3.URL重写
a.定义:即在URL地址后面加上jsessionid,用于保障Cookie被禁用时session的使用
b.语法:
String url = response.encodeURL("getSession"); out.println("<a href='" + url + "'>跳转</a>");
4.ServletContext 应用上下文
ServletContext application = getServletContext(); //设置全局参数
application.setAttribute("count" , 1); //获得全局参数
application.getAttribute("count");