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了,每次访问都和第一次一样。
如果我的文章对你有帮助,欢迎微信支付打赏。