Cookie实例,理解cookie

前端之家收集整理的这篇文章主要介绍了Cookie实例,理解cookie前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

 

一、一句话了解cookie是什么

cookie是服务端发送给客户端的、用来记录一些信息(如用户名),定制主页,聚焦广告的、最终以文件形式存在于客户端电脑磁盘下的小型文档。

二、用实例来认清cookie

   1.新建web项目,编写一个测试的servlet 如下

 

public class CookiesServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public CookiesServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

     HttpServlet#doGet(HttpServletRequest request,HttpServletResponse response)
     protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
        获得请求中的cookie
        Cookie[] cs=request.getCookies();
        String wellcome;显示页面的信息
        boolean newVisit=true;
        if(cs!=null){有cookie,并且又指定的cookie
            for(Cookie co:cs){
                if(co.getName().equals("visitCookie")&&co.getValue().equals("yes")){有指定的cookie
                    newVisit=false;
                    break;
                }
            }
        }
        if(newVisit){
            Cookie visitCookie=new Cookie("visitCookie","yes");
            visitCookie.setMaxAge(60);设置cookie失效时间
            response.addCookie(visitCookie);
            wellcome="wellcome";
        }else{
            wellcome="wellcome again";
        }
        PrintWriter out=response.getWriter();
        out.print("<html><body><h1>"+wellcome+"</h1></body></html>");
    }

     HttpServlet#doPost(HttpServletRequest request,1)">void doPost(HttpServletRequest request,1)"> TODO Auto-generated method stub
        this.doGet(request,response);
    }

}

 

2.部署项目到tomcat,并测试访问。打开IE浏览器输入 http://ip:port/项目名/servlet名 访问

如图所示,第一次访问 显示 wellcom

 

  

    再次访问(以及关闭浏览器后再次访问)显示

说明我们设置的cookie已经起作用了。我们找到Ie浏览器的cookie目录可以看到我们设置的 cookie以一个文件存在,如下:

超时之后再访问,浏览器又会显示 wellcom,说明visitCookie.setMaxAge(60);//设置cookie失效时间 这段代码起了作用(经测试IE、火狐、谷歌浏览器都可以)

三、一些问题

1. 各个浏览器的cookie有关系吗?

  应该没有,应该是各自独立的,因为,在IE访问已经产生cookie之后。火狐、谷歌浏览器还是显示没有cookie的情况。

2.cookie文件是在哪里?超时会删除吗?

 我的电脑win7,cookie在C:\Users\Administrator\AppData\Local\Microsoft\Windows\Temporary Internet Files 中找到了。

超时之后,cookie文件还是存在,但是超时之后访问浏览器的时候显示的是没有cookie之后的情况。【测试IE的情况】

 3.如果浏览器禁用了cookie会怎么样?

我在火狐浏览器设置【不接受cookie】之后,客户端就没有记录cookie了,每次访问都和第一次一样。

 

猜你在找的Java相关文章