Apache Tomcat - Tomcat Native Downloads

会话追踪技术

会话:打开浏览器,建立连接,直到一方断开连接,会话才会结束;在一次会议中,可以有多次请求。

会话追踪:在多次请求间,共享数据

实现方式:

1、客户端会话跟踪技术----Cookie
2、服务端会话跟踪技术----Session

Cookie

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

基本使用

下面的网址,可以用来查找相关的插件代码,将其存储到pom.xml文件中

http://maven.apache.org/plugins/index.html

发送Cookie

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

Cookie cookie=new Cookie("username","zs");

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

response.addCookie(cookie);

获取Cookie

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

Cookie[] cookies=request.getCookies();

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

for(Cookie cookie:cookies){}

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

String name=cookie.getName();
if("username".equals(name)){
cookie.getName();
cookie.getValue();
//输出
}

原理

Cookie的实现是基于**HTTP协议**的
响应头:set-cookie
请求头:cookie

Cookie存活时间:

默认情况下,Cookie存储在浏览器内存中,当浏览器关闭,内存释放,则Cookie被销毁

持久化:setMaxAge:设置存活时间(单位:秒s)

正数:倒计时结束,Cookie自动删除

负数:默认值,关闭即销毁

零:立刻删除Cookie

Cookie存储中文:

注意:Cookie不能存储中文(可以进行转码操作)

举例:

//编码
URLEncoder.encode(value,"UTF-8"); //解码
URLDecoder.decode(value,"UTF-8");

Session

基本使用

//文件一
1、获取Session对象
HttpSession session=request.getSession();
2、存储数据
session.setAttribute("username","zs"); //文件二
3、获取Session对象
HttpSession session=request.getSession();
4、获取数据(从文件一中获取数据)
Object username=session.getSession("username");
System.out.println(username);

原理

Session是基于Cookie实现的

一次会话的多次请求之间,对象都是同一个(多个请求,地址都是同一个)

使用细节

Session钝化、活化:

钝化:服务器正常关闭后,Tomcat会自动将Session数据写入硬盘的文件中

活化:再次启动服务器后,从文件中加载数据到Session中

注意:Session不能够长时间存储相应数据;在打开浏览器一次并进行关闭操作后,再次打开同一文件的浏览器,其地址会发生改变

Session销毁:

1、默认情况下,无操作,30分钟后自动销毁

若是使用Session-config标签表示存储时间,单位(分钟minute)

2、调用Session对象的invalidate()方法(直接进行销毁)

session.invalidate();

Filter(接口、过滤器)

作用:拦截请求,从而实现特殊功能

快速入门

1、实现接口,并重写所有方法

2、配置拦截资源的路径---@WebServlet("")

3、放行,chain.函数();

我个人觉得,Filter和Servlet的结构有很大的相似之处

执行流程

1、放行后访问对应资源,资源访问完成后,仍会回到Filter中
2、再之后,执行的是**放行后逻辑**

注意:放行前,是对request数据的处理;放行后,是对response数据的处理

使用细节

Filter拦截路径配置:四种

1、指定某个具体路径
2、指定某个目录下的路径
3、指定为某个后缀名的路径
4、指定为所有路径

也可以实现过滤器链

