一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第28天,点击查看活动详情。
Cookie(一)
写在前面👀
今天主要讲讲会话技术的概念和Cookie的基本使用
一、会话跟踪技术
会话:指从打开浏览器访问某个网站,到关闭浏览器的过程
会话跟踪技术:指在会话中,帮助服务器记录用户状态和数据的技术。
HTTP协议是无状态的,即,对于事物处理没有记忆能力,每次请求和响应都是独立的。客户端发送HTTP请求给服务端之后,服务端根据请求响应数据,响应完后,不会记录任何信息- 会话跟踪技术解决了HTTP协议多次请求间不能
共享数据的缺点 - 会话跟踪技术分类
- 客户端会话跟踪技术:
Cookie - 服务端会话跟踪技术:
Session
- 客户端会话跟踪技术:
二、Cookie简介
1️⃣什么是Cookie
Cookie:客户端会话技术,将数据保存到客户端,以后每次请求都携带Cookie数据进行访问。
2️⃣Cookie分类
- 会话级Cookie(默认):Cookie 保存到浏览器的内存中,浏览器关闭则 Cookie 失效。
- 持久级Cookie:Cookie 以文本文件的形式保存到硬盘上。
3️⃣Cookie工作流程
-
浏览器发送请求给
Servlet A,Servlet A会响应一个存有请求参数的Cookie对象给浏览器 -
浏览器接收到响应数据将cookie存入到浏览器内存中
-
当浏览器再次发送请求给
Servlet B,Servlet 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对象获取客户端携带的所有Cookie
Cookie[] cookies = request.getCookies();
//2.遍历数组,获取每一个Cookie对象
for (Cookie cookie : cookies){}
//3.使用Cookie对象方法获取数据
cookie.getName();
cookie.getValue();
3️⃣代码案例
保存用户注册信息
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>
- 创建一个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);
}
}
-
启动tomcat服务器
-
在浏览器地址栏输入,敲回车
localhost:8080/tomcat/register.html
- 演示结果
感谢观看啦✨
有什么不足,欢迎指出哦💖
掘金的运营同学审核辛苦了💗