当前位置: 首页 > news >正文

chain.doFilter(request,respnse)

过滤器的生命周期一般要经过的阶段

初始化

当容器第一次加载改过滤器时,init方法将被调用,该类在这个方法中包含了一个指向Filter Config对象的引用,通常在web.xml中init-param中配置了初始化的参数;

过滤

过滤器的大多数时间消耗在这里。DoFilter方法被容器调用,同时传入分别指向这个请求/响应链中的Servlet,Request,Servlet Response和Filter Chain对象的引用,然后过滤器在处理请求时,将处理任务传递给链中的下一个资源(通过调用Filter Chain对象引用上的doFIlter方法),之后在处理控制权返回该过滤器时处理的响应。

chain.doFIlter(request,response)将请求转发给过滤器链上的下一个对象(filter), 如果没有filter那就是你的请求的资源

析构

容器紧跟在垃圾回收之前调用destroy()方法,以便能够执行任何必须的清理代码

//不需要过滤的url

for(String url : this.excludeUrls){

if(requestUrl.equals(url)){

chain.doFilter(request,response);

return ;

}
}

if(user !=null){

//判断用户是否被踢出系统

if(dealWithUser(session ,rsp)){

chain.doFilter(request,respnse);

//不用return;

}

}esle{

//没有用户信息1.如果没有登陆不提示

//切换中英文

if(requestUrl.equals(“/…”)&&request.getParameter(“logined”)==null){
chain.doFilter(request,reposne);

return;

}

//没有用户信息,2已经登陆-弹出信息

//首次登陆,修改密码

if(requestUrl.equals(“/…”)&&request.getParameter(“logined”)==null){

String userNameForMod =(String) session.getAttribute(“usernameforfirst”);

if(null !=userNameForMod){

chain.doFilter(request,response);

return;

}

}

}

相关文章:

  • 【数据结构与算法】:快速排序和归并排序的非递归实现
  • 微软卡内基梅隆大学:无外部干预,GPT4等大语言模型难以自主探索
  • 设计模式|状态机模式(State Machine Pattern)
  • C++的stack和queue类(一):适配器模式、双端队列与优先级队列
  • ARM、X86、RISC-V三分天下
  • Android 14.0 SystemUI修改状态栏电池图标样式为横屏显示
  • Sybase ASE中的char(N)的坑以及与PostgreSQL的对比
  • 【机器学习】决策树(Decision Tree,DT)算法介绍:原理与案例实现
  • 如何使用Python中的logging模块进行日志记录?
  • 301永久重定向与302临时重定向的正确运用
  • 适用于 Windows 10 的 10 大免费数据恢复软件
  • Go语言中测试和性能
  • 速盾:服务器有cdn 带宽上限建议多少
  • HBase详解(4)
  • 云计算存在的安全隐患
  • 【347天】每日项目总结系列085(2018.01.18)
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • 03Go 类型总结
  • 5、React组件事件详解
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • HashMap剖析之内部结构
  • HTTP请求重发
  • JavaScript对象详解
  • Linux Process Manage
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • node.js
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • SpringBoot 实战 (三) | 配置文件详解
  • uni-app项目数字滚动
  • 基于Android乐音识别(2)
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 在Unity中实现一个简单的消息管理器
  • elasticsearch-head插件安装
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • (zt)最盛行的警世狂言(爆笑)
  • (二)fiber的基本认识
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (循环依赖问题)学习spring的第九天
  • (一)kafka实战——kafka源码编译启动
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .cn根服务器被攻击之后
  • .NET CORE Aws S3 使用
  • .net framework profiles /.net framework 配置
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • .net通用权限框架B/S (三)--MODEL层(2)
  • .NET业务框架的构建
  • /bin/rm: 参数列表过长"的解决办法
  • [Android Pro] AndroidX重构和映射