一、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时可用)。
三、方法详情
四、如何向客户端发送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初始化与加载机制 1. **Servlet注册与实例化**:在Web应用中,一个Servlet的生命周期始于它的注册与实例化过程。通常,这一过程是在Web服务器启动时,根据`web.xml...
### Servlet学习笔记4 #### 一、URL Pattern详解 在Servlet配置中,URL Pattern是非常重要的一个概念,它决定了Servlet能够响应哪些请求路径。通常来说,URL Pattern可以分为三种类型: 1. **确切路径匹配**:...
### 良葛格JspServlet学习笔记 #### 一、引言 在现代Web开发领域,特别是Java EE平台中,JSP (JavaServer Pages) 和 Servlet 技术扮演着非常重要的角色。这两种技术共同构成了Java Web应用的基础,分别侧重于用户...
### servlet学习笔记详解 #### Tomcat介绍 **Tomcat服务器**是基于Sun公司的JSWDK(Java Servlet and Web Development Kit)发展而来的杰出Servlet/JSP容器。作为Apache-Jakarta项目的一部分,Tomcat不仅能够执行...
【描述】:“韩顺平servlet笔记 tomcat配置 cookie session 开发”描述了学习的重点,包括了如何配置和使用Tomcat服务器,这是运行Java Web应用的基础。Cookie和Session是Web开发中的关键概念,它们用于管理和跟踪...
### Servlet基础知识与核心技术详解 #### 一、Servlet简介与Web服务器配置 ##### 1.1 Servlet简介 - **Servlet** 是服务器端的小程序,相对于客户端的 Applet 而言。它可以在服务器端运行,接收来自客户端的 ...
### JAVA学习笔记1:深入解析J2EE框架与关键技术 #### J2EE模式与Value Object概念 在JAVA学习之旅中,深入理解J2EE(Java 2 Platform, Enterprise Edition)框架是至关重要的一步。J2EE是专为开发企业级应用而...
### J2EE学习笔记知识点详解 #### 一、概述 J2EE(Java 2 Platform, Enterprise Edition)是Sun Microsystems公司推出的一种企业级Java平台,主要用于构建可伸缩且易于维护的企业级应用。J2EE架构的核心优势在于其...
以上是对《Java/JavaEE 学习笔记》中提到的主要知识点的详细总结,涵盖了 Unix、Java 核心概念、JDBC、Hibernate 以及 Servlet 等多个方面。这些内容不仅适合初学者作为入门指南,也为进阶学习者提供了深入研究的...
### JSP学习笔记详解 #### 一、JSP基础语法概览 JSP(Java Server Pages)是一种在服务器端执行的脚本语言,用于生成动态网页。它将HTML标记、JavaScript脚本和Java代码结合在一起,使开发者能够创建功能丰富的Web...
### Java学习笔记知识点总结 #### 一、Java/JavaEE概览 - **定义与特点**: - **Java**是一种广泛使用的面向对象的编程语言,由Sun Microsystems于1995年推出。 - **JavaEE**是Java平台企业版的简称,是一套为...
### JSP学习笔记知识点梳理 #### 一、JSP中的隐式对象 JSP提供了九个内置对象(也称为隐式对象),它们分别是:`request`、`response`、`out`、`session`、`application`、`config`、`pageContext`、`page` 和 `...
本资源包集合了七个不同的JSP项目代码和相关的学习笔记,是深入理解JSP技术及其应用的良好资料。 1. **用户登录与注册系统** 这个项目通常涉及到HTML表单提交、Servlet处理请求、JSP显示结果。通过这个项目,你...
本资料包“JSP七个小项目源码和笔记汇总(PDF)”包含了七个典型的JSP项目实例及相应的学习笔记,对于初学者或有经验的开发者来说,都是提升技能、加深理解的好资源。 1. **登录注册系统** 这个项目涵盖了用户登录和...
这个压缩包包含了七个不同的JSP项目代码和相应的学习笔记,涵盖了Java Web开发中的核心概念和技术。以下是对每个项目及其相关知识点的详细介绍: 1. **用户登录与注册系统** - 这个项目涉及到了HTTP请求处理、JSP...
《JSP+DAO留言管理程序详解》 在IT领域,JSP(Java Server Pages)与DAO(Data Access Object)模式的结合是常见的Web应用程序开发方式,尤其在构建动态网站时,如留言管理系统。本篇文章将深入探讨这个基于JSP+DAO...
这个实例不仅包含实际的代码实现,还提供了详尽的笔记和实现步骤,使得学习过程更加清晰和系统化。 1. **JavaWeb基础** - **Servlet**: JavaWeb的核心组成部分,用于处理HTTP请求,提供动态网页服务。在实例中,你...
【WebLogic培训资料详解】 WebLogic Server是一款由Oracle公司开发的企业级Java应用服务器,它提供了全面的Java EE(现在称为Jakarta EE)平台支持,包括Servlet、JSP、EJB等核心服务。本培训资料主要涵盖了...
《基于Java和MySQL的电影院购票系统详解》 在IT行业中,开发一款实用的电影院购票系统是常见的实践项目,尤其对于学习Java和Web开发的学生及开发者来说。本项目名为"java项目电影院购票系统jsp+mysql.zip",是一个...