Jsp&Servlet之Cookie

简介:
声明:此篇文章为我从网上下载的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 访问到,其它路径不能访问到。









本文转自 yzzh9 51CTO博客,原文链接:http://blog.51cto.com/java999/163701,如需转载请自行联系原作者
目录
相关文章
|
Java 容器
【学习笔记】Jsp与Servlet技术
【学习笔记】Jsp与Servlet技术
302 0
|
缓存 Java Spring
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
文章比较了在Servlet和Spring Boot中获取Cookie、Session和Header的方法,并提供了相应的代码实例,展示了两种方式在实际应用中的异同。
1477 3
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
|
SQL Java 数据库
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
该博客文章介绍了在JSP应用中使用Servlet查询SQL Server数据库的表信息,并通过JavaBean封装图书信息,将查询结果展示在Web页面上的方法。
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
Java服务器端技术:Servlet与JSP的集成与扩展
209 3
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
基于Servlet和JSP的Java Web应用开发指南
468 1
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
213 1
|
前端开发 安全 Java
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
167 1
|
供应链 前端开发 Java
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
这篇文章通过一个服装库存管理系统的实例,展示了在Spring Boot项目中使用Ajax、JSON、layui、MVC架构和iframe等技术,涵盖了注册登录、权限管理、用户管理、库存管理等功能,并提供了系统运行环境和技术要求的详细说明。
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
|
存储 搜索推荐 UED
探索研究Servlet Cookie 处理
【9月更文挑战第25天】
193 0
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
【6月更文挑战第23天】构建Java Web应用,Servlet与JSP携手打造在线图书管理系统,涵盖需求分析、设计、编码到测试。通过实例展示了Servlet如何处理用户登录(如`LoginServlet`),JSP负责页面展示(如`login.jsp`和`bookList.jsp`)。应用基于MySQL数据库,包含用户和图书表。登录失败显示错误信息,成功后展示图书列表。部署到Tomcat服务器测试功能。此基础教程为深入Java Web开发奠定了基础。
340 10