Javaweb学习笔记第十四弹---对于Cookie和Filter的学习的更多相关文章

  1. VSTO学习笔记(十四)Excel数据透视表与PowerPivot

    原文:VSTO学习笔记(十四)Excel数据透视表与PowerPivot 近期公司内部在做一种通用查询报表,方便人力资源分析.统计数据.由于之前公司系统中有一个类似的查询使用Excel数据透视表完成的 ...

  2. Python学习笔记(十四)

    Python学习笔记(十四): Json and Pickle模块 shelve模块 1. Json and Pickle模块 之前我们学习过用eval内置方法可以将一个字符串转成python对象,不 ...

  3. python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法

    python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...

  4. 如鹏网学习笔记(十四)ASP.NET

    Asp.net笔记 一.Socket类 进行网络编程的类,可以在两台计算机之间进行网络通讯 过程: 向服务器发送指令: GET /index.html HTTP/1.1 Host:127.0.0.1: ...

  5. 《机器学习实战》学习笔记第十四章 —— 利用SVD简化数据

    相关博客: 吴恩达机器学习笔记(八) —— 降维与主成分分析法(PCA) <机器学习实战>学习笔记第十三章 —— 利用PCA来简化数据 奇异值分解(SVD)原理与在降维中的应用 机器学习( ...

  6. Android学习笔记(十四)——自定义广播

    //此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 我们除了可以通过广播接收器来接收系统广播, 还可以在应用程序中发送自定义的广播.下面我们来分别试一试发送自定义 ...

  7. Dynamic CRM 2013学习笔记(十四)复制/克隆记录

    经常有这样的需求,一个单据上有太多要填写的内容,有时还关联多个子单据,客户不想一个一个地填写,他们想从已有的单据上复制数据,克隆成一条新的记录.本文将介绍如何克隆一条记录,包括它的子单据以生成一条新的 ...

  8. JavaScript学习笔记(十四)——对象

    在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...

  9. Java框架spring 学习笔记(十四):注解aop操作

    回见Java框架spring Boot学习笔记(十三):aop实例操作,这里介绍注解aop操作 首先编写一个切入点HelloWorld.java package com.example.spring; ...

  10. Python学习笔记(十四):模块高级

    以Mark Lutz著的<Python学习手册>为教程,每天花1个小时左右时间学习,争取两周完成. --- 写在前面的话 2013-7-23 21:30 学习笔记 1,包导入是把计算机上的 ...

随机推荐

  1. jmeter中返回值提取并存储。

    jmeter中,关于对接口提取值如何存入CSV文件并且做到换列操作的处理.我这里简单介绍一下. 1.首先把接口调通(这个是必须条件),确认好需要提取存入csv的字段,这里以统计token跟userid ...

  2. ubuntu 20.04 更新镜像源

    首先备份系统自带的源,以防修改错误! 命令: sudo cp /etc/apt/sources.list /etc/apt/sources.list.back 1.修改系统镜像源 文件目录:/etc/ ...

  3. HTML clean input cache

    .html <input  type="search"  autocomplete ="off" />

  4. 1903021126-申文骏 实验一 19信计java-Markdown排版

    项目 内容 课程班级博客链接 19级信计班 作业要求链接 实验一 课程学习目标 大致学会Markdown排版 任务1:在博客园平台注册个人博客账号和加入班级博客 注册了博客园的个人账号,提交了博客申请 ...

  5. Android---mediaplayer 创建和调用顺序

    Android mediaframework创建mediaplayer // java层 ///frameworks/base/media/java/android/media/MediaPlayer ...

  6. 20200924--图像相似度(奥赛一本通P92 5多维数组)

    给出两幅相同大小的黑白图像(用0-1矩阵)表示,求它们的相似度.说明:若两幅图像在相同位置上的像素点颜色相同,则称它们在该位置具有相同的像素点.两幅图像的相似度定义为相同像素点数占总像素点数的百分比. ...

  7. 5ppm高精度自动同步标准化考场时钟系统

    自动同步标准化考场时钟系统------专业LED时钟厂家![点击进入]   学校考场医院车站GPS/NTP网络校时之组联网对时精度达5ppm原理剖析.        时间精度是根据各个用户所要求对LE ...

  8. vue 同一个子组件,两次赋值不同,dom不更新

    转自:https://blog.csdn.net/WO_JIAMIFENG/article/details/115250918 <div :key="inputkey"> ...

  9. cmd 下运行pyhon文件.py

    第一步: wind+R打开[运行],输入cmd,点击确定 第二步: ①输入:[cd]指定pyhon文件目录 ② cd C:\Users\pc\Desktop\test ③在指定目录下输入pyhon文件 ...

  10. mysql 设置相关

    告诉mysql客户端这边的文字编码 告诉mysql希望返回的结果集编码: set character_set_client=gbk; set character_set_results=gbk;   ...