一、cookie
Cookie 是存储在客户端计算机上的文本文件,当下一次浏览器向 Web 服务器发送任何请求时,浏览器会把这些 Cookie 信息发送到服务器,服务器将使用这些信息来识别用户。
- cookie对象的构造
Cookie cookie = new Cookie("aaa","bbbb");
- 获取cookie
// 获取cookie
Cookie[] cookies = request.getCookies();
- 发送cookie
response.addCookie(cookie);
- 设置cookie
- void setPath(java.lang.String uri): 设置cookie的有效路径,浏览器在有效路径访问服务器的时候回带回cookie
- void setMaxAge(int expiry):设置cookie的有效时间。单位为秒,负数时表示存在浏览器内存中,关闭浏览器就消失。当为0 时表示删除cookie。
- void setValue(java.lang.String newValue):设置cookie的值
- public void setDomain(String pattern):设置cookie的适用域。
- cookie处理中文
cookie处理中文需要编码
// 编码
Cookie name = new Cookie("name",
URLEncoder.encode("你好", "UTF-8")); // 中文转码
// 解码
URLDecoder.decode(cookie.getValue(), "utf-8")
二、会话
- HttpSession对象
// 获取session
request.getSession();
request.getSession(true); // 设置true 如果找不到对应的session,就创建一个返回,如果设置false,没有就返回null
- 设置session对象
- void setMaxInactiveInterval(int interval):设置session的有时间。
系统默认为30分钟。也可以通过配置文件设置。 - void invalidate() :手动销毁session
- public void setAttribute(String name, Object value) :指定的名称绑定一个对象到该 session 会话
- public Object getAttribute(String name):在该 session 会话中具有指定名称的对象,如果没有指定名称的对象,则返回 null
- 当客服端禁用cookie的时候可以通过url重写的方法
- response.encodeRedirectURL(java.lang.String url): 用于对sendRedirect方法后的url地址进行重写。
- response.encodeURL(java.lang.String url):用于对表单action和超链接的url地址进行重写