【Java学习-J.160611.0.21】Servlet基础四 cookie部分
来源:互联网 发布:郭敬明 陈学冬 知乎 编辑:程序博客网 时间:2024/05/20 15:10
一、状态管理
1)什么是状态管理
将客户端与服务器之间的多次交互当作一个整体来看待,将多次操作产生的数据记录下来。
2)怎样进行状态管理
1、cookie(在客户端管理用户的状态)
2、session(在服务器端管理用户的状态)
二、cookie
1) 什么是cookie
浏览器在访问服务器时,服务器将一些数据以set-cookie消息头的形式发给浏览器,浏览器会将这些数据保存下来,当再次访问服务器时,会将这些数据以cookie消息头的形式发送给服务器,通过这种方式可以管理用户的状态。
2)创建cookie
Cookie cookie=new Cookie("username","aa");
response.addCookie(cookie);
3)查找cookie
request.getCookie();
三、保存cookie时的编码问题
cookie的值只能以ascii字符,如果是中文,需要将中文转换成ascii字符形式
URLEncoder.encode();//将中文转换成字符编码集
URLDecoder.decode();//将字符编码集转换成对应编码的中文
四、cookie的生成时间
cookie.sexMaxAge(int secondes);
secondes>0 :浏览器将cookie以文件形式保存在硬盘上,超过指定时间后,将会删除该文件
secondes<0:默认cookie存放在内存当中,当浏览器关闭时自动删除
secondes=0:立即删除cookie
五、cookie路径问题
浏览器在向服务器上的某个地址发送请求时,会先比较cookie的路径与访问的路径地址是否匹配,只有匹配的cookie才会发送
cookie.setPath(String url);
如果没有设置,则有一个缺省的路径,缺省的路径是生成该cookie的组件的路径。注意:cookie的发送包含生成该cookie的子路径,不包含父路径 。
六、cookie的工具类(添加、删除、查找cookie)
//需要导包public class CookieUtil{ private static int default_age=365*24*3600;//默认时间一年 private static String default_path="/textdemo"; //添加cookie public static void addCookie(String name, String value, int age,HttpServletResponse response) throws Exception{ Cookie cookie=new Cookie(name,URLEncoder.encode(value,"utf-8")); cookie setMaxAge(age); cookie setPath(default_path); response.addCookie(cookie); } //设置默认时间的coookie public static void addCookie(String name,String value,HttpServletResponse response)throws Exception{ addCookie(name,value,default_age,response); } //查找cookie public static String findcookie(String name,HttpServletRequst request)throws Exception{ Cookie[] cookies=request.getCookie(); String value=""; for(int i=0;i<cookies.length;i++){ Cookie cookie=cookies[i]; if(cookie.getName()==name){ value=URLDcoder.decode(cookie.getVlaue(),"utf-8"); } } return value; } //删除cookie public static void deletCookie(String name,HttpServletResponse response){ Cookie cookie=new Cookie(name,""); cookie.sexMaxAge(0); cookie.setPath(default_path); response.addCookie(cookie); } }
- 【Java学习-J.160611.0.21】Servlet基础四 cookie部分
- 【Java学习-J.160611.0.21】Servlet基础四 session部分
- 【Java学习-J.160601.0.20】Servlet 基础二
- 【Java学习-J.160601.0.20】Servlet生命周期
- 【Java学习-J.160601.0.20】Servlet 基础三 dao的封装
- Servlet(四)servlet cookie
- 【Java学习-J.160601.0.20】一个验证码的servlet
- Servlet--Cookie基础
- java基础学习四
- Java基础——Servlet(四)
- Java基础——Servlet(四)
- Java基础.J.1
- Java Web学习(31): Servlet学习(四)
- 我的servlet学习过程(四):JSP部分
- Servlet学习:Cookie练习
- Servlet学习之cookie
- Servlet学习之Cookie
- 【Java学习-J.160328.0.2】笔记1-Linux基础
- 关于Visual Studio 2013 编译 multi-byte character set MFC程序出现 MSB8031 错误的解决办法
- 常用正则表达式大全!
- windows 命令
- CSS学习3(字体)
- leetcode 20. Valid Parentheses
- 【Java学习-J.160611.0.21】Servlet基础四 cookie部分
- java中jdbc事务管理
- vi配置文件
- 使用eclipse创建maven项目(web)
- 游览器中javascript的执行过程
- HashTable和HashMap区别
- KEIL编译环境优化等级说明
- 设计模式(Java版)
- Unity 小游戏练习(二)