COOKIE

Cookie:

package com.demo.cookie;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.Cookie;

import javax.servlet.http.HttpServlet;

/**

 * COOKIE的创建和发送

 * new Cookie(name,value);  name必须唯一 

 * @author 13554

 *cookie 保存在浏览器 客户端  

 *URL:http://localhost:8080/cookieProject/cookie1

 */

@WebServlet("/cookie1")

public class Cookie1 extends HttpServlet {

        

         @Override

          protected void service(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) throws javax.servlet.ServletException, java.io.IOException{

                   //创建cookie 

                   System.out.println("创建cookie1、cookie2");

                   Cookie cookie=new Cookie("name","Leo");

                   Cookie cookie2=new Cookie("password","Leo@900906");

                   cookie.setValue("Admin");

                   System.out.println("发送cookie1、cookie2");

                   //发送(响应)cookie

                   resp.addCookie(cookie);

                   resp.addCookie(cookie2);

         }       

}

package com.demo.cookie;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.Cookie;

import javax.servlet.http.HttpServlet;

/**

 * 获取cookie

 * request.getCookies():获取当前客户端当前项目的所有cookie

 * @author 13554

 *URL:http://localhost:8080/cookieProject/cookie2

 */

@WebServlet("/cookie2")

public class Cookie2 extends HttpServlet {

         @Override

          protected void service(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) throws javax.servlet.ServletException, java.io.IOException{

                   System.out.println("获取所有cookie");

                   //获取当前客户端所有cookie

                   Cookie[] cookies=req.getCookies();

                   System.out.println("打印所有cookie");

                   for(Cookie cookie:cookies) {

                            System.out.println(cookie.getName());

                            System.out.println(cookie.getValue());

                   }

         }       

}

package com.demo.cookie;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.Cookie;

import javax.servlet.http.HttpServlet;

/**

Cookie设置到期时间 setMaxAge(int time)

time为负整数:默认值,表示只在浏览器内存中存活,关闭浏览器则失效

time为0:表示删除该cookie,cookie作废,无论是在浏览器内存中还是客户端硬盘上都会删除该cookie,如果之前有保存该cookie,可以通过setMaxAge(0)删除该cookie

time为正整数:表示存储的秒数,指定cookie的存活描述,无论打开、关闭浏览器,无论重启电脑与否,cookie必定在time为N秒后消失,N秒内都被服务器存在电脑硬盘里

*/

@WebServlet("/cookie3")

public class Cookie3 extends HttpServlet {

         @Override

          protected void service(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) throws javax.servlet.ServletException, java.io.IOException{

//               System.out.println("获取所有cookie");

//               //获取当前客户端所有cookie

//               Cookie[] cookies=req.getCookies();

//               System.out.println("打印所有cookie");

//               for(Cookie cookie:cookies) {

//                         System.out.println(cookie.getName());

//                         System.out.println(cookie.getValue());

//                         cookie.setMaxAge(-1);//默认值  表示浏览器关闭前该cookie一直存在

//                         //cookie.setMaxAge(0);//表示删除该cookie

//                         //cookie.setMaxAge(1);//表示该cookie可以存在客户端硬盘上1秒钟,1秒后被删除

//               }

                   //time为负整数:默认值,关闭浏览器则cookie失效

                   Cookie cookie1 =new Cookie("name","Sue");

                   cookie1.setMaxAge(-1);

                   resp.addCookie(cookie1);

                   //time为0:表示删除该cookie,cookie作废

                   Cookie cookie2 =new Cookie("age","31");

                   cookie2.setMaxAge(0);

                   resp.addCookie(cookie2);

                   //time为正整数:表示存储的秒数,浏览器会将数据存在指定磁盘中8秒

                   Cookie cookie3 =new Cookie("sex","Man");

                   cookie3.setMaxAge(8);//表示cookie 8秒后被删除

                   resp.addCookie(cookie3);

         }       

}

package com.demo.cookie;

import java.net.URLEncoder;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.Cookie;

import javax.servlet.http.HttpServlet;

/**

 * COOKIE注意事项

 * @author 13554

 *URL:http://localhost:8080/cookieProject/cookie4

 */

@WebServlet("/cookie4")

public class Cookie4 extends HttpServlet {

         @Override

          protected void service(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) throws javax.servlet.ServletException, java.io.IOException{

                   //1.cookie只保存在当前浏览器中,数据最终会存储在本地磁盘 不能换电脑和浏览器

                   Cookie cookie1=new Cookie("name","Leo");

                   resp.addCookie(cookie1);

                   //2.cookie存中文问题:不支持中文,须通过URLEncoder.encode()编码,URLDecoder.decode()解码  【该方法作废,不支持中文】

                   String name=URLEncoder.encode("姓名");

                   String value=URLEncoder.encode("雷檑");

                   Cookie cookie2=new Cookie(name,value);

                   resp.addCookie(cookie2);

                   //3.同名cookie会覆盖原来的cookie

                   Cookie cookie3=new Cookie("name","Stratovarius");

                   resp.addCookie(cookie3);

                   //4.cookie存放的数量 不同浏览器的存储数量和大小都有限定,视浏览器而定 cookie一般大约4KB左右

                   //获取cookie

                   Cookie[] cookies=req.getCookies();

                   //打印cookie

                   for(Cookie cookie:cookies) {

                            System.out.println(cookie.getName()+" : "+cookie.getValue());

                   }

         }

}

package com.demo.cookie;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.Cookie;

import javax.servlet.http.HttpServlet;

/**

 * COOKIE设置路径

 * 只有访问的URL路径中包含cooki的path值才能访问该cookie对象

 * @author 13554

 *URL:http://localhost:8080/cookieProject/cookie5

 */

@WebServlet("/cookie5")

public class Cookie5 extends HttpServlet {

         @Override

          protected void service(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) throws javax.servlet.ServletException, java.io.IOException{

                   /*当前项目路径为cookieProject*/

                   Cookie cookie=new Cookie("name","Leo");

                   //NO.1 设置路径为:/ 表示当前服务器下任何项目都能拿到cookie对象

                   cookie.setPath("/");

                   //NO.2 设置路径为:/cookieProject 表示当前cookieProject项目下任何项目都能拿到cookie对象

                   cookie.setPath("/cookieProject");//【默认情况,可不设置】

                   //NO.3 设置路径为:/servletProject 表示servletProject项目下任何项目都能拿到cookie对象

                   cookie.setPath("/servletProject");//只能通过servletProject项目访问,就算是cookieProject项目产生的也不能访问

                   //NO.4 设置路径为:/cookieProject/cookie 表示只能/cookieProject/cookie 目录下的资源才能访问到cookie对象

                   cookie.setPath("/cookieProject/cookie");//比如同级目录cookie1目录下的项目就不能访问该cookie对象

                   resp.addCookie(cookie);

         }

}

备注:学习笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值