当前位置:网站首页>会话技术!
会话技术!
2022-08-03 01:38:00 【陈毓辰】
会话技术
实现会话跟踪技术方式:
- 客户端会话跟踪技术:Cookie
- 服务端会话跟踪技术:Session
两者之间的区别:
cookie是存储在浏览器中的
session是存储在服务器中的
对于cookie的操作主要分为两大类,分别是发送cookie和获取cookie
- 发送cookie
- 创建cookie对象并设置数据
Cookie cookie = new Cookie(“key”,“value”);
- 发送cookie到客户端:使用response对象
javax.servlet javax.servlet-api 3.1.0 provided javax.servlet.jsp jsp-api 2.2 provided jstl jstl 1.2 taglibs standard 1.1.2 org.apache.tomcat.maven tomcat7-maven-plugin 2.2response.addCookie(cookie)
案例:
(1)创建Maven项目cookie-demo,并在pom.xml添加依赖
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
(2)编写Servlet类,名称为AServlet
@WebServlet(“/aServlet”)
public class AServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
(3)在Servlet中创建Cookie对象,存入数据,发送给前端
@WebServlet(“/aServlet”)
public class AServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//发送Cookie
//1. 创建Cookie对象
Cookie cookie = new Cookie(“username”,“zs”);
//2. 发送Cookie,response
response.addCookie(cookie);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
4)启动测试,在浏览器查看Cookie对象中的值
访问http://localhost:8080/cookie-demo/aServlet
chrome浏览器查看Cookie的值
选中打开开发者工具或者 使用快捷键F12 或者 Ctrl+Shift+I
- 获取Cookie
- 获取客户端携带的所有Cookie,使用request对象
Cookie[] cookies = request.getCookies();
- 遍历数组,获取每一个Cookie对象:for
- 使用Cookie对象方法获取数据
cookie.getName();
cookie.getValue();
在BServlet中使用request对象获取Cookie数组,遍历数组,从数据中获取指定名称对应的值
@WebServlet("/bServlet")
public class BServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取Cookie
//1. 获取Cookie数组
Cookie[] cookies = request.getCookies();
//2. 遍历数组
for (Cookie cookie : cookies) {
//3. 获取数据
String name = cookie.getName();
if("username".equals(name)){
String value = cookie.getValue();
System.out.println(name+":"+value);
break;
}
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
启动测试,在控制台打印出获取的值
访问`http://localhost:8080/cookie-demo/bServlet
边栏推荐
猜你喜欢

Violent recursion to dynamic programming 06 (the sword refers to Offer II 095. Longest common subsequence)

10大领域5大过程47子过程快速记忆

【7.31】代码源 - 【矩阵操作】【宝箱】【New Stone Game】【等差数列】

VS Code 这么牛,再次印证了一句名言

无法启动服务 错误 193 0xc1

236. The binary tree in recent common ancestor

Greenplum数据库故障分析——can not listen port

吴恩达深度学习deeplearning.ai——第一门课:神经网络与深度学习——第二节:神经网络基础(上)

Greenplum database failure analysis, can not listen to the port

吴恩达深度学习deeplearning.ai——第一门课:神经网络与深度学习——第一节:深度学习概论
随机推荐
常见钓鱼手法及防范
JS做一个接近无限时长的滚动条
【飞控开发高级教程1】疯壳·开源编队无人机-飞控整机代码走读、编译与烧写
.NET in-depth analysis of the LINQ framework (four: IQueryable, IQueryProvider interface details)
增删改查这么多年,最后栽在MySQL的架构设计上!
南瓜科学新品上线 开辟益智玩具新世界
openCV第二篇
【飞控开发高级教程2】疯壳·开源编队无人机-遥控整机代码走读、编译与烧写
梅科尔工作室-14天华为培训三
XSS攻击
8-jwt工具类
mysql容器数据卷持久化
从 npm 切换到 pnpm,真香!
怎么做postgrsql主备?
鲲鹏devkit开发套件
【Flink】使用arthas在线诊断flink的那些事
五大靠谱的婚恋相亲APP详细特点缺点分析!
担心的事情
async-await
为什么要使用 playwright 做浏览器自动化测试?