Cookie简介:Cookie是服务器保存在客户端上的一组数据。例如,一些登陆网站时会提示是否保存密码,或是选择登陆有效期(浏览器进程、一天、一个月等等),这些都可以使用Cookie来实现。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
Cookie类
javax.servlet.http.Cookie
构造方法
Cookie(String name,String value)
服务器向客户端设置cookie
addCookie(Cookie cookie)
由response调用,可反复使用该方法设置多个Cookie
服务器从客户端取回之前保留在客户端上的cookie
Cookie[] getCookies()
由request调用
设置cookie在本地留存的时间
setMaxAge(int expiry)
由cookie对象调用
l示例:设置Cookie
cookie01.jsp à 服务器响应客户的请求时,设置cookie到客户端:
²先准备好cookie对象
然后利用 response.addCookie(Cookie cookie)进行设置
<%    
          //构造Cookie对象,构造方法:Cookie(String name,String value)
          Cookie c1= new Cookie("name","Jerry");
          Cookie c2= new Cookie("password","1234");
          Cookie c3= new Cookie("access_time",new Date().toString());
            
          //将Cookie设置给客户端
          //服务器向客户端传递数据,使用response对象
          //方法:reponse.addCookie(Cookie cookie)
            
          response.addCookie(c1);
          response.addCookie(c2);
          response.addCookie(c3);
%>
【注】浏览器窗口中看不到Cookie的信息
Cookie02.jsp à 如果需要,服务器可以从客户端取回cookie,这是从客户端传数据到服务器,故要使用request的方法:Cookie[] request.getCookies()
²利用request.getCookies()取得cookie数组
遍历数组,取得其中每一个cookie
<%
          //Cookie[] request.getCookies()方法
          Cookie[] cs = request.getCookies();
            
          for(int i=0;i<cs.length;i++){            
            Cookie tmp = cs[i];    
            //每一个Cookie由 name--value构成
            //可以使用 String getName() 和 String getValue() 获得各成分的值
                    
        %>    
            
          <h1> <%= tmp.getName() %> <%=tmp.getValue() %> </h1>
        <%    
          }        
            
          //JSESSIONID ACCE027387AADBD63525E4446F1DFD83是服务器自动设置的
          //代表这个客户端在服务器上的一个唯一编号
%>
【注】:每一个cookie都是由 name – value构成(由构造方法可知),Cookie类提供了如下2个方法获取cookie的name和value的值:
String getName()
String getValue()
l设置Cookie的保存时间
²默认情况下:cookie是仅在浏览器进程中有效。
(在一个窗口中先运行 cookie01.jsp实现设置cookie,然后仍然在这个窗口中运行 cookie02.jsp 取回cookie 并显示 是可以实现。但,如果在另外的浏览器窗口中直接运行 cookie02.jsp ,则无法再取回之前设置的cookie了)
²如果希望cookie能在本地留存一段时间,使得在一段时间之内都可以取回cookie,则可以利用Cookie类的setMaxAge(int expiry) 方法,expiry表多少秒后cookie过期。
修改cookie01.jsp 为 cookie03.jsp ,增加cookie留存时间的设置,仍然使用cookie02.jsp取回cookie
<h1>利用Cookie类的setMaxAge(int expiry)可是设置cookie在本地计算机上留存一段时间,单位是秒</h1>

<%
              //构造Cookie对象,构造方法:Cookie(String name,String value)
              Cookie c1= new Cookie("name","Jerry");
              Cookie c2=new Cookie("password","1234");
              Cookie c3=new Cookie("access_time",new Date().toString());
                
              //设置留存时间30秒
              c1.setMaxAge(30);
              c2.setMaxAge(30);
              c3.setMaxAge(30);
                
              //将Cookie设置给客户端
              //服务器向客户端传递数据,使用response对象
              //方法:reponse.addCookie(Cookie cookie)
                
              response.addCookie(c1);
              response.addCookie(c2);
              response.addCookie(c3);
    %>

则运行 cookie03.jsp完成设置cookie后,即使另开一个浏览器窗口,直接运行 cookie02.jsp 仍然可以取回cookie, 但时限到了之后cookie还是会失效。
但是,服务器自动设置的JSESSIONID还在。
我的备注:一个servlet/jsp设置的路径能够被同一路径或子路径下的servlet/jsp访问到,其它路径不能访问到。

本文出自 51CTO.COM技术博客

