会话跟踪技术概述及Cookie基本使用

简介: 会话跟踪技术概述及Cookie基本使用

一、会话跟踪技术概述

会话:用户打开浏览器,访问web浏览器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可以包含多次请求和响应。


会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自同一浏览器,以便在同一会话的多次请求间共享数据。


HTTP协议是无状态的,每次浏览器向服务器请求时,服务器都会将请求视为新的请求,因此我们需要会话跟踪技术来实现会话内数据共享。

44c4ccb1829c4faa93448de8c4a048c5.png


实现方式:


1、客户端会话根据技术:Cookie

2、服务端会话跟踪技术:Session

二、Cookie基本使用

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


Cookie基本使用:发送Cookie


1、创建Cookie对象,设置数据

Cookie cookie = new Cookie("key","value");


2、发送Cookie到客户端:使用response对象

response.addCookie(cookie);


代码示例:

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
@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);
    }
}

执行结果访问对象的Servlet时:

c652a35008d74120b82aba7c965344cd.png

Cookie的位置及显示信息:

c0ba6374b0794cb1ae2583eec572dff4.png

获取Cookie:


3、获取客户端携带的所有Cookie,使用request对象

Cookie[] cookies = request.getCookies();


4、遍历数组,获取每一个Cookie对象:

for


5、使用Cookie对象方法获取数据

cookie.getName();
cookie.getValue();

代码示例:

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.net.URLDecoder;
@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();
                // URL解码
                value = URLDecoder.decode(value,"UTF-8");
                System.out.println(name + ":" + value);
                break;
            }
        }
    }
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}

执行结果:


先访问aServlet:

493da8c421e34f57b540dc9c6133ce88.png

再访问bServlet:

d79cc4f5b6a0410bb36ea6822a3dc050.png

控制台输出:

c876555efdeb4d2a8e073e5c88ced7ae.png


目录
相关文章
|
5月前
|
存储 编解码 应用服务中间件
会话跟踪技术(Session 以及Cookie)
会话跟踪技术(Session 以及Cookie)
|
2月前
|
存储 缓存 数据处理
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
本文介绍了PHP会话控制及Web常用的预定义变量,包括`$_REQUEST`、`$_SERVER`、`$_COOKIE`和`$_SESSION`的用法和示例。涵盖了cookie的创建、使用、删除以及session的工作原理和使用,并通过图书上传的例子演示了session在实际应用中的使用。
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
|
2月前
|
存储 前端开发 Java
JavaWeb基础7——会话技术Cookie&Session
会话技术、Cookie的发送和获取、存活时间、Session钝化与活化、销毁、用户登录注册“记住我”和“验证码”案例
JavaWeb基础7——会话技术Cookie&Session
|
3月前
|
存储 安全 搜索推荐
【JavaWeb 秘籍】Cookie vs Session:揭秘 Web 会话管理的奥秘与实战指南!
【8月更文挑战第24天】本文以问答形式深入探讨了Web开发中关键的会话管理技术——Cookie与Session。首先解释了两者的基本概念及工作原理,随后对比分析了它们在存储位置、安全性及容量上的差异。接着,通过示例代码详细介绍了如何在JavaWeb环境中实现Cookie与Session的操作,包括创建与读取过程。最后,针对不同应用场景提供了选择使用Cookie或Session的指导建议,并提出了保障二者安全性的措施。阅读本文可帮助开发者更好地理解并应用这两种技术。
58 1
|
3月前
|
网络协议 算法
SYN Cookie技术
【8月更文挑战第18天】
132 4
|
3月前
|
C# 开发者 Windows
WPF遇上Office:一场关于Word与Excel自动化操作的技术盛宴,从环境搭建到代码实战,看WPF如何玩转文档处理的那些事儿
【8月更文挑战第31天】Windows Presentation Foundation (WPF) 是 .NET Framework 的重要组件,以其强大的图形界面和灵活的数据绑定功能著称。本文通过具体示例代码,介绍如何在 WPF 应用中实现 Word 和 Excel 文档的自动化操作,包括文档的读取、编辑和保存等。首先创建 WPF 项目并设计用户界面,然后在 `MainWindow.xaml.cs` 中编写逻辑代码,利用 `Microsoft.Office.Interop` 命名空间实现 Office 文档的自动化处理。文章还提供了注意事项,帮助开发者避免常见问题。
240 0
|
5月前
|
存储 安全 网络协议
Django路由与会话深度探索:静态、动态路由分发,以及Cookie与Session的奥秘
Django路由与会话深度探索:静态、动态路由分发,以及Cookie与Session的奥秘
|
5月前
|
中间件 数据库 Python
Django——会话.Cookie&Session
Django——会话.Cookie&Session
|
6月前
|
存储 前端开发 搜索推荐
12:会话跟踪技术Cookie的深度应用与实践-Java Web
12:会话跟踪技术Cookie的深度应用与实践-Java Web
105 4
|
6月前
|
存储 缓存 JSON
【Web开发】会话管理与无 Cookie 环境下的实现策略
【Web开发】会话管理与无 Cookie 环境下的实现策略