笑着生活  
思想大于技术...... 惟仁者为能以大事小,惟智者为能以小事大: Java之路——专注,研究,思考,总结
日历
<2009年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011
统计
  • 随笔 - 46
  • 文章 - 4
  • 评论 - 4
  • 引用 - 0

导航

留言簿(1)

随笔分类

随笔档案

文章分类

文章档案

相册

收藏夹

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 
声明:此篇文章为我从网上下载的doc文档里面的一部分内容,具体作者不知。
 
 
Cookie 简介: Cookie 是服务器保存在客户端上的一组数据。例如,一些登陆网站时会提示是否保存密码,或是选择登陆有效期(浏览器进程、一天、一个月等等),这些都可以使用 Cookie 来实现。
 
Cookie
javax.servlet.http.Cookie
构造方法
Cookie(String name,String value)
服务器客户端设置 cookie
addCookie(Cookie cookie)
response 调用, 可反复使用该方法设置多个 Cookie
服务器客户端取回之前保留在客户端上的 cookie
Cookie[] getCookies()
request 调用
设置 cookie 在本地留存的时间
setMaxAge (int expiry)
cookie 对象调用
 
l 示例:设置 Cookie
cookie01.jsp à 服务器响应客户的请求时,设置 cookie 到客户端:
² 先准备好 cookie 对象
然后利用 response.addCookie(Cookie cookie) 进行设置
<%    
          //构造Cookie对象,构造方法:Cookie(String name,String value)
          Cookie c1= new Cookie("name","Jerry");
          Cookie c2= new Cookie("password","1234");
          Cookie c3= new Cookie("access_time",new Date().toString());
            
          //将Cookie设置给客户端
          //服务器向客户端传递数据,使用response对象
          //方法:reponse.addCookie(Cookie cookie)
            
          response.addCookie(c1);
          response.addCookie(c2);
          response.addCookie(c3);
%>
 
【注】浏览器窗口中看不到 Cookie 的信息
 
Cookie02.jsp à 如果需要,服务器可以从客户端取回 cookie ,这是从客户端传数据到服务器,故要使用 request 的方法: Cookie[] request.getCookies()
² 利用 request.getCookies() 取得 cookie 数组
遍历数组,取得其中每一个 cookie
<%
          //Cookie[] request.getCookies()方法
          Cookie[] cs = request.getCookies();
            
          for(int i=0;i<cs.length;i++){            
            Cookie tmp = cs[i];    
            //每一个Cookie由 name--value构成
            //可以使用 String getName() 和 String getValue() 获得各成分的值
                    
        %>    
            
          <h1> <%= tmp.getName() %> <%=tmp.getValue() %> </h1>
        <%    
          }        
            
          //JSESSIONID ACCE027387AADBD63525E4446F1DFD83是服务器自动设置的
          //代表这个客户端在服务器上的一个唯一编号
%>
 
【注】:每一个 cookie 都是由 name – value 构成(由构造方法可知), Cookie 类提供了如下 2 个方法获取 cookie name value 的值:
String getName()
String getValue()
 
l 设置 Cookie 的保存时间
² 默认情况 下: cookie 是仅在浏览器进程中有效。
(在一个窗口中先运行 cookie01.jsp 实现设置 cookie ,然后仍然在这个窗口中运行 cookie02.jsp 取回 cookie 并显示 是可以实现。但,如果在另外的浏览器窗口中直接运行 cookie02.jsp ,则无法再取回之前设置的 cookie 了)
 
² 如果希望 cookie 能在本地留存一段时间,使得在一段时间之内都可以取回 cookie ,则可以利用 Cookie 类的 setMaxAge(int expiry) 方法, expiry 表多少秒后 cookie 过期。
 
修改 cookie01.jsp cookie03.jsp ,增加 cookie 留存时间的设置,仍然使用 cookie02.jsp 取回 cookie
<h1>利用Cookie类的setMaxAge(int expiry)可是设置cookie在本地计算机上留存一段时间,单位是秒</h1>

    <%
              //构造Cookie对象,构造方法:Cookie(String name,String value)
              Cookie c1= new Cookie("name","Jerry");
              Cookie c2=new Cookie("password","1234");
              Cookie c3=new Cookie("access_time",new Date().toString());
                
              //设置留存时间30秒
              c1.setMaxAge(30);
              c2.setMaxAge(30);
              c3.setMaxAge(30);
                
              //将Cookie设置给客户端
              //服务器向客户端传递数据,使用response对象
              //方法:reponse.addCookie(Cookie cookie)
                
              response.addCookie(c1);
              response.addCookie(c2);
              response.addCookie(c3);
    %>
 
则运行 cookie03.jsp 完成设置 cookie 后,即使另开一个浏览器窗口,直接运行 cookie02.jsp 仍然可以取回 cookie 但时限到了之后 cookie 还是会失效。
但是,服务器自动设置的 JSESSIONID 还在。
 
 
我的备注:一个 servlet/jsp 设置的路径能够被同一路径或子路径下的 servlet/jsp 访问到,其它路径不能访问到。

posted on 2009-06-09 13:41 999 阅读(710) 评论(0)  编辑  收藏 所属分类: JSP

只有注册用户登录后才能发表评论。


网站导航:
 
 
Copyright © 999 Powered by: 博客园 模板提供:沪江博客