jsp实验4.(3)cookie的使用

来源:互联网 发布:jquery ajax 返回数据 编辑:程序博客网 时间:2024/06/15 10:01

3、用一个程序(mySetCookie.jsp)在五个路径/jsp/temp//jsp/temp/2015//jsp/temp/2016//jsp/temp/2016/main//jsp/temp/2016/other/(只是设置cookie的路径)下分别设置名字为x0~x4cookie,并把路径名作为cookie值,最大保存时间都是120。在这些路径下都放置一个程序myGetCookie.jsp,它可以读出当前路径下可以取到的所有cookie。最后,再做一个myShowCookie.jsp可以链接mySetCookie.jsp和所有myGetCookie.jsp

目录截图如下:


mySetCookie代码如下:

<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="GB2312" contentType="text/html;charset=GB2312"%><%Cookie cookie0 = new Cookie("x0","/jsp/temp/");cookie0.setMaxAge(120);// 设置保留时间 120秒。// 设置为负值表示只保存在内存, 关闭浏览器则消失。// 设置为0表示要删除该cookie。cookie0.setPath("/jsp_4/temp/"); //设置路径为根目录response.addCookie(cookie0);%><%Cookie cookie1 = new Cookie("x1","/jsp/temp/2015/");cookie1.setMaxAge(120);// 设置保留时间 120秒。cookie1.setPath("/jsp_4/temp/2015/"); //设置路径为根目录response.addCookie(cookie1);%><%Cookie cookie2 = new Cookie("x2","/jsp/temp/2016/");cookie2.setMaxAge(120);// 设置保留时间 120秒。cookie2.setPath("/jsp_4/temp/2016/"); //设置路径为根目录response.addCookie(cookie2);%><%Cookie cookie3 = new Cookie("x3","/jsp/temp/2016/main/");cookie3.setMaxAge(120);// 设置保留时间 120秒。cookie3.setPath("/jsp_4/temp/2016/main/"); //设置路径为根目录response.addCookie(cookie3);%><%Cookie cookie4 = new Cookie("x4","/jsp/temp/2016/other/");cookie4.setMaxAge(120);// 设置保留时间 120秒。cookie4.setPath("/jsp_4/temp/2016/other/"); //设置路径为根目录response.addCookie(cookie4);%><!DOCTYPE  html><html  lang="zh-cn"><head><title>setCookie</title></head><body>  <h1>setCookie</h1></body></html>
myShowCookie.jsp代码如下:

<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="GB2312" contentType="text/html;charset=GB2312"%><!DOCTYPE  html><html  lang="zh-cn"><head><title>myShowCookie</title></head><body>  <h1>myShowCookie</h1>  <a href = "mySetCookie.jsp">/jsp_4/mySetCookie.jsp</a><br><a href = "temp/myGetCookie.jsp">/jsp_4/temp/myGetCookie.jsp</a><br><a href = "temp/2015/myGetCookie.jsp">/jsp_4/temp/2015/myGetCookie.jsp</a><br><a href = "temp/2016/myGetCookie.jsp">/jsp_4/temp/2016/myGetCookie.jsp</a><br><a href = "temp/2016/main/myGetCookie.jsp">/jsp_4/temp/2016/main/myGetCookie.jsp</a><br><a href = "temp/2016/other/myGetCookie.jsp">/jsp_4/temp/2016/other/myGetCookie.jsp</a><br></body></html>
myGetCookie.jsp代码如下:

<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="GB2312" contentType="text/html;charset=GB2312"%><!DOCTYPE  html><html  lang="zh-cn"><head><title>getCookie</title></head><body>  <h1>getCookie</h1>  <%Cookie[] cookies = request.getCookies();for(Cookie cookie : cookies){String name = cookie.getName();String value = cookie.getValue();out.write("<p>" + name + ":" + value);}  %></body></html>
运行其中一个目录下的myGetCookie可以看到:


每个目录下的得到的cookie的jsessionID都是一样的。

原因可以从下图看出:


服务器上的session变量是用一个jsessionID来关联的。

2)运行mySetCookie.jsp,然后关闭所有浏览器,过了一分钟后再打开myGetCookie.jsp,会发现什么情况?

jSessionId会改变。

原因:session的生命周期和浏览器有关,浏览器关闭session将被删除。但是如果你长时间不关闭浏览器,又不访问该网站,session的生命周期也会结束,一般是三十分钟。

3)运行mySetCookie.jsp,然后关闭所有浏览器,过三分钟再打开所有myGetCookie.jsp,会出现什么情况?

之前设置的Cookie对象消失了,因为过了cookie的过期时间120

4)运行mySetCookie.jsp,不关闭所有浏览器,过三分钟再打开所有myGetCookie.jsp,会出现什么情况?

之前设置的Cookie对象消失了,因为过了cookie的过期时间120秒。过期时间到了,无论是否关闭浏览器,cookie对象都会失效。



0 0
原创粉丝点击