一.什么是cookies?

  大家都知道,浏览器与WEB服务器之间是使用HTTP协议进行通信的,当某个用户发出页面请求时,WEB服务器只是简单的进行响应,然后就关闭与该用户的连接。 因此当一个请求发送到WEB服务器时,无论其是否是第一次来访,服务器都会把它当作第一次来对待,这样的不好之处可想而知。为了弥补这个缺陷,Netscape开发出了cookie这个有效的工具来保存某个用户的识别信息,因此人们昵称为“小甜饼”。cookies是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段:Netscape Navigator使用一个名为cookies.txt本地文件保存从所有站点接收的Cookie信息;而IE浏览器把Cookie信息保存在类似于C:\windows\cookies的目录下。当用户再次访问某个站点时,服务端将要求浏览器查找并返回先前发送的Cookie信息,来识别这个用户。

  cookies给网站和用户带来的好处非常多:

1、Cookie能使站点跟踪特定访问者的访问次数、最后访问时间和访问者进入站点的路径
2、Cookie能告诉在线广告商广告被点击的次数 ,从而可以更精确的投放广告
3、Cookie有效期限未到时,Cookie能使用户在不键入密码和用户名的情况下进入曾经浏览过的一些站点
4、Cookie能帮助站点统计用户个人资料以实现各种各样的个性化服务

  
  在JSP中,我们也可以使用Cookie,来编写一些功能强大的应用程序。

  下面,我想介绍一下如何用JSP创建和处理Cookie。     

二.如何创建Cookie

  说了这么多,大家一定很想知道JSP是如何创建cookie了。JSP是使用如下的语法格式来创建cookie的:

  Cookie cookie_name =new Cookie("Parameter","Value");

  例如:Cookie newCookie =new Cookie("username","waynezheng"); response.addCookie(newCookie);

  解释:JSP是调用Cookie对象相应的构造函数Cookie(name,value)用合适的名字和值来创建Cookie,然后 Cookie可以通过HttpServletResponse的addCookie方法加入到Set-Cookie应答头,本例中Cookie对象有两个字符串参数:username,waynezheng。注意,名字和值都不能包含空白字符以及下列字符: @ : ;? , " / [ ] ( ) =
  处理Cookie的属性

  看到这里,有的朋友又要问了:我光知道如何创建Cookie有什么用呀?是呀,光知道如何创建Cookie而不知道怎么使用是不够的。在JSP中,程序是通过cookie.setXXX设置各种属性,用cookie.getXXX读出cookie的属性,现把Cookie的主要属性,及其方法列于下,供大家参考:

类型 方法名 方法解释
String getComment() 返回cookie中注释,如果没有注释的话将返回空值.
String  getDomain() 返回cookie中Cookie适用的域名. 使用getDomain() 方法可以指示浏览器把Cookie返回给同 一域内的其他服务器,而通常Cookie只返回给与发送它的服务器名字完全相同的服务器。注意域名必须以点开始(例如.yesky.com) 
int  getMaxAge()  返回Cookie过期之前的最大时间,以秒计算。 
String getName()  返回Cookie的名字。名字和值是我们始终关心的两个部分,笔者会在后面详细介绍 getName/setName。 
String getPath() 返回Cookie适用的路径。如果不指定路径,Cookie将返回给当前页面所在目录及其子目录下 的所有页面。
boolean getSecure() 如果浏览器通过安全协议发送cookies将返回true值,如果浏览器使用标准协议则返回false值。
String  getValue() 返回Cookie的值。笔者也将在后面详细介绍getValue/setValue。 
int getVersion()  返回Cookie所遵从的协议版本。 
void setComment(String purpose) 设置cookie中注释。
void setDomain(String pattern) 设置cookie中Cookie适用的域名
void setMaxAge(int expiry)  以秒计算,设置Cookie过期时间。
void setPath(String uri) 指定Cookie适用的路径。 
void  setSecure(boolean flag) 指出浏览器使用的安全协议,例如HTTPS或SSL。 
void setValue(String newValue) cookie创建后设置一个新的值。 
void setVersion(int v) 设置Cookie所遵从的协议版本。    
读取客户端的Cookie

  在Cookie发送到客户端前,先要创建一个Cookie,然后用addCookie方法发送一个HTTP Header。 JSP将调用request.getCookies()从客户端读入Cookie,getCookies()方法返回一个HTTP请求头中的内容对应的Cookie对象数组。 你只需要用循环访问该数组的各个元素,调用getName方法检查各个Cookie的名字,直至找到目标Cookie,然后对该Cookie调用getValue方法取得与指定名字关联的值 。

例如

<%
 String userName=request.getParameter("username");//从提交的HTML表单中获取,用户名
 Cookie theUsername=new Cookie("username",userName);//以"username",userName值/对创建一个Cookie
 response.addCookie(theUsername);
%>
..............
<%
 Cookie myCookie[]=request.getCookies();//创建一个Cookie对象数组
 for(int n=0;n=cookie.length-1;i++);//设立一个循环,来访问Cookie对象数组的每一个元素
 Cookie newCookie= myCookie[n];
 if(newCookie.getName().equals("username")); //判断元素的值是否为username中的值
  {%>
   你好,<%=newCookie.getValue()%>!//如果找到后,向他问好
  <%}
