zoukankan      html  css  js  c++  java
  • 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);
    	}
    }
    

      

  • 相关阅读:
    总结
    PHP的重载-使用魔术方法实现
    用PHP实现一些常见的排序算法
    MySQL分组聚合group_concat + substr_index
    各种链接地址
    在Linux服务器上使用rz命令上传文件时时老报:Segmentation Fault,上传失败
    新安装的windows 10无法更新报0x80240fff错误的解决方案
    通过SSH key获取GitHub上项目,导入到IDEA中
    解压.zip,.tar.gz文件到指定目录,重命名文件
    byte字节数组的压缩
  • 原文地址:https://www.cnblogs.com/awdsjk/p/11145820.html
Copyright © 2011-2022 走看看