Cookie相关基础
2018-01-30 22:21
106 查看
1) 创建Cookie对象,
public Cookie(java.lang.String name,
java.lang.String value)
参数1:表示cookie名称
参数2:表示cookie名称对应的内容
2) 发送cookie数据(服务器发送cookie数据到浏览器中)
set-cookie:请求头: 携带内容(最基本的方式)
简写方式:服务器发送Cookie
void addCookie(Cookie cookie)
3) 服务器会携带cookie到浏览器(自发:浏览器自发的将cookie保存起来),方便下一次服务器传递数据
4) 服务器获取cookie数据
原理:获取的请求头:cookie名称获取内容(最基本的)
简写方式:
Cookie[] getCookies()
Cookie技术的一些细节:
1) 细节1:当前浏览器中发现中文cookie 数据,获取cooike名称对应的内容,需要进行解密(同时,对中文进行加密)
使用的是两个工具类:URLEncorder类和URLDecorder类
2) 细节2:设置cookie的有效时间
public void setMaxAge(int expiry) :
参数分为三种情况:
1) 如果参数为正整数,表示多少秒之后,cookie数据失效了(不存在了)
2) 如果参数是一个负整数,一般情况指定-1,关闭浏览器,cookie就不存在了
3) 如果参数是一个0,那么指定同名的cookie的名称,然后该cookie数据会被删除掉!
4) 细节3:cookie的有效路径
public void setPath(java.lang.String uri):当前cookie的数据是在有效路径下才会起作用,否则,获取不到cookie数据
一般情况:一个站点可以存储多少个cookie数据,不超过300个,可能用到20个作用
输出系统时间和上次登录时间:
public Cookie(java.lang.String name,
java.lang.String value)
参数1:表示cookie名称
参数2:表示cookie名称对应的内容
2) 发送cookie数据(服务器发送cookie数据到浏览器中)
set-cookie:请求头: 携带内容(最基本的方式)
简写方式:服务器发送Cookie
void addCookie(Cookie cookie)
3) 服务器会携带cookie到浏览器(自发:浏览器自发的将cookie保存起来),方便下一次服务器传递数据
4) 服务器获取cookie数据
原理:获取的请求头:cookie名称获取内容(最基本的)
简写方式:
Cookie[] getCookies()
Cookie技术的一些细节:
1) 细节1:当前浏览器中发现中文cookie 数据,获取cooike名称对应的内容,需要进行解密(同时,对中文进行加密)
使用的是两个工具类:URLEncorder类和URLDecorder类
2) 细节2:设置cookie的有效时间
public void setMaxAge(int expiry) :
参数分为三种情况:
1) 如果参数为正整数,表示多少秒之后,cookie数据失效了(不存在了)
2) 如果参数是一个负整数,一般情况指定-1,关闭浏览器,cookie就不存在了
3) 如果参数是一个0,那么指定同名的cookie的名称,然后该cookie数据会被删除掉!
4) 细节3:cookie的有效路径
public void setPath(java.lang.String uri):当前cookie的数据是在有效路径下才会起作用,否则,获取不到cookie数据
一般情况:一个站点可以存储多少个cookie数据,不超过300个,可能用到20个作用
public class CookieDemo extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //创建cookie对象 Cookie coo = new Cookie("name","Rong"); //中文格式 String name = URLEncoder.encode("蓉","utf-8"); Cookie coo2 = new Cookie("name", name); //设置有效路径 // coo.setPath("/Develop_Servlet_Cookie001"); // 4000 coo2.setPath("/Develop_Servlet_Cookie002"); //简写,发送到浏览器 // response.addCookie(coo); response.addCookie(coo2); //-1:关闭浏览器就删除cookie。正整数:保存时间 coo.setMaxAge(-1); coo2.setMaxAge(5); //获取cookie参数 Cookie[] cookies = request.getCookies(); if(cookies!=null){ for(Cookie cookie:cookies) { String coo_name = cookie.getName(); String coo_value = cookie.getValue(); //解析获得的值 String coo_devalue = URLDecoder.decode(coo_value, "utf-8"); System.out.println("名:"+coo_name+"\t值:"+coo_devalue); } } } }
输出系统时间和上次登录时间:
public class TimeDemo extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //创建系统时间,格式化时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String CurTime = sdf.format(new Date()); //获取cookie数据 Cookie[] cookies = request.getCookies(); //设立初始值 String LastTime = null; //第一次访问 if(cookies==null && LastTime==null){ //输出系统时间 response.setContentType("text/html;charset=UTF-8"); response.getWriter().write("第一次系统时间:"+CurTime); //编码,创建cookie文件 String en_time = URLEncoder.encode(CurTime, "utf-8"); Cookie last_cook = new Cookie("lasttime", CurTime); response.addCookie(last_cook); } //第二次之后访问,遍历输出数据 if(cookies!=null){ for(Cookie cookie:cookies){ //获取数值 LastTime = cookie.getValue(); //解码文件 String de_LTime = URLDecoder.decode(LastTime, "utf-8"); response.setContentType("text/html;charset=UTF-8"); response.getWriter().write("上次登录时间"+de_LTime+"<br/>系统时间:"+CurTime); //更新时间 CurTime = URLEncoder.encode(CurTime, "utf-8"); cookie.setValue(CurTime); response.addCookie(cookie); } } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
相关文章推荐
- 图形处理中关于三角形的相关基础知识
- Hibernate基础学习(二)—Hibernate相关API介绍
- js基础篇——cookie使用要点
- Android学习笔记——项目结构及相关基础知识
- java基础-会话技术Cookie&Session
- 黑马程序员——Java基础之面向对象的相关概念及个人理解
- java基础-java相关技术的初识
- Nodejs基础之Cookie
- 黑马程序员——3,JAVA基础(函数,数组相关)
- PHP的Cookie、Session和跟Laravel相关的几点了解
- 基于Keras的深度学习的相关基础概念的讲解
- ASP.NET中Cookie编程的基础知识
- Hibernate深入理解----01基础知识介绍及安装相关插件
- 【搜索引擎基础知识3】搜索引擎相关开源项目及网站
- linux基础知识及相关命令
- C++相关基础知识(转贴)
- ASP.NET中Cookie编程的基础知识
- Python爬虫基础——利用cookie实现模拟登陆
- Cocos2dx基础使用相关面试题
- plsql学习笔记---plsql相关概念,以及基础结构