cookie,有几点不懂

来源:百度知道 编辑:UC知道 时间:2024/05/31 06:02:32
1:一个cookie的getPath()方法得到的是谁的路径??(假定没用setPath()做改变),是不是添加cookie的servlet所在的路径??
2:有这样的一段解释:cookie可以重名,只要path不同就可以;
一个cookie在Path的子目录中也是可见的;
那么,我要是建了两个cookie,同名,且path是父子关系,这样的话我在子目录下的一个servlet中用request方法取得的cookie是哪一个cookie呢??
3 :如果我在同一个servlet的不同实例添加了同名cookie,假设cooike的有效期很长,那么后来的一个会覆盖前面的一个,还是别的情况??
4:当我在cookie存在了一段时间后,凋用setMaxAge(),设置它的存活时间,请问这个时间是从现在算起,还是从cookie被创建算起??
5:请问如何将一个cookie在它的最大存活期前把它干掉??(比如我用一个cookie来存放自动登陆的用户名和密码,现在我又要以别的用户自动登录,我想只是改变cookie的value是不行的,因为它已经存活了一段时间了,所以保存时间不准了)
调用setMaxAge(0);可以吗??
6:不知大家又没这样的经历:在本论坛上,要是连续三次注销、登陆论坛后,用户显示的信息是前一个登陆ID信息??这是由什么原因造成的???

我是新手,大家帮忙指点指点
还想问一个问题:有些页面怎样才能保存到本地机,另存为好象不管用IE打不开

1:如果你没有调用Cookie的setPath()方法来设置Cookie的路径,那么调用getPath()方法返回null。Cookie文件将保存在C:\Documents and Settings\%username%\Local Settings\Temporary Internet Files\路径下。
2:Cookie是浏览器保存到客户端的小文件,这跟用户访问的JSP和servlet在服务器端的位置无关。request对象没有getCookie()方法,只有getCookies()方法,返回的是Cookie[],你需要用循环遍例所有的Cookie,并通过getName()于getPath()方法来过滤你需要的cookie。
3:一定会覆盖前一个。
4:从现在算起。
5:你不能删除cookie,只能覆盖它,或是设置cookie的有效时间为0。自动登陆,也就是说当你打开某个网站的首页时,它会自动查看你的cookie中保存的用户名和密码,来完成登陆操作。那么这个网站也不会在你的客户机上保存多个用于自动登陆的cookie。它只能有一个。而cookie的内容是后面的覆盖前面的。所以你无需担心。
6:问题的关键不在注销,而是登陆。在注销之前一定要登陆(也许是自动登陆),不然你无法注销。有可能论坛在每次用户登陆时都会向客户机保存cookie。每次登陆都会覆盖前一次的cookie内容。