【JavaWeb】16-Filter过滤器

MatterPort3D 数据集下载 【代码】MatterPort3D 数据集下载。 阅读详情

作用:过滤任意的请求和响应

使用

1. 编写一个过滤器类:
    实现Filter接口,必须重写doFilter方法,可选 重写init、destory方法
    
2. web.xml中配置过滤器(推荐):
    <filter>
        <filter-name></filter-name>
        <filter-class>org.class.jgs1904.filter.LifeFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>LifeFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    注意:多个过滤器会根据配置的次序依次执行
    
3. web3.0之后也可以使用注解进行配置
    @WebFilter("/*")
    注意:安装类的顺序(名称的字典顺序)依次执行
@WebFilter("/*")
public class LifeFilter implements Filter {

	/**
	 * 	执行过滤
	 * 	时机:每次请求和响应
	 * 	次数:每次请求和响应方法完整执行一次
	 */
	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {

		System.out.println("LifeFilter执行过滤...");
		
		// 放行请求
		chain.doFilter(request, response);
		
		System.out.println("LifeFilter执行过滤完毕...");
	}

	/**
	 * 	初始化
	 * 	时机:项目启动加载到过滤器配置时
	 * 	次数:一次
	 */
	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
		System.out.println("LifeFilter初始化...");
	}

	/**
	 * 	销毁
	 * 	时机:服务器正常关闭时
	 * 	次数:一次
	 */
	@Override
	public void destroy() {
		System.out.println("LifeFilter销毁...");
	}

}

生命周期

1. init:时机:项目启动加载到过滤器配置时;次数:一次
2. doFilter:时机:每次请求和响应;次数:每次请求和响应
3. destory:时机:服务器正常关闭时;次数:一次

实例:

  1. 统一解决请求和响应的乱码
public class EncodingFilter implements Filter{

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		
		// 解决请求乱码
		request.setCharacterEncoding("utf-8");

		// 解决响应乱码
		response.setContentType("text/html; charset=UTF-8");
		
		chain.doFilter(request, response);
		
	}
}
  1. 判断用户有没有登陆,如果没登陆,重定向到登陆页面
public class LoginFilter implements Filter {

	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		
		HttpServletRequest httpRequest = (HttpServletRequest) request;
		HttpServletResponse httpResponse = (HttpServletResponse) response;
		
		// 获取过滤的url地址
		String requestUrl = httpRequest.getRequestURL().toString();
		
		// 如果包含不拦截的页面,直接放行
		if (requestUrl.endsWith("/login.jsp") || requestUrl.endsWith("/regist.jsp") || requestUrl.endsWith(httpRequest.getContextPath() + "/")) {
			chain.doFilter(request, response);
			return;
		}
		
		// 如果包含不拦截的method,直接放行
		String method = httpRequest.getParameter("method");
		if ("login".equals(method) || "regist".equals(method) || "get".equals(method)) {
			chain.doFilter(request, response);
			return;
		}
		
		// 如果包含不拦截的路径,直接放行
		if (requestUrl.contains("/static")) {
			chain.doFilter(request, response);
			return;
		}
		
		// 从session中获取在线用户
		User onlineUser = (User)httpRequest.getSession().getAttribute("onlineUser");
		
		// 判断在线用户是否为空
		if (onlineUser == null) {
			System.out.println("拦截请求:" + requestUrl);
			httpResponse.sendRedirect(httpRequest.getContextPath() + "/user/login.jsp");
			return;
		}
		
