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); } } |
备注:学习笔记