`

Servlet学习笔记之Cookie详解

 
阅读更多

一、Cookie的创建

 

java.servlet.http.Cooie类只提供了一个带参数的构造方法用于创建Cookie:

 

java.servlet.http.Cookie(java.lang.String name, java.lang.String value) 

 

二、Cookie各属性的介绍

 

1、comment

一个描述cookie用途的注释。

2、domain

域名指定cookie在哪个域中有效,例如:Domain=“.blog.51cto.com”。

Cookie是不可跨域名的,域名www.google.com办法的Cookie不会被提交到www.baidu.com去,这是由Cookie的隐私安全机制决定的。

同一级域名的2个不同下一级域名(如www.cctv.com和mail.cctv.com)也不能交换使用Cookie,因为二者的域名并不严格相同。如果想使cctv.com名下的所有域名交互使用Cookie,可以如下设置Cookie的domain属性:

cookie.setDomain(".cctv.com");

domain参数必须以“.”开始,name相同但domain不同的2个Cookie是不同的Cookie。

3、maxAge

返回cookie在客户端最大的有效时间,以秒为单位。

Cookie的maxAge的默认值为-1,表明这是一个临时Cookie。临时Cookie不会被保存到磁盘上,它仅仅存在于当前浏览器所在的内存中,浏览器关闭后该类型的Cookie也随之消失。

如果将maxAge的值设为0,表示删除这个Cookie。当浏览器收到maxAge为0的Cookie时,会直接删除该Cookie。

如果设置为正整数,则表示该Cookie在客户端的有效时间。

4、name

Cookie的名字。

这个名称必须遵循RFC 2109的规范。这意味着它仅仅能包含ASCII码字符,并且不能包含逗号,分号,或者空格,或者以$开头的字符串,cookie的名字在创建后就不能再改变了。

5、path

Cookie对服务器上哪个url有效。

Cookie的path属性决定可以访问该Cookie的Web资源的路径。

如果只允许“/session/”下的资源使用该Cookie,则可以如下设置Cookie:cookie.setPath("/session/");。

设置为“/”时允许所有路径使用该Cookie,path属性需要使用“/”结尾,name相同但path不同的2个Cookie是不同的。

页面只能获取它属于的path的Cookie。

path的默认值为request。getServletContext()的返回值。

6、secure

这是一个boolean类型的值,表示是否强制浏览器只在安全的协议中传输Cookie。

HTTP协议不仅是无状态的,而且是不安全的。如果不希望Cookie在HTTP等不安全的协议中传输,可以设置该属性为true,则浏览器只会在HTTPS、SSL等安全协议中传输此类Cookie。

7、value

Cookie的指。

这个值可以发送给任何的服务器,但是仅对某个服务器有作用。这个值在创建后可以通过setValue方法来改变。

8、version

返回cookie内容所遵循的版本。(目前只有值为1时可用)。

 

三、方法详情

 

javax.servlet.http.Cookie

 

四、如何向客户端发送Cookie

Cookie  nameCookie = new  Cookie("name", "Tom");
nameCookie.setMaxAge(60*60*24*7);
nameCookie.setComment("这是用户名。");

Cookie  pwdCookie = new  Cookie("pwd", "123456789");
pwdCookie.setMaxAge(60*60*24*7);
pwdCookie.setComment("这是密码。");

response.addCookie(nameCookie);
resopnse.addCookie(pwdCookie);

 

五、如何获取客户端的Cookie

 

 

String  nameCookie = "name", name;
String  pwdCookie = "pwd", pwd;

Cookie  cookies = request.getCookies();

if(cookies != null){
     for(Cookie  c  :  cookies){
          if(c.getName().equals(nameCookie))
               name = c.getValue();
          if(c.getName().equals(pwdCookie))
               pwd = c.getValue();
     }
}

 

 六、如何修改和删除Cookie

 

Cookie类并没有提供修改、删除操作。

如果要修改某个Cookie,只需创建一个同名的Cookie,并添加到response中覆盖原来的Cookie。

如果要删除某个Cookie,只需创建一个同名的Cookie,并将maxAge设为0,添加到response中覆盖原来的Cookie即可。

修改、删除Cookie时,新建的Cookie除value和maxAge之外的所有属性,如name、path、domain等都要和原来的Cookie一样,否则,浏览器将视为2个不同的Cookie,不予覆盖,导致修改、删除失败。

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Servlet学习笔记

    ### Servlet学习笔记精炼知识点 #### 一、Servlet初始化与加载机制 1. **Servlet注册与实例化**:在Web应用中,一个Servlet的生命周期始于它的注册与实例化过程。通常,这一过程是在Web服务器启动时,根据`web.xml...

    Servlet学习笔记4

    ### Servlet学习笔记4 #### 一、URL Pattern详解 在Servlet配置中,URL Pattern是非常重要的一个概念,它决定了Servlet能够响应哪些请求路径。通常来说,URL Pattern可以分为三种类型: 1. **确切路径匹配**:...

    良葛格JspServlet学习笔记.pdf

    ### 良葛格JspServlet学习笔记 #### 一、引言 在现代Web开发领域,特别是Java EE平台中,JSP (JavaServer Pages) 和 Servlet 技术扮演着非常重要的角色。这两种技术共同构成了Java Web应用的基础,分别侧重于用户...

    servlet学习笔记

    ### servlet学习笔记详解 #### Tomcat介绍 **Tomcat服务器**是基于Sun公司的JSWDK(Java Servlet and Web Development Kit)发展而来的杰出Servlet/JSP容器。作为Apache-Jakarta项目的一部分,Tomcat不仅能够执行...

    韩顺平servlet笔记

    【描述】:“韩顺平servlet笔记 tomcat配置 cookie session 开发”描述了学习的重点,包括了如何配置和使用Tomcat服务器,这是运行Java Web应用的基础。Cookie和Session是Web开发中的关键概念,它们用于管理和跟踪...

    servlet笔记

    ### Servlet基础知识与核心技术详解 #### 一、Servlet简介与Web服务器配置 ##### 1.1 Servlet简介 - **Servlet** 是服务器端的小程序,相对于客户端的 Applet 而言。它可以在服务器端运行,接收来自客户端的 ...

    JAVA学习笔记1

    ### JAVA学习笔记1:深入解析J2EE框架与关键技术 #### J2EE模式与Value Object概念 在JAVA学习之旅中,深入理解J2EE(Java 2 Platform, Enterprise Edition)框架是至关重要的一步。J2EE是专为开发企业级应用而...

    J2EE学习笔记

    ### J2EE学习笔记知识点详解 #### 一、概述 J2EE(Java 2 Platform, Enterprise Edition)是Sun Microsystems公司推出的一种企业级Java平台,主要用于构建可伸缩且易于维护的企业级应用。J2EE架构的核心优势在于其...

    javaEE学习笔记

    以上是对《Java/JavaEE 学习笔记》中提到的主要知识点的详细总结,涵盖了 Unix、Java 核心概念、JDBC、Hibernate 以及 Servlet 等多个方面。这些内容不仅适合初学者作为入门指南,也为进阶学习者提供了深入研究的...

    JSP学习笔记

    ### JSP学习笔记详解 #### 一、JSP基础语法概览 JSP(Java Server Pages)是一种在服务器端执行的脚本语言,用于生成动态网页。它将HTML标记、JavaScript脚本和Java代码结合在一起,使开发者能够创建功能丰富的Web...

    java学习笔记

    ### Java学习笔记知识点总结 #### 一、Java/JavaEE概览 - **定义与特点**: - **Java**是一种广泛使用的面向对象的编程语言,由Sun Microsystems于1995年推出。 - **JavaEE**是Java平台企业版的简称,是一套为...

    jsp学习笔记

    ### JSP学习笔记知识点梳理 #### 一、JSP中的隐式对象 JSP提供了九个内置对象(也称为隐式对象),它们分别是:`request`、`response`、`out`、`session`、`application`、`config`、`pageContext`、`page` 和 `...

    JSP七个小项目代码和笔记汇总

    本资源包集合了七个不同的JSP项目代码和相关的学习笔记,是深入理解JSP技术及其应用的良好资料。 1. **用户登录与注册系统** 这个项目通常涉及到HTML表单提交、Servlet处理请求、JSP显示结果。通过这个项目,你...

    JSP七个小项目源码和笔记汇总(PDF)

    本资料包“JSP七个小项目源码和笔记汇总(PDF)”包含了七个典型的JSP项目实例及相应的学习笔记,对于初学者或有经验的开发者来说,都是提升技能、加深理解的好资源。 1. **登录注册系统** 这个项目涵盖了用户登录和...

    JSP七个小项目代码和笔记汇总(java web)

    这个压缩包包含了七个不同的JSP项目代码和相应的学习笔记,涵盖了Java Web开发中的核心概念和技术。以下是对每个项目及其相关知识点的详细介绍: 1. **用户登录与注册系统** - 这个项目涉及到了HTTP请求处理、JSP...

    JSP+DAO留言管理程序(代码+笔记)

    《JSP+DAO留言管理程序详解》 在IT领域,JSP(Java Server Pages)与DAO(Data Access Object)模式的结合是常见的Web应用程序开发方式,尤其在构建动态网站时,如留言管理系统。本篇文章将深入探讨这个基于JSP+DAO...

    javaweb项目实例

    这个实例不仅包含实际的代码实现,还提供了详尽的笔记和实现步骤,使得学习过程更加清晰和系统化。 1. **JavaWeb基础** - **Servlet**: JavaWeb的核心组成部分,用于处理HTTP请求,提供动态网页服务。在实例中,你...

    weblogic培训资料

    【WebLogic培训资料详解】 WebLogic Server是一款由Oracle公司开发的企业级Java应用服务器,它提供了全面的Java EE(现在称为Jakarta EE)平台支持,包括Servlet、JSP、EJB等核心服务。本培训资料主要涵盖了...

    java项目电影院购票系统jsp+mysql.zip

    《基于Java和MySQL的电影院购票系统详解》 在IT行业中,开发一款实用的电影院购票系统是常见的实践项目,尤其对于学习Java和Web开发的学生及开发者来说。本项目名为"java项目电影院购票系统jsp+mysql.zip",是一个...

Global site tag (gtag.js) - Google Analytics