`
kuru
  • 浏览: 137083 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Servlet读取Cookie

    博客分类:
  • java
阅读更多

Cookie概述
   Cookie是服务器发送给浏览器的体积很小的纯文本信息,用户以后访问同一个Web服务器时浏览器会把它们原样发送给服务器。通过让服务器读取它原先保存到客户端的信息,网站能够为浏览者提供一系列的方便,例如在线交易过程中标识用户身份、安全要求不高的场合避免用户重复输入名字和密码、门户网站的主页定制、有针对性地投放广告,等等。
  
     Cookie的目的就是为用户带来方便,为网站带来增值。虽然有着许多误传,事实上Cookie并不会造成严重的安全威胁。Cookie永远不会以任何方式执行,因此也不会带来病毒或攻击你的系统。另外,由于浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4 KB,因此Cookie不会塞满你的硬盘,更不会被用作“拒绝服务”攻击手段。
   
Servlet的Cookie API
    要把Cookie发送到客户端,Servlet先要调用new Cookie(name,value)用合适的名字和值创建一个或多个Cookie,通过cookie.setXXX设置各种属性,通过response.addCookie(cookie)把cookie加入应答头。
  
     要从客户端读入Cookie,Servlet应该调用request.getCookies(),getCookies()方法返回一个Cookie对象的数组。在大多数情况下,你只需要用循环访问该数组的各个元素寻找指定名字的Cookie,然后对该Cookie调用getValue方法取得与指定名字关联的值。
  
创建Cookie
  
    调用Cookie对象的构造函数可以创建Cookie。Cookie对象的构造函数有两个字符串参数:Cookie名字和Cookie值。名字和值都不能包含空白字符以及下列字符:
   [ ] ( ) = , " / ? @ : ;
  

读取和设置Cookie属性
  
    把Cookie加入待发送的应答头之前,你可以查看或设置Cookie的各种属性。下面摘要介绍这些方法:
   getComment/setComment
  获取/设置Cookie的注释。
  getDomain/setDomain
  获取/设置Cookie适用的域。一般地,Cookie只返回给与发送它的服务器名字完全相同的服务器。使用这里的方法可以指示浏览器把Cookie返回给同一域内的其他服务器。注意域必须以点开始(例如.sitename.com),非国家类的域(如.com,.edu,.gov)必须包含两个点,国家类的域(如.com.cn,.edu.uk)必须包含三个点。
  getMaxAge/setMaxAge
  获取/设置Cookie过期之前的时间,以秒计。如果不设置该值,则Cookie只在当前会话内有效,即在用户关闭浏览器之前有效,而且这些Cookie不会保存到磁盘上。参见下面有关LongLivedCookie的说明。
  getName/setName
  获取/设置Cookie的名字。本质上,名字和值是我们始终关心的两个部分。由于HttpServletRequest的getCookies方法返回的是一个Cookie对象的数组,因此通常要用循环来访问这个数组查找特定名字,然后用getValue检查它的值。
  getPath/setPath
  获取/设置Cookie适用的路径。如果不指定路径,Cookie将返回给当前页面所在目录及其子目录下的所有页面。这里的方法可以用来设定一些更一般的条件。例如,someCookie.setPath("/"),此时服务器上的所有页面都可以接收到该Cookie。
  getSecure/setSecure
  获取/设置一个boolean值,该值表示是否Cookie只能通过加密的连接(即SSL)发送。
  getValue/setValue
  获取/设置Cookie的值。如前所述,名字和值实际上是我们始终关心的两个方面。不过也有一些例外情况,比如把名字作为逻辑标记(也就是说,如果名字存在,则表示true)。
  getVersion/setVersion
  获取/设置Cookie所遵从的协议版本。默认版本0(遵从原先的Netscape规范);版本1遵从RFC 2109 , 但尚未得到广泛的支持。



servlet操作cookie的几个实例

 import javax.servlet.http.Cookie;//导入cookie包
 Cookie c=new Cookie("name","hhh");//cookie值名对
  c.setMaxAge(60*60*24*365);//有效期一年
  c.setPath("/");           //路径
  c.setDomain("192.168.0.115");//域名
  response.addCookie(c);       //在本地硬盘上产生文件

//遍历cookie[]组,获取匹配值名对的cookie
public  String getCookieValue(Cookie[] cookies, String cookieName, String defaultValue) {
      for(int i=0; i<cookies.length; i++) {
      Cookie cookie = cookies[i];
      if (cookieName.equals(cookie.getName()))
      return(cookie.getValue());
      }
      return(defaultValue);
      }
Cookie[] c=request.getCookies();//获取cookie[]组
        String coo=this.getCookieValue(c, "name", "nocoo");//获取cookie值



//删除指定值名对的cookie
Cookie c=new Cookie("name","hhh");
  c.setMaxAge(0);//另有效时间为0则系统会自动删除过期的cookie
  c.setPath("/");
  c.setDomain("192.168.0.115");
  response.addCookie(c);
分享到:
评论

相关推荐

    servlet读取cookie代码

    使用servlet读取客户端浏览器中的cookie数据

    Java Web应用开发 50 课堂案例-应用Servlet读取Cookie数据.docx

    Java Web应用开发 50 课堂案例-应用Servlet读取Cookie数据.docx 学习资料 复习资料 教学资源

    JAVA编程百例+JAVA面试题集十套(经典)

    实例81 SERVLET读取COOKIE数据 实例86 JSP使用数据连接池 实例99 连接数据库 实例100 上传文件 面试题(很多企业都常常从这些面试题库中选题作为笔试题): Java就业面试题大全.pdf Java最全的面试题.pdf java面试...

    JAVA编程百例(照着例子更容易!)

    实例81 SERVLET读取COOKIE数据 实例82 SERVLET读取SESSION数据 实例83 一个简单的JSP 实例84 JSP处理表单提交 实例85 JSP连接数据库 实例86 JSP使用数据连接池 实例87 JSP+BEAN的应用 实例88 JSP+BEAN连接数据库 ...

    Java Servlet及Cookie的使用

    本文同时给出了通过Java Servlet向用户的硬盘写入和读取Cookie的方法及例程。通过它可以实现网上常见的个性化网页、网上购物篮、密码验证等。  Java Servlet是运行于Web服务器上的Java代码,它可以接受用户请求,...

    java中Servlet Cookie取不到值原因解决办法

    主要介绍了java中Servlet Cookie取不到值原因解决办法的相关资料,需要的朋友可以参考下

    Session Cookie的HttpOnly和secure属性

    如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法读取到Cookie信息,这样能有效的防止XSS攻击。 对于以上两个属性, 首先,secure属性是防止信息在传递的过程中被监听捕获后信息泄漏,...

    java-servlet-api.doc

    Servlet引擎载入Servlet后,Servlet引擎必须对Servlet进行初始化,在这一过程中,你可以读取一些固定存储的数据、初始化JDBC的连接以及建立与其他资源的连接。 在初始化过程中,javax.servlet.Servlet接口的init()...

    Servlet与JSP核心编程第2版

    4.2 在servlet中读取表单数据 4.3 示例:读取3个参数 4.4 示例:读取所有参数 4.5 参数缺失或异常时默认值的应用 4.6 过滤字符串中的html特殊字符 4.7 根据请求参数自动填充java对象:表单bean 4.8 当...

    基于cookie显示用户浏览记录

    下半部分是用户最近浏览的图书,通过读取浏览器的cookie数据,将符合条件的图书名字显示到主页上。 图书详细信息界面:当用户点击超链接后,显示该图书详细信息,然后把该图书编号id及书名name写入到cookie中,...

    Java Web应用开发:Servlet和JSP技术进阶.ppt

    服务器可以利用request对象的getParameter()方法读取出来。 隐藏表单案例-index.jsp 把id写进Hidden表单里,用户看 不见,但是只要表单一提交, 这个参数值就可以提交给a.jsp 隐藏表单 VS URL重写 同重写URL技术相比...

    九、处理Cookie

    通过让服务器读取它原先保存到客户端的信息,网站能够为浏览者提供一系列的方便,例如在线交易过程中标识用户身份、安全要求不高的场合避免用户重复输入名字和密码、门户网站的主页定制、有针对性地投放广告,等等。...

    JSP100选择题 JSP100选择题 适合考前练习

    A.Cookie是Web服务器发送给客户端的一小段信息,客户端请求时,可以读取该信息发送到服务器端 B.关闭浏览器意味着会话ID丢失,但所有与原会话关联的会话数据仍保留在服务器上,直至会话过期 C.在禁用Cookie时可以...

    互联网监管系统搜索技术特点

    多线程管理、直接读取、处理代理服务器、处理HTTP协议、处理HTTPS协议、UDP探测网站、和WEB服务器通讯、处理Unix/Linux文件重定位、处理文献限制参数、处理搜索层级、处理网页框架、处理CGI/Servlet、处理Form、突破...

    JSP动态网站开发基础教程与实验指导(从基础到应用)光盘

    练习8-1 Servlet读取数据库记录 344 练习8-2 Servlet实现网上购物 347 练习8-3 Servlet控制案例 350 第9单元 352 练习9-1 创建用户登录页面 352 练习9-2 使用层构建网页 353 练习9-3 使用JavaScript创建计算器 354

    java web技术开发大全(最全最新)

    4.7.3 实例:解决服务端程序读取中文请求消息的乱码问题 4.7.4 实例:用AJAX技术发送和接收中文信息 4.7.5 实例:在请求消息头和响应消息头中转输中文 4.8 小结 第5章 JSP技术 5.1 用MyEclipse编写第一个...

    java web开发技术大全

    4.7.3 实例:解决服务端程序读取中文请求消息的乱码问题 4.7.4 实例:用AJAX技术发送和接收中文信息 4.7.5 实例:在请求消息头和响应消息头中转输中文 4.8 小结 第5章 JSP技术 5.1 用MyEclipse编写第...

    JSP实例编程100例

    34、javax.servlet.jsp.JspWriter - out 对象 35、page 隐含对象 36、application 对象 37、PageContext 对象 38、Page范围 - pageContext 39、测试要显示的中文 40、IF控制符的操作 41、HttpServletRequest 接口所...

    JAP编程学习100例

    34、javax.servlet.jsp.JspWriter - out 对象 35、page 隐含对象 36、application 对象 37、PageContext 对象 38、Page范围 - pageContext 39、测试要显示的中文 40、IF控制符的操作 41、HttpServletRequest 接口所...

Global site tag (gtag.js) - Google Analytics