Cookie概念

Posted awdsjk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cookie概念相关的知识,希望对你有一定的参考价值。

Cookie时用来存储客户端的信息,一次会话:从浏览器的打开访问,然后关闭浏览器这就是属于一次会话!

Cooike不能存中文!必须时字符串的形式!

服务器端向客户端发送一个cookie

创建Cookie:

Cookie cookie = new Cookie(String cookieName,String cookieValue);

Cookie可以设置持久化时间:

cookie.setMaxAge(int seconds); 秒

注意:设置了时间以后,Cookie会从启动命令的时候开启,开始计算时间,当时间到时,就会删除Cookie信息,就算客户端没有关闭也会删除Cookie信息,单位为秒

删除客户端Cookie信息 把这个持久化时间改为0 那么就相当于覆盖以前的Cookie

package com.oracle.demo01;

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 SendCookieServlet extends HttpServlet 

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
		//创建Cookie对象(用来存储客户端的信息)
		Cookie cookie=new Cookie("goods","naiping");
		//设置持久化时间(在发送以前)
		cookie.setMaxAge(60*2);
		//设置Cookie携带路径
		/*cookie.setPath("/WEB07/SendCookieServlet");*/
		//发送Cookie到客户端
		response.addCookie(cookie);
	

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
		doGet(request, response);
	

 设置携带路径:

cookie.setPath(String path);

如果不设置携带路径的话,Cookie会显示整个WEB应用所在的路径都会携带Cookie信息,如果设置了则写到哪个目录下,就会显示哪个目录下的Cookie信息

cookie.setPath("/WEB16");

  代表访问WEB16应用中的任何资源都携带cookie

cookie.setPath("/WEB16/cookieServlet");

  代表访问WEB16中的cookieServlet时才携带cookie信息

 

服务器端请求接收客户端所携带的cookie信息:

cookie信息时以请求头的方式发送到服务器

Cookie[] cookie=request.getcookies();

通过遍历的形式,通过cookie名称找到对应的值

package com.oracle.demo01;

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 GetCookieServlet extends HttpServlet 

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
		//获取Cookie数组
		Cookie[] cookies=request.getCookies();
		//遍历Cookie数组 通过Cookie名获取Cookie值
		for(Cookie c:cookies)
			if(c.getName().equals("goods"))
				System.out.println(c.getValue());
			
		
	

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
		doGet(request, response);
	

  

以上是关于Cookie概念的主要内容,如果未能解决你的问题,请参考以下文章

认证授权基础概念详解

Login, cookie, session等概念理解

会话技术:Cookie && Session

单点登录与权限管理本质:session和cookie介绍

JavaWeb之会话技术

SessionStorage LocalStorage cookie三者区别