首页 > 常识 > 互联网 > 网站制作 > 常见问题

cookie文件的名字是按什么规则写进去的?

作者:  时间:2016-08-05
描述:这个cookie文件名跟浏览器有关,不同浏览器实现是不同的,你这个是IE下面的 这个文件名只有浏览器再用,每个浏览器都会有默认的一套命名规范的,你无法操作这个命名过程。
比如在我们电脑上有很多这样的cookie文件:

Cookie:administrator@www.taoshuwang.com/ 
Cookie:administrator@freeoz.org/ 
Cookie:administrator@126.com/

它是按什么规则命名这个cookie文件的呢?问题补充:
Cookie:administrator@www.chesi.cn/ 这个cookie后边网址是一个朋友的博客 
我可没有登录,它也能在我电脑上写入cookie吗? 
我没需要加入登录有效期。问题补充:
我现在自己写了一个cookie 
Cookie cookie1=new Cookie("username","mandy");     
cookie.setMaxAge(1*24*60*60);   
response.addCookie(cookie);

这个cookie是在本机上调试的。 
这个cookie文件应该具有的名字是什么?问题补充:
我确实在C:Documents and SettingsAdministratorLocal SettingsTemporary Internet Files 看我我写入一个一个cookie文件 
,我奇怪的是,我写入了俩cookie,这俩cookie竟然都在这个叫:Cookie:administrator@localhost/myfirst/cookie文件里。 
而且,奇怪的是,我读出来的cookie数量竟然是三个,我明明就写入两个cookie啊 这个cookie文件的内容是: 
username          注释: ------------cookie1 
mandyyuan 
localhost/myfirst/ 
1024 
4059366144 
29968486 
3376278912 
29967078 
enpid             注释:-------------------------------cookie2 
39 
localhost/myfirst/ 
1024 
4059366144 
29968486 
3376278912 
29967078 
*

问题补充:
我是问,我明明写入俩cookie,在C:Documents and SettingsAdministratorLocal 
SettingsTemporary Internet 
Files下,也就看到一个名叫:Cookie:administrator@localhost/myfirst/ 
cookie文件,可为什么读cookie的时候,读cookie个数为3个,而不是2个呢?
问题补充:
cookie文件中的cookie对象个数的问题明白。

我在action中写了俩cookie对象,在action转到的jsp页面上,读cookie用out.println()打印cookie的名字,当转到jsp页面上的时候打印出来的名字是和值是:

JSESSIONID==DBF24D3896E866C8E54F8B4B5E00DD1B 
我想这个就是你说的浏览器写入的那个cookie。 
可是,我自己写入的那俩cookie没有打印出名字和值来,必须,我刷新一下这个 
http://localhost:8080/myfirst/enpaction.do?actionType=enplogin   
才能打印出,我自己写入的2个cookie的名字和值。 
username==mandyyuan 
enpid==39 
比较奇怪!

这个问题也很简单啊,因为你的request中只是包含浏览器那个默认的,你在Action中写的两个Cookie还在response中睡觉呢,只有response发送到客户端后才会再次被浏览器再下一个request中添加上的,所以你刷新的时候浏览器发送给服务器的request中才会包含你那两个Cookie

  Cookie跨域操作
  请教httpsession是如何实现的?
  HttpSession的实现和cookie机制
  请问有没有jsessionid存放在浏览器内存中这样的说法啊
  我发现我解决不了技术难题。我都觉得我不该做技术了。

回答 这个cookie文件名跟浏览器有关,不同浏览器实现是不同的,你这个是IE下面的 这个文件名只有浏览器再用,每个浏览器都会有默认的一套命名规范的,你无法操作这个命名过程

(1)Cookie是在本地Cookie文件中保存一些信息,Cookie文件中保存的是键值对(key-value)。Cookie文件存放于你本地计算机系统盘的Document  and   Settings/用户名   目录下。如果你访问的网站的名称为www.abc.com,那么一般来说,Cookie文件的名称为   
用户名@abc.com,你可以自己打开文件夹看一看。你提到的getName获得的是保存在Cookie文件中某一个Cookie的key值。   
  
(2)ServletContext一般在servlet中使用,它的范围和JSP隐含变量application的范围是相同的,所有网站客户共享同一个ServletContext。 
  
(3)request.getParameter()是错误的!getParameter()方法用于获取页面之间传递的参数,要想获取scope(page,request,session,application)范围的对象值,请使用getAttribute()方法。

引用
我可没有登录,它也能在我电脑上写入cookie吗?

当然了,写入cookie不需要登录,我从来都没有登录到淘宝啊,当当网啊,但是每次它都能告诉我我都浏览过哪些书,哪些商品,只要服务器端给你写cookie,就一定会产生这个文件的

这个简单,直接把你的浏览器缓存清楚一下,然后运行下程序看看不就知道了吗! 
C:Documents and SettingsAdministratorLocal SettingsTemporary Internet Files 
把这个隐藏的文件夹中内容清空,然后运行一下程序,看看这个多了啥
呵呵,每一个服务器端的session对应一个cookie,你每重启一次服务器或打开一个新的浏览器都会有一个新的session,所以也会写入一个新的cookie文件

这个原因很简单,你在程序中不管你写入几个Cookie(通过API),都会存到一个文件中去,这个文件中还包含一个浏览器自动写入的Cookie,就算你程序中没有往客户端写入cookie,浏览器也会写入一个,浏览器每次发送请求的时候都会从这个里面拿到sessionId放到你的request中的;一个Cookie文件并不表示你程序中只能通过API获取到一个Cookie对象,文件中有多个,永远都是你自己通过API写入的+1,多出来的一个就是浏览器写入的sessionId

客户端和服务器端的用户对应都是通过sessionId进行的,默认浏览器会把它当作一个Cookie放到Cookie文件中,这些都是默认行为,当然,sessionId还可以通过URL重写机制完成,不过那个需要程序中自己弄,浏览器就默认把sessionId存到cookie文件中

你从Action-->jsp页面还都是在服务器端折腾,你的request对象中并没有你从Action中添加的那两个。

从手机浏览器访问《生活宝典》

站内搜索
  • COOKIE后台登录成功 立即显示 您未登录?
  • JavaScript静态页面值传递Cookie
  • 根据 cookie 文件能够找回密码
  • 浏览网页时保留在 cookie 里的密码安全吗?
  • 微商帮
    世界网站大全
    中国科研团队:大象的长鼻子是如何越变越长了
    中国科研团队:大象的长
    自己是否能够像自己想的那样做成一件事,身旁人的判断会比自己准确
    自己是否能够像自己想
    火宫殿:吃喝玩乐看,烧香拜神佛,红火的庙会经济
    火宫殿:吃喝玩乐看,烧香
    眼见为实也不为实,更须谨慎看到的并非全貌
    眼见为实也不为实,更须