		// 有在线用户直接放行
		chain.doFilter(request, response);
	}

}
从零开始写一个RTSP服务器(一)RTSP协议讲解 从零开始写一个RTSP服务器系列 从零开始写一个RTSP服务器(一)不一样的RTSP协议讲解 从零开始写一个RTSP服务器(二)RTP传输H.264(待写) 从零开始写一个RTSP服务器(三)一个传输H.264的RTSP服务器(待写) 从零开始写一个RTSP服务器(四)RTP传输AAC(待写) 从零开始写一个RTSP服务器(五)一个传输AAC的RTSP服务器(待写) 从零开始写一个RTSP服务器(... 阅读详情

相关推荐

Scratch离线版部署指南:解决资源缺失与页面显示异常问题

本文提供了一份详尽的Scratch离线版部署指南,旨在解决网络依赖导致的资源缺失与页面显示异常问题。通过从基础文件获取、自动化资源抓取到生产环境部署的完整流程,帮助教育工作者和开发者在无网络环境下搭建功能完整的本地Scratch编辑器,确保编程教学的顺利进行。

wine的专栏 1260

JavaWeb - 理(Listener)、发(Filter)、师(Servlet) 执行顺序/生命周期

一、执行顺序 启动的顺序:Listener-&gt;Filter-&gt;Servlet 简单记为:理(Listener)发(Filter)师(Servlet) 执行的顺序不会因为三个标签在配置文件中的先后顺序而改变。 同类别的定义顺序影响优先级,越靠前,优先级越高。 如果web.xml中配置了&lt;context-param&gt;,初始化顺序:context-param &gt; ...

2495

从DBC到ARXML:用RTA-CAR7实现车载通信协议栈自动化生成全流程

本文详细介绍了如何利用ETAS RTA-CAR7工具链,特别是ISOLAR-A和RTA-BSW ConfGen,实现从车载通信DBC文件到AUTOSAR ARXML系统描述文件,再到基础软件(BSW)协议栈代码的自动化生成全流程。该流程通过深度配置、信号路由、PDU复用及规则定制,大幅提升开发效率与一致性,是应对现代汽车电子复杂网络开发的关键实践。

brandy的博客 220

java过滤器的生命周期_Java中Servlet Filter生命周期以及例子

Java中Servlet Filter生命周期以及例子web.xml 中声明的每个filter在每个虚拟机中仅仅只有一个实例,因此它的生命周期分为下面4个阶段。Filter生命周期1. 加载和实例化Web 容器启动时,即会根据 web.xml 中声明的 filter 顺序依次实例化这些 filter。2. 初始化Web 容器调用 init(FilterConfig) 来初始化过滤器。容器在调用该方...

weixin_39966053的博客 581

XGBoost特征重要性为0的问题:深度解析与应对策略

在机器学习领域,XGBoost(Extreme Gradient Boosting)作为一款高效且强大的集成学习算法,已经被广泛应用于各类预测任务中。然而,在实际应用过程中,许多数据科学家和工程师们遇到了一个令人困惑的现象——某些特征的重要性值为0。这不仅影响了模型的解释性,还可能导致特征选择过程中的误判。本文将深入探讨这一问题,分析其背后的原因,并提供相应的解决方案。在深入探讨特征重要性为0的问题之前,我们首先需要了解XGBoost是如何计算特征重要性的。XGBoost提供了三种常见的特征重要性计算方法:

cda2024的博客 1704

R语言分段回归

1.利用虚拟变量进行线性回归 (MEdata.csv的数据来源:https://github.com/ChenQihome9/优快云-Data-Library/blob/master/MEdata.csv) 问题13:针对TAX~GDP,使用分段回归方法,找到其回归方程。编程,并根据程序结果叙述如下几方面问题:(1)分几段最佳?(不超过5段内)(2)分段位置定在哪儿最佳?(3)写出最佳方...

ChenQihome9的博客 1万+

Java 过滤器Filter

Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。Filter接口中有一个doFilter方法,当开发人员编写好Filter,并配置对哪个web资源进行拦截后,Web服务器每次在调用web资源的service方法之前,都会先调用一下filter的doFilter方法。过滤器的执行顺序有两种。

baidu_32935221的博客 3125

微机原理-基于8086电压报警2.5V仿真系统设计

*单片机设计介绍,微机原理-基于8086电压报警2.5V仿真系统设计。

2201_75940997的博客 1082

JavaWeb 三大组件

目录 Servlet Filter:过滤器 细节 1. web.xml配置 2. 过滤器执行流程 3. 过滤器生命周期方法 4. 过滤器配置详解 5. 过滤器链(配置多个过滤器) 案例:登录验证 Listener:监听器 事件监听机制 ServletContextListener 步骤 Servlet Servlet_South.return-优快云博客 Filter:过滤器 web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能。

South.return 1012

NCCL分布式训练中ibv_reg_mr_iova2内存分配失败的3种解决方案(附详细排查流程)

本文深入探讨了NCCL分布式训练中ibv_reg_mr_iova2内存分配失败的3种解决方案,包括快速临时修复、标准系统配置和PAM模块根治方案。详细分析了错误原因,提供了完整的排查流程和性能优化建议,帮助开发者高效解决RDMA网络环境下的内存锁定问题。

nut55的博客 624

以 Cloud 为核心的设备 mTLS 证书体系:从产品需求到 OP-TEE 安全落地

本文探讨了以云端为核心的物联网设备mTLS证书体系构建方案。文章从产品需求出发,分析了云端必须采用mTLS+证书体系管理设备身份的原因,指出静态Token方案的三大缺陷:身份不可控、运营不可控和审计不可控。重点阐述了mTLS在产品中的核心功能是加密传输和双向认证,并详细列出了云端PKI、设备注册中心等必备组件。在设备侧,强调必须通过OP-TEE技术保护私钥安全,提出了一个包含密钥生成、CSR导出等功能的TA设计方案。最后,文章给出了云端端到端流程示例,说明如何将证书生命周期管理转化为可运营的产品能力,包括自

Interview_TC的博客 640

【JavaEE-Servlet】Filter过滤器详解

Filter过滤器何时使用: 需要限制用户访问某些资源时; 需要处理请求时先处理某些资源时; 需要对服务器响应的内容处理后再响应时。

qq_63691275的博客 1436

3D点云-CVPR 2020-PF-Net: Point Fractal Network for 3D Point Cloud Completion

是一种专门为三维点云补全设计的深度学习模型。点云补全实际上和图片补全是一个逻辑,都是采用GAN模型的思想来进行补全,在图片补全中,将部分像素点删除并且标记,然后卷积特征提取预测、判别器判别,来训练模型,生成的像素点与原来像素点比较完成模型的训练。而PF-Net就是采用GAN的思想在3D点云上的应用。

404 Not Found 2369

JavaWeb学习打卡16(JavaBean实体类、Filter 过滤器详解)

本文介绍了Java Web开发中的几个核心概念:1) Java Bean实体类的编写规范(无参构造、私有属性、get/set方法),用于实现ORM数据库映射;2) MVC三层架构模式(Model处理业务逻辑和数据库操作,View负责展示,Controller接收请求并控制流程),相比早期架构更利于维护;3) Filter过滤器的实现步骤(导入依赖、编写过滤器类、配置web.xml),示例演示了字符编码过滤器的开发过程,包括初始化、执行过滤链和销毁的生命周期方法。文章通过实际代码展示了Servlet和Filt

