cookie

  javax.servlet.http.cookie类用户创建一个cookie,Response接口中也定义了一个addcookie方法(向服务器写东西都找到Response方法),用于在其响应头中增加一个响应的set-cookie头字段,同样,Request接口中也定义了一个getcookies方法(获取到的是一个数据,即所有的cookie),用于获取客户端提交的cookie,cookie类方法如下:

在创建了一个cookie之后,如果不用这个方法设置,那么cookie的生命周期就是浏览器进程

比如我们常用的论坛登录,记住密码一周,其实就是把服务器发送过来的cookie保存在了本地硬盘、

cookie应用:

记录上次访问时间:

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        
        PrintWriter out = response.getWriter();
        out.print("您上次访问时间是:");
        
        //获得用户的时间cookie
        Cookie cookie[] = request.getCookies();
        for(int i=0;cookie!=null &&i<cookie.length;i++)
        {
            if(cookie[i].getName().equals("lastAccessTime"))
            {
               long cookieValue  = Long.parseLong(cookie[i].getValue());
               Date date =new Date(cookieValue);
               out.print(date.toLocaleString());
            }
        }            
            
        //给用户回送最新的访问时间
        Cookie cookie2 =new Cookie("lastAccessTime",System.currentTimeMillis()+"");
        cookie2.setMaxAge(1*30*24*3600);
        cookie2.setPath("/D716");        
        response.addCookie(cookie2);            
    }

其中setMaxAge是设置cookie有效期,不设置的话是会话级别的,即关掉浏览器就没有了

把值设置为0,表示清除该cookie。

例如上面的例子加一个按钮,表示清除上次访问时间。

删除cookie的时候path也需要一致

setPath是设置有效域,如果不设置,那么cookie只是在这个Servlet下有效,设置后,会在整个web下有效

原文地址:https://www.cnblogs.com/tech-bird/p/3849046.html