写点什么

【Java Web 系列】Cookie 工作流程及基本使用

作者:倔强的牛角
  • 2022 年 6 月 12 日
  • 本文字数:1452 字

    阅读完需:约 5 分钟

写在前面👀

今天主要讲讲会话技术的概念和 Cookie 的基本使用

一、会话跟踪技术

会话:指从打开浏览器访问某个网站,到关闭浏览器的过程

会话跟踪技术:指在会话中,帮助服务器记录用户状态和数据的技术。


  • HTTP协议无状态的,即,对于事物处理没有记忆能力,每次请求和响应都是独立的。客户端发送 HTTP 请求给服务端之后,服务端根据请求响应数据,响应完后,不会记录任何信息

  • 会话跟踪技术解决了 HTTP 协议多次请求间不能共享数据的缺点

  • 会话跟踪技术分类

  • 客户端会话跟踪技术:Cookie

  • 服务端会话跟踪技术:Session

二、Cookie 简介

1️⃣什么是 Cookie

Cookie:客户端会话技术,将数据保存到客户端,以后每次请求都携带 Cookie 数据进行访问。

2️⃣Cookie 分类

  1. 会话级 Cookie(默认):Cookie 保存到浏览器的内存中,浏览器关闭则 Cookie 失效。

  2. 持久级 Cookie:Cookie 以文本文件的形式保存到硬盘上。

3️⃣Cookie 工作流程

  1. 浏览器发送请求给Servlet A,Servlet A会响应一个存有请求参数的 Cookie 对象给浏览器

  2. 浏览器接收到响应数据将 cookie 存入到浏览器内存中

  3. 当浏览器再次发送请求给Servlet BServlet B就可以使用 Request 对象获取到 Cookie 数据

三、Cookie 的基本使用

对于 Cookie 的操作主要分两大类,本别是发送 Cookie 获取 Cookie

1️⃣发送 Cookie

//1.创建Cookie对象,并存入数据Cookie cookie = new Cookie("key","value");//2.使用response对象将Cookie到客户端response.addCookie(cookie);
复制代码

2️⃣获取 Cookie

//1.使用request对象获取客户端携带的所有CookieCookie[] cookies = request.getCookies();//2.遍历数组,获取每一个Cookie对象for (Cookie cookie : cookies){}//3.使用Cookie对象方法获取数据cookie.getName();cookie.getValue();
复制代码

3️⃣代码案例

保存用户注册信息


  1. webapp目录下添加一个 html 文件,名称为:register.html。添加一个表单类型标签,设置请求方式为POST,请求路径为/tomcat/c1


<!DOCTYPE html><html lang="en">    <head>        <meta charset="UTF-8">        <title>Title</title>    </head>    <body>        <form action="/tomcat/c1" method="post">            账号:<input type="text" name="username">            <br>            密码:<input type="password" name="password">            <br>            <input type="submit" value="注册">        </form>    </body></html>
复制代码


  1. 创建一个 HttpServlet 的子类:CookieDemo1,Servlet 映射路径:/c1


@WebServlet("/c1")public class CookieDemo1 extends HttpServlet {    @Override    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // 1.创建cookie对象        Cookie c1 = new Cookie("username", "bighorn");        Cookie c2 = new Cookie("password", "123456");        // 2.设置cookie存活时间:一天        c1.setMaxAge(60 * 60 * 24);        c2.setMaxAge(60 * 60 * 24);        // 3.向浏览器发送cookie        response.addCookie(c1);        response.addCookie(c2);    }
@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); }}
复制代码


  1. 启动 tomcat 服务器

  2. 在浏览器地址栏输入,敲回车


localhost:8080/tomcat/register.html
复制代码


  1. 演示结果




感谢观看啦✨

有什么不足,欢迎指出哦💖

掘金的运营同学审核辛苦了💗

发布于: 刚刚阅读数: 3
用户头像

把学问造就,还期身健行优。 2022.06.02 加入

大一在读,电子信息工程专业。 希望在InfoQ写作社区记录自己的学习历程!

评论

发布
暂无评论
【Java Web系列】Cookie工作流程及基本使用_Java_倔强的牛角_InfoQ写作社区