2301_80044465的博客 1710

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

JavaWeb——登录(9/16):登录校验-Filter-入门(过滤器(Filter)概述、过滤器的工作流程、过滤器的实现步骤、启用过滤器支持、执行测试)

过滤器(Filter)是 JavaWeb 三大组件(Servlet、Filter、Listener)之一,主要用于。学习自:黑马程序员——JavaWeb课程。Spring Boot 默认不支持。并在请求处理前后执行。,需要在启动类上添加。

li13437542099的博客 1043

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

JavaWeb——登录(10/16):登录校验-Filter-详解(执行流程-拦截路径、过滤器的拦截路径配置、过滤器的测试与验证)

过滤器(Filter)在 Web 应用中用于拦截请求,并在请求处理前后执行特定逻辑。学习自:黑马程序员——JavaWeb课程。默认情况下,过滤器可以拦截所有请求(),但我们可以自定义拦截特定路径。

li13437542099的博客 653

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

JavaWeb——登录(16/16): 总结对比(三种会话跟踪方案的优缺点对比、Filter(过滤器)与 Interceptor(拦截器)对比)

维度Filter作用范围所有请求(Servlet 级别)Controller 请求(Spring MVC 级别)依赖关系Servlet 容器Spring 上下文执行顺序先于 Interceptor后于 Filter适用场景全局预处理(如压缩、CORS)业务逻辑处理(如鉴权、日志)

li13437542099的博客 869

JavaWeb——登录(11/16):登录校验-Filter-详解(过滤器链)(概述、执行流程、执行顺序、测试与验证)

请求到达服务器后,会依次经过多个过滤器的处理,最终再到达目标资源(如 Controller)。过滤器链的执行顺序由。决定,放行后的请求会进入下一个过滤器,直到所有过滤器执行完毕,最终访问目标资源。在 Web 应用中,多个过滤器可以被串联在一起,形成。等场景非常重要,在实际开发中可结合需求进行优化。如果不指定执行顺序,Spring Boot。,观察过滤器链的执行顺序。

