第六章:Servlet——HTTP的状态处理:cookie简介(1)

阅读:355 2019-03-19 14:39:39 来源:开源中国

一。基本意义

cookie指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。cookie是由服务器端生成,发送给user-agent(一般是浏览器),浏览器会将cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该cookie给服务器(前提是浏览器设置为启用cookie)。cookie名称和值可以由服务器端开发自己定义,对于jsp而言也可以直接写入jsessionid,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等,服务器可以设置或读取cookies中包含的信息,借此维护用户跟服务器会话中的状态。

cookies就是服务器暂存放在你的电脑里的资料(.txt格式的文本文件),好让服务器用来辨认你的计算机。当你在浏览网站的时候,web服务器会先送一小小资料放在你的计算机上,cookies会帮你在网站上所打的文字或是一些选择都记录下来。当下次你再访问同一个网站,web服务器会先看看有没有它上次留下的cookies资料,有的话,就会依据cookie里的内容来判断使用者,送出特定的网页内容给你。

二。主要用途

1.cookies最典型的应用是判定注册用户是否已经登录过网站。用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续。

2.另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入cookies,以便在最后付款时提取信息。

网站可以利用cookies跟踪统计用户访问该网站的习惯,比如什么时间访问,访问了哪些页面,在每个网页的停留时间等。目前cookies最广泛的是记录用户登录信息,这样下次访问时可以不需要输入自己的用户名、密码

三。在jsp中

jsp中使用cookie完成状态管理:

cookie也算http消息报头的一部分,它的作用有以下方面:

一记录访客的某些信息。例如可以利用cookie记录用户光临的网页次数,或者访客曾经输入过的信息。某些网站可以自动记录用户上次登录的用户名,用的就是cookie。

二页面之间传递变量。浏览器并不会保存当前页面上任何变量的信息,当页面被关闭时,页面上的所有变量信息将随之消失。

使用举例

在jsp中创建简单的cookie:

stringcookiename="visittimes";

cookiecookie=newcookie(cookiename,"1");

setmaxage(10*60);//设置cookie存活期

addcookie(cookie);//将cookie写入客户端

在jsp中处理cookie数据的常用方法:

getdomain();返回cookie的域名.

getmaxage();返回cookie的存活时间

getname();返回cookie的名字

getpath();返回cookie适用的路径

getsecure();如果浏览器通过安全协议发送cookie将返回true值,如果浏览器使用标准协议刚返回false值

getvalue();返回cookie的值

getversion();返回cookie所遵从的协议版本setcomment(stringpurpose);设置cookie的注释

setpath(stringurl);设置cookie的适用路径

setsecure(booleanflag);设置浏览器是否仅仅使用安全协议来发送cookie,例如使用https或ssl

setvalue(stringnewvalue);cookie创建后设置一个新的值

setversion(intv);设置cookie所遵从的协议版本.

四、总结:尚学堂

1:服务器可以向客户端写内容

2:cookie只能是文本内容

3:客户端可以阻止服务器写入

4:服务器网站只能读取自己webapp(网站)写入的东西

5:cookie分为两种

属于窗口/子窗口(放在内存中的)

属于文本(有生命周期的):通过设置cookie的生命周期

6:一个servlet/jsp设置的cookies能够被同一个路径下面或者子路径下面的servlet/jsp读到(路径=url)(路径!=真实文件路径)

⑴http协议的无连接性要求出现一种保存c/s间状态的机制

⑵cookie:保存到客户端的一个文本文件,与特定客户相关

⑶cookie以“名-值”对的形式保存数据

⑷创建cookie:newcookie(name,value)

⑸可以使用cookie的setxx方法来设定一些相应的值

setname(stringname)/getname()

setvalue(stringvalue)/getvalue()

setmaxage(intage)/getmaxage()

利用httpservletresponse的addcookie(cookie)方法将它设置到客户端

利用httpservletrequest的getcookies()方法来读取客户端的所有cookie,返回一个cookie数组

下一篇: adb命令是什么
相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>
推荐商标

{{ v.name }}

{{ v.cls }}类

立即购买 联系客服