Cookie简介及JSP处理Cookie的方法

一.什么是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的主要属性,及其方法列

于下,供大家参考:

读取客户端的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);
%>

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

  1. 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. python 贴吧自动回复机-python_库学习_02_微信自动回复机器人
  2. 多重判定系数怎么求_关于多重共线性
  3. HDU 3488 KM
  4. 浅析DDD(领域驱动设计)
  5. go 是常驻内存吗_关于常驻内存RES,pprof,heap,threadcreate的疑问
  6. 接口协作--apipost接口协作工具
  7. html表单输入价格,在HTML中使用表格来计算总价格
  8. listen函数的第二个参数_signal(SIGPIPE,?SIG_IGN)listen函数中backlog参数分析
  9. ODBC和JDBC是做什么的?为初学者理解概念问题
  10. bzoj 3631: [JLOI2014]松鼠的新家(LCA+树上差分)
  11. Clojure 学习入门(7)- 连接mysql
  12. C++ 求解一整数划分问题
  13. QQ截图出现闪退,无法截图(亲测有效)
  14. §6.5 分离性公理与子空间,(有限)积空间和商空间
  15. 程序人生 - 国有划拨和国有出让的区别 国有划拨参照什么标准进行
  16. Matlab简单爬虫-寻宝天行诛仙在售角色信息
  17. 科比球衣退役仪式 | 科比演讲
  18. 【LaTeX PPT模板集】Beamer主题与配色使用教程
  19. 全新整理:微软、谷歌、百度等公司经典面试100题[第1-60题]
  20. 数字藏品以虚强实,赋能实体经济发展

热门文章

  1. 信息学奥赛一本通(1095:数1的个数)
  2. 分治 —— 01 分数规划
  3. 信息学奥赛C++语言: 绝对素数
  4. 信息学奥赛一本通C++语言——1054:三角形判断
  5. 42 CO配置-控制-产品成本控制-成本对象控制-实际成本核算/物料分类帐-激活实际成本核算
  6. python求函数一二阶导_python:利用多种方式解微分方程(以二阶微分系统零状态响应为例)...
  7. php json 压缩传输,php json数据使用gzip压缩输出
  8. 腾讯云直播sdk_官方推荐 | 2分钟带你认识腾讯云直播 CSS
  9. tensorflow saver_机器学习入门(6):Tensorflow项目Mnist手写数字识别-分析详解
  10. AttributeError: ‘str‘ object has no attribute ‘copy