- 浏览: 241947 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
sweed0:
为何每一段代码都重复一次呢?
spring注解实例二 -
Gary_Huangpf:
- - 插件报错啊
Ext前台分页 -
ddvk2007:
版主 我想請問你所說的mapreduce是hadoop的還是g ...
MapReduce中的Shuffle和Sort分析 -
人可木:
好问章,楼主写的相当详细。。。多谢。。。
findbugs插件的安装与应用 -
hautbbs:
按照博主的方法启动调试出现jvm terminated.Ex ...
10分钟学会使用MyEclipse断点调试js
一.什么是cookies?
大家都知道,浏览器与WEB服务器之间是使用HTTP协议进行通信的,当某个用户发出页面请求时,WEB服务器只是简单的进行响应,然后就关闭与该用户的连接。 因此当一个请求发送到WEB服务器时,无论其是否是第一次来访,服务器都会把它当作第一次来对待,这样的不好之处可想而知。为了弥补这个缺陷,Netscape开发出了cookie这个有效的工具来保存某个用户的识别信息,因此人们昵称为“小甜饼”。cookies是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段:Netscape Navigator使用一个名为cookies.txt本地文件保存从所有站点接收的Cookie信息;而IE浏览器把Cookie信息保存在类似于C:\windows\cookies的目录下。当用户再次访问某个站点时,服务端将要求浏览器查找并返回先前发送的Cookie信息,来识别这个用户。
具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。 同时我们也看到,由于才服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上还有其他选择。 如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。 如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。 存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存的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);
%>
发表评论
-
解析网页利器组合(正则、jsoup、beanshell、dozer)资源
2012-05-31 16:09 1426由于项目需要使用java正则、jsoup、dozer、bean ... -
Java正则表达式(二)
2012-05-31 15:47 834Matcher类: 使用Matcher类,最重要的 ... -
Java正则表达式(一)
2012-05-31 15:46 815正则表达式在处理文本方面用处非常大,最早像在Perl和awk语 ... -
Java正则表达式详解
2012-05-31 15:45 804如果你曾经用过Perl或 ... -
理解String与String.intern()
2012-01-05 15:44 8061. 首先String不 ... -
StringUtils工具类的常用方法
2011-11-25 15:24 908StringUtils 方法的操作对象是 java.lan ... -
主题:深入分析 Java 中的中文编码问题
2011-11-11 09:06 963几种常见的编码格式 ... -
Java中的乱码问题
2011-09-01 09:35 1071Java中乱码问题很常见,原因也多种多样,这里做一个总结, ... -
java反射机制详解 及 Method.invoke解释
2011-08-26 11:40 1643JAVA反射机制是在运行状态中,对于任意一个类,都能够 ... -
java编程中'为了性能'一些尽量做到的地方
2011-08-25 11:42 840最近的机器内存又爆满了,出了新增机器内存外,还应该好好re ... -
利用java反射原理写了一个简单赋值和取值通用类
2011-08-22 09:50 2420由于项目的实际需要,所以利用java反射原理写了一个简单给be ... -
Java实现给图片添加水印
2011-08-22 09:41 2064周末在家上围脖,看到sina围脖上图片都有水印,想到Jav ... -
java获取当前类的绝对路径
2011-08-03 10:41 1160在jsp和class文件中调用的相对路径不同。在jsp里, ... -
深入浅出URL编码
2011-08-03 10:30 758深入浅出URL编码 版权声明:如有转载请求,请注明出 ... -
URLConnection的连接、超时、关闭用法总结
2011-08-03 10:25 1284Java中可以使用HttpURLConnection来 ... -
Apache Rewrite实现URL的跳转和域名跳转
2011-07-28 11:31 1064Rewirte主要的功能就是实现URL的跳转,它的正则表达式是 ... -
文件、流总结
2011-07-27 09:31 13791、File类:File类位于java ... -
java对cookie的操作(转)
2011-07-18 15:56 962java对cookie的操作比较简单,主要介绍下建立coo ... -
java泛型
2011-07-18 15:42 802在Java SE1.5中,增加了一个新的特性:泛型(日本语 ... -
j2ee学习笔记——初试ssh之泛型通用dao(转)
2011-07-18 15:39 883在做项目的时候每次都为每个POJO实体写一个对应的DAO很 ...
相关推荐
Cookie简介及JSP处理Cookie的方法.doc
Cookie简介
JSP处理Cookie的方法详解.txt
jsp操作cookie实例,jsp操作cookie实例,jsp操作cookie实例,jsp操作cookie实例
jsp中常用的cookie操作,如写入cookie、读取cookie等。
本文实例为大家分享了jsp cookie+session实现简易自动登录的具体代码,供大家参考,具体内容如下 关闭浏览器只会使存储在客户端浏览器内存中的session cookie失效,不会使服务器端的session对象失效。 如果设置了...
如题,jsp Cookie购物车。 代码示范性的演示了cookie中存储商品信息的购物车.这次没有书写详细的使用讲解,并且没有注意编码规范,以及mvc之类的问题,网友下载时不要做过多评论。。。 谢谢 建议在 Firefox下用 ...
jsp的Cookie讲解与例子,老师上课用的例子,值得参考!
用jsp实现简单的cookie功能,登陆页面输入任意信息,在输出页面输出信息,若已输入则用cookie记录,直接跳转输出页面
纯JSP演示Cookie自动登录(完整工程。主要实现勾选自动登录后, 哪怕服务器重启后session丢失,靠客户端COOKIE仍然正常登录并刷新COOKIE。点退出登录后COOKIE失效。 现为WEB,可改造为提供android 和ios下的...
通过操作cookie来实现用户自动登录过程,使用的是jsp页面。由于是测试,所以用户信息是写死的,用户名admin密码123456,欢迎一起探讨和学习!
jsp之Cookie自动登录类似于QQ自动登录一样,有助于用户在下载运行的时候更加方便,简洁
我的首页:https://xiaopengwei.com 本资源内容 jsp-cookie-session-crud 使用 JSP 实现cookie session验证及增删改查
jsp与Cookiejsp与Cookiejsp与Cookiejsp与Cookiejsp与Cookiejsp与Cookiejsp与Cookiejsp与Cookiejsp与Cookiejsp与Cookie
jsp cookie实现登录名和密码记录功能的示例
JSP实验内置对象、Cookie及JavaBean实验[参考].pdf
5个jsp源码实例包括:输出,获取表单参数,获取jsp各种参数,cookie,搜索引擎
Jsp利用response.sendRedirect、cookie传参
Cookie&SessionJsp-授课
装Oracle数据库建好users表两个varchar2便可以用