li13437542099的博客 679

JavaWeb——登录(12/16):登录校验-Filter-实现登录校验过滤器(需求分析、工作流程图、代码实现、测试与验证)

在企业级应用中,用户必须先,获取服务器返回的,之后每次请求业务接口时,需要在中携带该令牌,以完成身份校验。为了避免在每个接口中都编写相同的校验逻辑,可以使用统一拦截请求,对 JWT 令牌进行解析和验证,从而确保用户的身份合法性。

li13437542099的博客 927

JavaWeb:过滤器 Filter、监听器 Listener

介绍了过滤器 Filter、监听器 Listener 的相关内容,以及用过滤器实现权限拦截

taiyang3285的博客 795

JavaWeb--- Filter(过滤器)学习

Filter(过滤器) 处理中文乱码 登录验证…… 1、xml依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/

qq_42847094的博客 1691

16-Javaweb-listener & filter

目录 一、listener(了解) 监听器 filter(★) 过滤器 1-1 listener 1-1-1 监听内容 1-2 监听三个对象的创建和销毁 1-3 监听三个对象属性的变化 1-4 监听session中javabean的状态 1-5 使用步骤 1-6 演示各个监听器 1-6-1 监听三个对象的创建和销毁 1-6-2 监听三个对象属性的变化(添加 替换 删除) 1-6-3 监听session中javabean的状态 二、 案例1-自动登录 2-1 filt...

qq_38247809的博客 603

java 资源路径 filter_JavaWeb 之 Filter:过滤器

一、Filter 概述1、概念Filter 过滤器是 JavaWeb 的三大组件之一。(Servlet、Filter、Listener)Filter 过滤器它是 JavaEE 的规范,可以在浏览器以及目标资源之间起到一个过滤的作用,它的作用是:拦截请求,过滤响应。web 中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能。2、作用拦截请求常见的应用场景有:① 登录验证;...

weixin_40003046的博客 446

诚之和:带你详细了解JavaWeb中的Filter过滤器

过滤器Filter作为JavaWeb比较重要的组件之一,同时也是JavaEE的规范,也是一个接口。下面为大家介绍一下JavaWeb中的Filter过滤的具体使用,并体验在JavaWeb项目中Filter过滤器的作用。 一、什么是过滤器 1.Filter过滤器的作用:拦截请求 2.拦截请求常见场景: (1)权限检查 (2)日记操作 (3)事务管理 1.1 使用步骤 Filter 过滤器的使用步骤: 1、编写一个类去实现Filter 接口 2、实现过滤方法doFilter() 3、到we

weixin_45378258的博客 213

15. JavaWeb 三大组件之 过滤器 Filter

15.1 官方文档 15.1.1 文档:java_ee_api_中英文对照版.chm 15.2 Filter 过滤器说明 15.2.1 为啥要过滤器-需求示意图 一图胜千言 15.2.2 过滤器介绍 Filter 过滤器它是 JavaWeb 的三大组件之一(Servlet 程序、Listener 监听器、Filter 过滤器) Filter 过滤器是 JavaEE 的规范,是接口 Filter 过滤器它的作用是:拦截请求,过滤响应。 应用场景 ● 权限检查 ● 日记操作 ● 事务管理 15.

要学就学灰太狼的博客 492

JavaWeb——(16)Filter与Listener

一、Listener监听器 监听器一般用于监听Web应用中的某些对象(例如:HttpServletRequest、HttpSession、ServletContext),比如对象的创建、销毁、属性变化、修改和删除等动作的发生,然后做出相应的响应处理。当范围对象状态发生变化的时候,服务器会自动调用监听器对象中的方法。 1.1监听机制 名称 备注 事件 对象发生了某些改变 事件源 发生事件的源头 监听器 用于监听指定时间的对象 注册监听 ...

小唐要努力的博客 566
上一篇: 【JavaWeb】15-Servlet
下一篇: 【JavaWeb】17-利用反射改写servlet与beanutils的使用
JeffHan^_^
博客等级 码龄7年 1万+粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JeffHan^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值