首页 > 其他分享 >Cookie Session 拦截器(Filter)

Cookie Session 拦截器(Filter)

时间:2023-05-25 22:14:45浏览次数:34  
标签:Web 拦截器 Session Filter session Cookie cookie

1、Cookie

1.1什么是Cookie

  • Cookie是在浏览器访问Web服务器的某个资源时,由Web服务器在HTTP响应消息头中附带传送给浏览器的一小段数据

  • 一旦Web浏览器保存了某个Cookie,那么它在以后每次访问该Web服务器时,都应在HTTP请求头中将这个Cookie回传给Web服务器。

  • 一个Cookie主要由标识该信息的名称(name)和值(value)组成
    image

1.2使用流程

在服务器中创建Cookie
Cookie cookie = new Cookie(key,value);
设置cookie的编码格式

点击查看代码
Cookie cookie = new Cookie(
    URLEncoder.encode("姓名","UTF-8"),
    URLEncoder.encode("张三","UTF-8"));
设置Cookie的生命周期
  • setMaxAge
  • 大于0,存在指定的秒
  • 等于0,直接删除
  • 小于0,一般是-1 ,保存至浏览器关闭

设置cookie的存储路径
setPath
cookie设置路径,其实就是设置cookie的读取范围

2、Session

2.1Session使用

Session作用域:拥有存储数据的空间,作用范围是一次会话有效

  • 一次会话是使用同一浏览器发送的多次请求。一旦浏览器关闭,则结束会话
  • 可以将数据存入Session中,在一次会话的任意位置进行获取
  • 可传递任何数据(基本数据类型、对象、集合、数组)

2.2Session的使用流程

session是服务器端自动创建的,通过request对象获取
HttpSession session=request.getSession();
Session保存数据,setAttribute(属性名,Object)保存数据到session中
session.setAttribute("key",value);//以键值对形式存储在session作用域中。
Session失效
session.setMaxInactiveInterval(60*60);//设置session最大有效期为一小时 session.invalidate();//手工销毁

2.3session域与请求域request的区别

  • request是一次请求有效,只有一次请求转发内数据可以获得
  • session是一次会话内有效,无论请求转发还是重定向都是可以获得数据的

3、过滤器(Filter)

image

3.1实现过程

  • 编写Java类实现Filter接口

  • 在doFilter方法中编写拦截逻辑

  • 设置拦截路径

3.2拦截目标设置()

在自定义的Filter类上使用注解@WebFilter(value=“/过滤目标资源”)

3.3过滤器优先级

在一个Web应用中,可以开发编写多个Filter,这些Filter组合起来称之为一个Filter链。
优先级:

  • 如果为注解的话,是按照类全名称的字符串顺序决定作用顺序

  • 如果web.xml,按照 filter-mapping注册顺序,从上往下

  • web.xml配置高于注解方式

  • 如果注解和web.xml同时配置,会创建多个过滤器对象,造成过滤多次。

3.4拦截放行

Chain.doFilter(request, response);

注意事项

如果是在一个页面产生请求转发的指令,而拦截器未对该页面进行拦截,则会跳过拦截器,因为这是一次请求,只发生在服务器内部。如果使用重定向则可以成功拦截。

标签:Web,拦截器,Session,Filter,session,Cookie,cookie
From: https://www.cnblogs.com/qiyuancc/p/17433103.html

相关文章

  • mongodb--Filters具体用法
    在MongoDB中,Filter是用于过滤MongoDB文档的工具,常用于查询、更新和删除文档时指定查询条件。在Java驱动程序中,Filter接口定义了一系列过滤方法,例如eq、gt、lt等等,可以根据需要选择合适的过滤方法来创建过滤条件。......
  • cartographer重要模块——motion_filter
    运动滤波,间隔一段时间、一段距离和角度,对odometry的数据进行关键帧采样。absl::optional<MotionFilter>pose_graph_odometry_motion_filter;if(trajectory_options.has_pose_graph_odometry_motion_filter()){LOG(INFO)<<"Usingamotionfilterforaddingodom......
  • 【Java基础】Java8 使用 stream().filter()过滤List对象(查找符合条件的对象集合)
    本篇主要说明在Java8及以上版本中,使用stream().filter()来过滤List对象,查找符合条件的集合。一、集合对象定义集合对象以学生类(Student)为例,有学生的基本信息,包括:姓名,性别,年龄,身高,生日几项。我的学生类代码如下:packagecom.iot.productmanual.controller;importio.swagger.annota......
  • Java Web三大组件之Filter过滤器
    JavaWeb三大组件(Servlet、Filter、Listener)1、Filter过滤器概念生活中的过滤器:净水器,空气净化器,大山里的土匪等JavaWeb中的过滤器:当浏览器访问服务器资源时,过滤器就会拦截浏览器发过来的请求,实现一些特别的功能作用:一般用于完成通用的操作,如登录验证,身份验证,统一字符编码和敏感字......
  • 记录一下springboot配置filter之后后端获取不到Authorization问题
    fitler中的添加headers是用逗号隔开的,如content-type,Authorization .......原先代码:res.addHeader("Access-Control-Allow-Headers","content-type");修改后:res.addHeader("Access-Control-Allow-Headers","content-type,Authorization");......
  • 编写javaweb用到的基本依赖,mybatis-config.xml代码,SqlSessionFactoryUtils.java
    这篇文章仅仅作为记录,供以后复制粘贴使用pom.xml<dependencies><!--Servlet--><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</vers......
  • .Net6自定义拦截器
    .Net6自定义拦截器拦截器是Aop(面向切面编程)的思想指的是不改变原代码封装的前提下去实现更多功能这里通过.net的特性(给一个目标对象添加一段配置信息)的方式去实现拦截器功能新建一个特性namespaceCorePolly{publicclassTestAttribute:Attribute{publ......
  • 【xhs】笔记更新监控,x-s、x-t、a1、web_session
    本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删!标题环境win10、macPython3.9node.jsv4.16x-s、x-t、a1、web_session获取博主详细信息defget_use......
  • day103- javaweb-cookie,session
    cookie,session1.会话session用户打开浏览器,点击链接,访问web资源,关闭浏览器,称为一次会话2.保存会话的技术cookie:客户端技术,相应请求session:服务器技术,将信息和数据放在session中 session与cookie的区别:cookie是吧用户的数据写给用户的浏览器,浏览器保存,可以保存多个s......
  • springboot自定义拦截器
    之前使用过滤器实现了拦截没有登录的请求,现在使用springboot的拦截器实现1.LoginCheckInterceptor.javapackagecom.minqiliang.interceptor;importcom.alibaba.fastjson.JSONObject;importcom.minqiliang.pojo.Result;importcom.minqiliang.utils.JwtUtils;importlomb......