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
    }

    /**
     * @see 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>");
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 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了,每次访问都和第一次一样。

 

posted @ 2014-07-30 11:37  逃离沙漠  阅读(967)  评论(0编辑  收藏  举报