转载于:https://blog.51cto.com/13867166557/405322

JspServlet之Cookie相关推荐

  1. SpringBoot - SpringBoot配置说明

    端口号 server.port=8000 Web URL server.context-path=/config 服务器ip地址 server.address= 设置http header大小 注意此 ...

  2. spring boot 最全配置说明

    # 端口号 server.port=8000 # Web URL server.context-path=/config # 服务器ip地址 server.address= # 设置http head ...

  3. JSPServlet精华笔记

    一.     JSP (Java Server Pages) JSP是指: ▶    在HTML中嵌入Java脚本代码 ▶    由应用服务器中的JSP引擎来编译和执行嵌入的Java脚本代码 ▶    ...

  4. 【JavaLearn】(24)Session、Cookie、ServletContext、MVC开发模式、JSP九大内建对象及四个作用域、JSTL及EL表达式、过滤器、监听器

    目录 1. session和cookie 1.1 session和cookie原理 1.2 cookie-实现10天免登录 1.3 session-实现记住用户名 2. servletContext ...

  5. 解决Cookie乱码问题

    写了一个cookie的定义和获取,结果我输入中文后,页面报错 报错信息如下: type Exception reportmessage An exception occurred processing ...

  6. HTTP 协议入门 — (TCP/IP协议族、通信传输流、URI 与 URL 的区别、Cookie 状态管理、HTTP 支持的方法、状态码类别、HTTP 首部字段)

    TCP/IP协议族 在介绍 HTTP 协议之前,我们先对 TCP/IP 协议族有个大概的了解,TCP/IP 协议从上到下主要分为应用层.传输层.网络层和数据链路层,各层的主要功能如下表所示: 协议层 ...

  7. cookie 免密登录_python

    我们都知道 HTTP 是无状态的,用户每次打开 web 页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息,那么服务器是怎么识别用户的呢? 这就是本文今天要讲解的内容.当服务端需要 ...

  8. 你想了解的Cookie和Session就在这~

    目录 1.会话的概念 2.保存会话的两种技术 3.Cookie 4.Session(重点) 1.会话的概念 我们知道session的意思就是会话,Cookie和Session 是两种会话技术,我们首先 ...

  9. Cookie和Session的区别与联系

    Cookie和Session Session 会话的理解 Session的作用 HTTP协议的无状态特点 Session的实现原理(重点) Session常用方法: Cookie 基本介绍 经典案例 ...

最新文章

  1. byte数组添加数据_数据类型
  2. 网关限流了,躲在后面的服务就能高枕无忧啦?
  3. Windows mosek
  4. ASP.NET MVC分页实现
  5. 北京内推 | 启元实验室招聘视觉感知算法工程师(北京事业单位)
  6. 第十九章:李丽质入狱
  7. 这个“十一”长假,你是背“锅”出行吗?
  8. 淘品牌”已去,“播品牌”正红
  9. MD5加密 java实现
  10. AdneneBoumessouer / MVTec-Anomaly-Detection学习笔记
  11. java追加到文件末尾_Java追加到文件
  12. Mongodb JAVA API
  13. 银行突发事件演练方案_湘阴星龙村镇银行开展防抢劫应急预案实战演练
  14. java 文件流传输_java – 将远程文件流式传输到文件对象中
  15. 【元胞自动机】基于matlab元胞自动机单车道交通流(时空图)【含Matlab源码 1681期】
  16. AirPlay to Mac 如何工作以及使用它需要什么
  17. 大数据专业考研书_大数据考研
  18. 解决FFMPEG错误:height not divisible by 2 / width not divisible by 2
  19. 单片机霹雳灯双灯c语言,HOLTEK单片机-8LED霹雳灯
  20. 黑马学员放弃20K月薪投身比亚迪,是去「车间」打螺丝吗?

热门文章

  1. Android项目中的assets和raw文件夹
  2. 如何读取抓取的wifi包内容
  3. CentOS-6.4安装配置Nginx
  4. wpf学习笔记---初识xaml标签语言
  5. 使用OpenCV进行人脸关键点检测
  6. 高可靠芯片搭配视觉演算法,影像式ADAS满足车规要求
  7. 如何设计好词袋模型BoW模型的类类型
  8. I2C从驱动到应用(中篇)
  9. POJ 1260 Pearls
  10. Visual Studio 2017最新版正式发布!适用于任何开发人员、平台及APP丨附下载