对Cookie进行增删改查
public class CookieServletDemo extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
//cookie添加 ---向客户端添加/修改cookie
//addCookie(request,response);
readCookie(request,response);
//delCookie(request,response);
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
//读取客户端发来的cookie ---不同浏览器,cookie是不共享的
private void readCookie(HttpServletRequest request,
HttpServletResponse response) throws IOException {
Cookie cs[] = request.getCookies();
if(cs!=null){
for(Cookie c:cs){
String key = c.getName();
String value = c.getValue();
value = URLDecoder.decode(value, "utf-8");
int maxAge = c.getMaxAge();//cookie机制安全性考虑,不让读取,因此返回都是-1
System.out.println(key+","+value+","+maxAge);
}
}
}
//添加/修改
private void addCookie(HttpServletRequest request,
HttpServletResponse response) throws IOException {
//String name="hncu";
String name = "湖南城院";
name = URLEncoder.encode(name, "utf-8");//如果是中文,则需要编码
Random r = new Random();
name = name+r.nextInt(1000);
System.out.println(name);
Cookie coo = new Cookie("school", name);
coo.setMaxAge(60*60);//为该cookie设置有效期(浏览器会自动把它转变成过期时间)
coo.setPath(request.getContextPath());//由路径控制访问权限
response.addCookie(coo);//如果存在相同key的cookie则是覆盖(修改),若不存在则是新建(添加)
}
//删除cookie ==其实就是向浏览器添加一个maxAge为0的cookie, 该cookie的key为将要被删除cookie的,要注意权限(cookie路径要设得和创建时完全一样)
private void delCookie(HttpServletRequest request,
HttpServletResponse response) throws IOException {
//删除key为"school"的cookie
Cookie coo = new Cookie("school", "aa");
coo.setMaxAge(0);//效期设为0即是代表删除
coo.setPath(request.getContextPath());//权限控制:删除时,路径必须和创建时设置的完全一样,否则无权删除
response.addCookie(coo);//删除
}
}
---------------------------------------------------------------------------------------------------------------------------------------------
<a href="CookieServletDemo">CookieDemo基本用法演示</a>
<h3>以下servlet用于演示cookie的访问权限</h3>
<form action="servlet/CookieServletDemo2" method="post">
Name:<input type="text" name="name"/> <br/>
<input type="submit" value="提交"/>
</form>
对Cookie进行增删改查的更多相关文章
- Selenium入门13 cookie的增删改查
cookie的增删改查: 查询:get_cookies()查询所有cookie,get_cookie(cookie的name)获取单个cookie 删除:delete_cookie(cookie的na ...
- 原生js对cookie的增删改查
一.增 document.cookie = cname + "=" + cvalue + ";expires=" + expires + ";path ...
- cookie的增删改查函数
function setCookie(name,value,expires,path,domain){ //设置过期时间 var oDate = new Date(); oDate.setDate(o ...
- js中实现cookie的增删改查(document.cookie的使用详情)
一.设置cookie的值 1.每个cookie都是一个名称/值对,名称/值对用等号连接,并将该名称/值对赋值给document.cookie即可.如:document.cookie="id= ...
- 优秀前端工程师必备: cookie的增删改查Demo!
1 cookie可以很好地解决微信浏览器登录状态的保存,具体教程看下面链接: https://www.cnblogs.com/autoXingJY/p/10456767.html 2 参考了w3c等的 ...
- Cookie的增删改查
增加: 第一种方法:Response.Cookies[“UserName”].Value=”张三” Response.Cookies[“UserName”].Expires=DateTime.Now. ...
- Java实现对cookie的增删改查
原文地址:http://blog.csdn.net/k21325/article/details/54377830 @RequestMapping(value="meeting/addGua ...
- 网络系列之 cookie增删改查(封装)
什么是cookie 呢?简单来说,这个小东西,会记录你的 浏览器 浏览习惯,或 账号密码等, 以便于提高用户的体验感. 举个例子: 你们有没有发现,去淘宝一些购物网站, 你搜索了 椅子, 挑选了一会椅 ...
- sqlHelper做增删改查,SQL注入处理,存储值,cookie,session
一.存储值 eg:登录一个页面,在进入这个页面之前你怎么知道它登没登录呢?[在登录成功之后我们把状态保存起来] 存储值得方式有两种,一种是cookie,一种是session 1.1区别: 代码: if ...
随机推荐
- js 中var that=this
js中经常出现var that=this,为什么这么做? http://stackoverflow.com/questions/4886632/what-does-var-that-this-mean ...
- [译]GotW #89 Smart Pointers
There's a lot to love about standard smart pointers in general, and unique_ptr in particular. Proble ...
- 《linux程序设计》笔记 第一章 入门
linux程序存放位置linux主要有一下几个存放程序的目录: /bin 系统启动程序目录 /usr/bin 用户使用的标准程序 /usr/local/bin 用于存放软件安装目录 /usr ...
- 【Pyhton Network】使用poll()或select()实现非阻塞传输
通常情况下,socket上的I/O会阻塞.即除非操作结束,否则程序不会照常进行.而以下集中情况需要在非阻塞模式下进行:1. 网络接口在等待数据时是活动的,可以做出相应:2. 在不使用线程或进程的情况下 ...
- centos中忘记root密码问题
centos中root密码问题 几次在虚拟机中安装cenos,都没有提示输入root密码,具体操作如下: 1.在启动的时候,进入启动界面后,按除了Enter键之外的任意键,即可进入该界面.然后 按 ...
- Etcd学习(二)集群搭建Clustering
1.单个etcd节点(测试开发用) 之前我一直开发测试一直是用的一个Etcd节点,然后启动命令一直都是直接打一个etcd(我已经将etcd安装目录的bin目录加入到PATH环 境变量中),然后启动信息 ...
- a++与=++a的区别
//a++;//a=a+1; // ++a;//a=a+1; //Console.WriteLine(a++);// Console.WriteL ...
- bzoj1492
好题+神题,首先肯定是dp,我们设f[i]为到第i天能获得的最多的B卷(设获得的钱数亦可)由题目hint可知,要么全买要么全卖,我们有f[i]=max(maxmoney,f[j]*b[i]+f[j]* ...
- bzoj1027
感觉网上很多题解写的似乎不清楚,这里说一下我的思路显然对于每个用户的材料(设其比例为Ai,Bi,Ci),我们要么最多用3种原料(设其比例为ai,bi,ci)混合成需要材料,要么一定混合不成,具体原因往 ...
- Linux Kernel ‘oz_cdev_write()’函数本地缓冲区溢出漏洞
漏洞名称: Linux Kernel ‘oz_cdev_write()’函数本地缓冲区溢出漏洞 CNNVD编号: CNNVD-201311-060 发布时间: 2013-11-07 更新时间: 201 ...