cookie 入门

cookie 入门_第1张图片

 

cookie 入门_第2张图片

 

 

Cookie 是保存到客户端的东西

 

1 当浏览器中没有cookie的时候

谷歌浏览器—右侧工具栏设置—内容设置

cookie 入门_第3张图片

 

cookie 入门_第4张图片

 

cookie 入门_第5张图片

cookie 入门_第6张图片

cookie显示的是空的浏览器随便请求一个jsp 页面,因为由于访问jsp 页面服务端这个时候,因为jsp 中含有session ,,cookie携带者sessionId 保存到客户端去(显示在客户端的响应头)

cookie 入门_第7张图片

查看cookie 时也是有cookie 的,但是这个时候创建的就是会话cookie,浏览器关闭了,就没有了

 cookie 入门_第8张图片

浏览器关闭了,再打开就没有了

cookie 入门_第9张图片

在浏览器关闭以后,再打开开始创建cookie

 

Cookie中不能存在中文!!!


// 保存
Cookie c = new Cookie("username", URLEncoder.encode("张三", "utf-8"));//出错!
response.addCookie(c);

cookie 入门_第10张图片

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();//获取项目名称
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



  
    
    
    My JSP 'a.jsp' starting page
    
	
	
	    
	
	
	

  
  
  

保存Cookie

<%-- request、response、session、application、pageContext、config、out、page、exception --%> <% Cookie cookie1 = new Cookie("ggg", "hhhh"); response.addCookie(cookie1); Cookie cookie2 = new Cookie("jjj", "kkkk"); response.addCookie(cookie2); %>  

 

新创建的cookie 仍然放在响应端

cookie 入门_第11张图片

cookie 入门_第12张图片这个说明了,cookie 是保存在浏览器客户端的内存中的也是会话cookie,浏览器一关闭就没有了

这个时候再次请求谷歌浏览器

cookie 入门_第13张图片

曾经在浏览器内存中,在浏览器响应端的cookie 会发送给服务器,并且在请求端

ie浏览器

cookie 入门_第14张图片

 

右侧是响应头表示的是Cookie 已经保存上了

> 另一个jsp获取浏览器归还的cookie! b.jsp

cookie 入门_第15张图片

cookie 入门_第16张图片

cookie 作为请求头打印到请求体中了

这个不是我们存的,是tomcat 自己干的事

删除cookie

cookie 入门_第17张图片

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



  
    
    
    My JSP 'b.jsp' starting page
    
	
	
	    
	
	
	

  
  
  

删除cookie

<% Cookie cookie1 = new Cookie("aaa", "AAA"); cookie1.setMaxAge(0); response.addCookie(cookie1); %>

 

 Cookie的生命

  * Cookie不只有name和value两个属性
  * Cookie的maxAge(掌握):Cookie的最大生命,即Cookie可保存的最大时长。以秒为单位,例如:cookie.setMaxAge(60)表示这个Cookie会被浏览器保存到硬盘上60秒
    > maxAge>0:浏览器会把Cookie保存到客户机硬盘上,有效时长为maxAge的值决定。
    > maxAge<0:Cookie只在浏览器内存中存在,当用户关闭浏览器时,浏览器进程结束,同时Cookie也就死亡了。
    > maxAge=0:浏览器会马上删除这个Cookie!

 

Cookie 路径

cookie 入门_第18张图片

Cookie的path(理解):

    > Cookie的path并不是设置这个Cookie在客户端的保存路径!!!

    > Cookie的path由服务器创建Cookie时设置

    > 当浏览器访问服务器某个路径时,需要归还哪些Cookie给服务器呢?这由Cookie的path决定。

> 浏览器访问服务器的路径,如果包含某个Cookie的路径,那么就会归还这个Cookie。

什么是浏览器的访问路径:

  > 例如:

      <> aCookie.path=/day11_1/;bCookie.path=/day11_1/jsps/; cCookie.path=/day11_1/jsps/cookie/;

      <> 访问:/day11_1/index.jsp时,归还:aCookie

      <> 访问:/day11_1/jsps/a.jsp时,归还:aCookie、bCookie

      <> 访问:/day11_1/jsps/cookie/b.jsp时,归还:aCookie、bCookie、cCookie

> Cookie的path默认值:当前访问路径的父路径。例如在访问/day11_1/jsps/a.jsp时,响应的cookie,那么这个cookie的默认path为/day11_1/jsps/

保存cookie 的代码:

cookie 入门_第19张图片

 

cookie 入门_第20张图片

 

cookie 入门_第21张图片

这里面含有两个jsessionid ,第一个是刚刚创建的,因为不同的项目创建的session是不同的,第二个sessionid 是上一个项目创建的

cookie 入门_第22张图片

 

再添加两个cookie

 

cookie 入门_第23张图片

cookie 入门_第24张图片

会把前几个cookie带出来

cookie 入门_第25张图片

 

含有上一次发送请求的cookies 会在这一次请求带过来发给服务器

由于aaa,bbb 的cookie路径是/day11_2/cookie1

第二次的浏览器路径包含cookie路径,所以会返回来

同理只要是包含,会把所有的cookie s 都返回来

cookie 入门_第26张图片

 

cookie 入门_第27张图片

 

Cookie路径是这样的

cookie 入门_第28张图片

你可能感兴趣的:(cookie 入门)