%>

  设置Cookie的存在时间,及删除Cookie 在JSP中,使用setMaxAge(int expiry)方法来设置Cookie的存在时间,参数expiry应是一个整数。正值表示cookie将在这么多秒以后失效。 注意这个值是cookie将要存在的最大时间,而不是cookie现在的存在时间。 负值表示当浏览器关闭时,Cookie将会被删除。零值则是要删除该Cookie。 如:   

<%
 Cookie deleteNewCookie=new Cookie("newcookie",null);
 deleteNewCookie.setMaxAge(0);
 deleteNewCookie.setPath("/");
 response.addCookie(deleteNewCookie);
%>   

转载于:https://www.cnblogs.com/Fskjb/archive/2010/03/20/1690625.html

Cookie简介及JSP处理Cookie的方法(转)相关推荐

  1. Cookie简介及JSP处理Cookie的方法

    Cookie简介及JSP处理Cookie的方法 一.什么是cookies? 大家都知道,浏览器与WEB服务器之间是使用HTTP协议进行通信的,当某个用户发出页面请求时,WEB服务器只是简单的进行响 应 ...

  2. Cookie和Session-学习笔记02【Cookie案例、JSP改造Cookie案例】

    Java后端 学习路线 笔记汇总表[黑马程序员] Cookie和Session-学习笔记01[Cookie_快速入门.Cookie_细节] Cookie和Session-学习笔记02[Cookie案例 ...

  3. Jsp和Javascript读写cookie,cookie的path设置,jsp解码cookie值

    cookie的基础知识就不介绍了,自己去百度. 一.jsp读写cookie jsp写cookie的代码如下: Cookie cookie1 = new Cookie("historyCity ...

  4. Jsp实现Cookie保存用户名和密码(包含:什么是Cookie,Cookie带来的好处,Cookie的主要方法)

    生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4096807.html [正文] 本文主要内容: ...

  5. Java-Web JSP、Cookie和Session域对象

    一.JSP入门 1.什么是JSP JSP(Java Server Pages)是JavaWeb服务器端的动态资源.它与html页面的作用是相同的,显示数据和获取数据. 2.JSP的组成 JSP = h ...

  6. jsp 通过cookie 记住用户名

    2019独角兽企业重金招聘Python工程师标准>>> jsp 通过cookie 记住用户名 博客分类: Java Web 记住用户名记住密码remember mecookie会话 ...

  7. Java Web应用(JSP/Session/Cookie)

    JSP JSP本质上就是一个Servlet,JSP主要负责与用户交互,将最终的界面呈现用户,HTML+JS+Java的混合文件.-->前后端不分离 原理:当服务器接收到后缀.jsp文件请求时,将 ...

  8. JSP设置Cookie

    1.描述:通过JSP设置Cookie 2.原理:通过response对象设置cookie,然后通过request对象取得cookie 3.代码: <%@ page language=" ...

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

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

最新文章

  1. 如何快速安全的插入千万条数据?
  2. Form表单提交按钮图片IE6下背景透明(js提交)
  3. 从一年关店千家到营利双增,都市丽人做对了什么?
  4. JPA规范:一对多、一对一、多对多的双向关联与级联操作以及JPA联合主键
  5. hiho一下 第四周 Hihocoder #1036 : Trie图
  6. neo4j java label_Neo4j:在具有相同Label的两个或多个节点之间创建关系
  7. 【Jmeter篇】后置处理器之边界提取器
  8. JDK 18 / Java 18 GA 发布
  9. pcie usb3.0 驱动 for linux_微软WSL——Linux桌面版未来之光
  10. python assertion failed_PyCharm报错与解决方法一览
  11. Don’t Worry.Be Scruffy.
  12. 容器技术Docker K8s 12 容器服务Kubernetes版ACK详解-使用镜像快速创建无状态应用
  13. cocos2d-x 2.2 CocoStudio动画和界面编辑器按钮控制以及场景编辑器使用
  14. python股票交易接口是什么_python 股票交易接口【怎样用 Python 写一个股票自动交易的程序】...
  15. JavaScript Date相关练习
  16. python爬取微信运动_如何利用Python爬取微信运动中各个好友的运动信息
  17. cocos creator2.3.5休闲游戏英文版(连连看)源码H5+安卓+IOS三端源码
  18. android圆角glide,Glide加载圆角图片的方法
  19. 操作系统中的管程是什么概念呢?
  20. php通过邮箱找回密码,PHP邮件验证找回密码

热门文章

  1. http://wenku.baidu.com/view/63e7b8270066f5335a812142.html
  2. 最佳实践系列:前端代码标准和最佳实践
  3. ARX中的Purge
  4. Sql注入式攻击和一些防范技巧
  5. 浅谈 PodDisruptionBudgets
  6. python第五章课后题答案超星_MOOC网课章节答案_Python 语言程序设计见面课测试答案...
  7. C++_标准模板库STL概念介绍5-其他库与总结
  8. 微服务网关Kong 1.0正式发布!提供100+项功能
  9. 《JavaScript面向对象精要》——第1章 原始类型和引用类型1.1 什么是类型
  10. PCL、XPS转换成PDF的控件activePDF Meridian​