Cookie

Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。

设置cookie和获取cookie

package com.cookie;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class Testcookie extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Cookie cookie = new Cookie("aa","bb");

        //正值 : 表示 在这个数字过后,cookie将会失效。
        //负值: 关闭浏览器,那么cookie就失效, 默认值是 -1
//      cookie.setMaxAge(60 * 60 * 24 * 7);

        //赋值新的值
        cookie.setValue("cc");

        //用于指定只有请求了指定的域名,才会带上该cookie
//      cookie.setDomain(".1997sty.com");

        //只有访问该域名下的cookieDemo的这个路径地址才会带cookie
//      cookie.setPath("/Testcookie");

        //给响应,添加一个cookie
        response.addCookie(cookie);

        //读取cookie
        Cookie[] getc = request.getCookies();
        if(getc != null)
        {
            for (Cookie c : getc) 
            {
                response.getWriter().write(c.getName()+"="+c.getValue());
            }
        }
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}

Session

会话,Session是基于Cookie的一种会话机制。Cookie是服务器返回一小份数据给客户端,并且存放在客户端上。Session是,数据存放在服务器端。

HttpSession session = request.getSession();

//得到会话ID
String id = session.getId();

HttpSession session = request.getSession();
System.out.println(session.getId());
//存值
session.setAttribute("sess", "123");
//取值
System.out.println(session.getAttribute("sess"));
//移除值
session.removeAttribute("sess");

//强制干掉会话,里面存放的任何数据就都没有了。
session.invalidate();