Cookie学习总结-Cookie的增加、删除、查看案例
2015-07-11 00:00
246 查看
1.什么是Cookie
Cookie是客户端技术,服务器把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。
2.Cookie细节
一个Cookie只能标识一种信息,它至少含有一个标识该信息的名称(NAME)和设置值(VALUE)。
一个WEB站点可以给一个WEB浏览器发送多个Cookie,一个WEB浏览器也可以存储多个WEB站点提供的Cookie。
浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。
如果创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cooCkie(即存储在浏览器的内存中),用户退出浏览器之后即被删除。若希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该cookie。
注意,删除cookie时,path必须一致,否则不会删除
3.Cookie的增加、删除、查看案例
1.新建index.jsp
2.新建CookieDemoServlet.java(/ck.do)
3.运行效果
http://localhost:8080/web_9/index.jsp进入index.jsp
点击添加cookie
此时浏览器只是响应到了ckpass=leo,ckname=leo,并没有出现在请求头信息的cookie中。
点击查看cookie
此时ckname出现,但是ckpass没出现,因为servlet设置了ckpass的有效路径“cookiePass.setPath(“/web_9/servlet/”)”。所以要输入http://localhost:8080/web_9/servlet/DemoServlet(DemoServlet是新建的一个空的servlet,直接输入http://localhost:8080/web_9/servlet也能得出效果)
ckpass、ckname都查到了。
点击删除cookie
再转到http://localhost:8080/web_9/servlet/DemoServlet可发现ckpass已被删除(本案例测试的是删除ckpass)
版权声明:本文为博主原创文章,未经博主允许不得转载。
Cookie是客户端技术,服务器把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。
2.Cookie细节
一个Cookie只能标识一种信息,它至少含有一个标识该信息的名称(NAME)和设置值(VALUE)。
一个WEB站点可以给一个WEB浏览器发送多个Cookie,一个WEB浏览器也可以存储多个WEB站点提供的Cookie。
浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。
如果创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cooCkie(即存储在浏览器的内存中),用户退出浏览器之后即被删除。若希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该cookie。
注意,删除cookie时,path必须一致,否则不会删除
3.Cookie的增加、删除、查看案例
1.新建index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <div> <a href="./ck.do?oper=add">添加cookie</a> <a href="./ck.do?oper=delete">删除cookie</a> <a href="./ck.do?oper=select">查看cookie</a> </div> </body> </html>
2.新建CookieDemoServlet.java(/ck.do)
package blank.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class CookieDemoServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String oper = request.getParameter("oper"); if ("add".equals(oper)) { // 创建cookie对象 Cookie cookieName = new Cookie("ckname", "leo"); //cookieName.setDomain("www.csdn.net"); Cookie cookiePass = new Cookie("ckpass", "leo"); cookiePass.setPath("/web_9/servlet/");//设置有效的路径 //注意:项目名称/路径 // 响应过来 response.addCookie(cookiePass); response.addCookie(cookieName); request.getRequestDispatcher("./index.jsp").forward(request, response); } else if ("delete".equals(oper)) { //删除cookie原理 Cookie cookiePass = new Cookie("ckpass", null); //创建的cookie的有效路径 cookiePass.setPath("/web_9/servlet/");//设置有效的路径 cookiePass.setMaxAge(0);//立马删除 //-1指浏览器退出再删除 //响应过去 response.addCookie(cookiePass); request.getRequestDispatcher("./index.jsp").forward(request, response); } else if ("select".equals(oper)) { // 获取所有的cookie信息 Cookie cookies[] = request.getCookies(); if (cookies != null) { for (Cookie ck : cookies) { System.out.println(ck.getName()); System.out.println(ck.getValue()); } } request.getRequestDispatcher("./index.jsp").forward(request, response); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
3.运行效果
http://localhost:8080/web_9/index.jsp进入index.jsp
点击添加cookie
此时浏览器只是响应到了ckpass=leo,ckname=leo,并没有出现在请求头信息的cookie中。
点击查看cookie
此时ckname出现,但是ckpass没出现,因为servlet设置了ckpass的有效路径“cookiePass.setPath(“/web_9/servlet/”)”。所以要输入http://localhost:8080/web_9/servlet/DemoServlet(DemoServlet是新建的一个空的servlet,直接输入http://localhost:8080/web_9/servlet也能得出效果)
ckpass、ckname都查到了。
点击删除cookie
再转到http://localhost:8080/web_9/servlet/DemoServlet可发现ckpass已被删除(本案例测试的是删除ckpass)
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关文章推荐
- cookie的secure属性详解
- 浏览器 cookie 限制
- 深入解析Session是否必须依赖Cookie
- 新手菜鸟必读:session与cookie的区别
- ASP.NET Cookie 操作实现
- php中cookie的作用域
- 写入cookie的JavaScript代码库 cookieLibrary.js
- ie7下利用ajax跨域盗取cookie的解决办法
- js 通过cookie实现刷新不变化树形菜单
- 详谈javascript中的cookie
- 不要在cookie中使用特殊字符的原因分析
- cookie在javascript中的使用技巧以及隐私在服务器端的设置
- 二级域名Cookie问题的解决方法
- 关于二级域名下使用一级域名下的COOKIE的问题
- 浅析Cookie中的Path与domain
- cookie中的path与domain属性详解
- jQuery控制cookie过期时间的方法
- jquery.cookie() 方法的使用(读取、写入、删除)
- jquery.cookie用法详细解析