当前位置:网站首页>会话技术!
会话技术!
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
边栏推荐
猜你喜欢
复杂多层布局的初级智能文本提示器
10. SAP ABAP OData 服务如何支持修改(Update)操作
吴恩达深度学习deeplearning.ai——第一门课:神经网络与深度学习——第一节:深度学习概论
Wireshark data capture and analysis of the transport layer protocol (TCP protocol)
不想当Window的Dialog不是一个好Modal,弹窗翻身记...
【Swoole系列3.3】单进程管理Process
DJI内推码(2022年8月2日更新)
Violent recursion to dynamic programming 06 (the sword refers to Offer II 095. Longest common subsequence)
暴力递归到动态规划 08(小马走象棋)
Greenplum数据库故障分析——can not listen port
随机推荐
torchvision.datasets.ImageFolder使用详解
VS2010 组件列表与对应名称
项目管理到底管的是什么?
如何让优炫数据库开机自启
暴力递归到动态规划 06 (剑指 Offer II 095. 最长公共子序列)
“蔚来杯“2022牛客暑期多校训练营4 补题题解(N)
php一维数组合并
mysql binlog日期解析成yyyy-MM-dd
在表格数据上,为什么基于树的模型仍然优于深度学习?
11-security认证.md
企业云成本管控,你真的做对了吗?
作业8.2 线程同步互斥机制——互斥锁
pytest:如何调用 pytest
常用工具链和虚拟环境-msys2与mingw
DJI内推码(2022年8月2日更新)
一个人的精力
投资的思考
全栈---Proxy
.NET in-depth analysis of the LINQ framework (four: IQueryable, IQueryProvider interface details)
吴恩达深度学习deeplearning.ai——第一门课:神经网络与深度学习——第二节:神经网络基础(上)