JavaWeb开发--cookie用法总结
今天刚刚学过cookie的用法,为了防止忘记,就在这里总结一下。
一、cookie的由来的原因
Http协议是无状态的协议,它不会记录用户与服务器多次交互需要保留或记录的状态信息。cookie 的出现旨在帮助服务器记录浏览器访问状态信息,服务器可以读取访问它的浏览器中的cookie信息,并进行相应操作,例如:用户的自动登陆信息、网上商城的购物车等都由此实现。
二、cookie概念
cookie实际上是web服务器通过浏览器保存在客户端硬盘上的一个文本文件,它只能进行文本信息的保存,内容以键值对(key/value)形式进行保存,类似于"request.setParameter(name,value)"方法的形式。cookie文件可以通过程序进行读写。在java程序中,可以通过javax.servlet.http.Cookie对象来读写访问浏览器的cookie信息,并执行相应操作。
三、cookie的创建
cookie对象在创建构造器时,就要传入相应的key/value:
//创建cookie对象,并传入要存储的字符串以及对应的名称
javax.servlet.http.Cookie cookie=new javax.servlet.http.Cookie("key",value);
注:其中的value的值只允许是字符串,而不能是其他的对象。
常用方法:
//设置有效时间,单位为秒(与之对应的有getter方法)
cookie_username.setMaxAge(60*60*24);
//设置域名(与之对应的有getter方法)
cookie_username.setDomain(String pettern);
//设置提交的路径(与之对应的有getter方法)
cookie_username.setPath(uri);
//保存cookie到客户端浏览器
response.addCookie(cookie);
//获取cookie的名字(与之对应有setter方法)
cookie.getName();
//获取cookie的值(与之对应有setter方法)
cookie.getValue();
四、cookie的读取
cookie的读取是通过request.getCookies()方法进行的,该方法可以读取访问浏览器中的所有cookie,并返回一个Cookie对象的数组。
//读取访问浏览器cookie
javax.servlet.http.Cookie[] cookies=request.getCookies();
javax.servlet.http.Cookie cookie=null;
//判空
if(cookies!=null){
for(int i=0;i<cookies.length;i++){
cookie=cookies[i];
//输出cookie的名字
System.out.println(cookie.getName());
//输出cookie的值
System.out.println(cookie.getValue());
}
}
五、cookie的写入
cookie写入是通过response.addCookie()方法进行的。
//创建cookie对象,并传入要存储的字符串以及对应的名称
javax.servlet.http.Cookie cookie=new javax.servlet.http.Cookie("key",value);
//设置有效时间,单位为秒
cookie_username.setMaxAge(60*60*24);
//保存cookie
response.addCookie(cookie);
六、cookie的删除
删除cookie没有专用的方法,但可以通过设置cookie的有效时间为0,或是将cookie对象的值设为空即可。
七、cookie的修改
//读取Cookie对象数组
javax.servlet.http.Cookie[] cookies=request.getCookies();
javax.servlet.http.Cookie cookie=null;
//遍历cookie数组
for(int i=0;i<cookies.length;i++){
cookie=cookies[i];
//查找符合条件的cookie
if(cookie.getName().equals(condition)){
//设置值
cookie.setValue(value);
//设置有效时间
cookie.setMaxAge(time);
//写入cookie(切记修改之后要记得写入)
response.addCookie(cookie);
}
}
注:
1.cookie的数量和大小有限,不能用来存储大量的数据;
2.cookie的内容中不可出现汉字;
3.cookie的安全性较低,不适合用于保存敏感信息(例如重要的账号和密码);
分享到:
相关推荐
使用getDomain() 方法可以指示浏览器把Cookie返回给同 一域内的其他服务器,而通常Cookie只返回给与发送它的服务器名字完全相同的服务器。注意域名必须以点开始(例如.yesky.com) int getMaxAge() 返回Cookie过期...
java中cookie的使用教程,指导学习cookie。有例子可以学习。
java 操作cookie精选,基础的操作,简单易学
Cookies的处理 作用 ...如果在请求的过程中产生了cookie,如果该请求使用session发起的,则cookie会被自动存储到session中. 案例 爬取雪球网中的新闻资讯数据:https://xueqiu.com/ #获取一个sessi
主要介绍了java使用Cookie判断用户登录情况,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
方法二: 代码如下://判断当前系统是否支持Java AWT Desktop扩展 if(java.awt.Desktop.isDesktopSupported()){ try{ //创建一个URI实例,注意不是URL java.net.URI uri=java.net.URI.create(“//www.j
该文档主要向我们讲解了cookie和seesion的机制以及使用方法
子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。...
在Cookie介绍中 我们了解到Cookie是基于Set Cookie响应头和Cookie请求头工作的 服务器通过response对象的addHeader 方法将cookie发送给浏览器 然后浏览器通过Cookie请求头将cookie再送回服务器
用java进行客户端的applet (小程序)开发的技术已广为使用,而用java进行服务器端的servlet(服务器小程序)开发则尚需揭开其神秘的面纱,本书正是基于这样的目的编写的。全书从java服务器的体系结构、开发工具和...
本文同时给出了通过Java Servlet向用户的硬盘写入和读取Cookie的方法及例程。通过它可以实现网上常见的个性化网页、网上购物篮、密码验证等。 Java Servlet是运行于Web服务器上的Java代码,它可以接受用户请求,...
java为数据结构中的映射定义一个接口java.util.Map,有四个实现类HashMap Hashtable LinkedHashMap TreeMap用法和区别;对Map排序; 5字符串 使用String;判断一个字符串是否是合法的java标识符;使用StringBuffer;...
这是一份关于cookie和session的知识文档,有关于cookie是什么,图解,cookie对比session有哪些不好,session是什么图解
JSP页面内容介绍 index.jsp ...需要导入java.net.*包使用URLEncoder对象 将用户名和密码保存在cookie中,并设置它们的最长生存期限 userCenter.jsp 遍历客户端的cookie,使用URLDecoder解码获取用户信息
构造方法在继承中的使用 96 super关键字 97 包装类 97 toString( )方法 100 内容总结 101 独立实践 102 第七章:类的高级特征 103 学习目标 103 static关键字 104 final关键字 106 内部类 106 实例分析 110 抽象类,...
将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载 finally?再异常处理时...
42、一个“.java”源文件中是否可以包含多个类(不是内部类)?有什么限制? 12 43、说出一些常用的类,包,接口,请各举5 个。 12 44、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类?是否可以...
本书内容全面,涵盖了从网络基础知识到远程方法调用(RMI)等各方面的内容,书中章节涉及到TCP和UDP socket、服务器socket、URL和URI、组播以及特殊用途的API(如JavaMail)等等。本书展示了如何使用JSSE编写安全的...
面试题包括以下十九部分:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql...
本书内容全面,涵盖了从网络基础知识到远程方法调用(RMI)等各方面的内容,书中章节涉及到TCP和UDPsocket、服务器socket、URL和URI、组播以及特殊用途的API(如JavaMail)等等。本书展示了如何使用JSSE编写安全的...