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

做网站怎么做放大图片wordpress 去除html

做网站怎么做放大图片,wordpress 去除html,广告设计创意,网站底部源码文章目录 前言一、什么是过滤器 Filter?二、Spring Boot 中使用 Filter 的方式1. 使用 Component 注解2. 使用 FilterRegistrationBean 显式注册 三、自定义过滤器示例1. 引入必要依赖2. 创建一个自定义 Filter3. 使用 FilterRegistrationBean 显式注册 四、多个 Fi…

文章目录

  • 前言
  • 一、什么是过滤器 Filter?
  • 二、Spring Boot 中使用 Filter 的方式
      • 1. 使用 `@Component` 注解
      • 2. 使用 `FilterRegistrationBean` 显式注册
  • 三、自定义过滤器示例
    • 1. 引入必要依赖
    • 2. 创建一个自定义 Filter
    • 3. 使用 FilterRegistrationBean 显式注册
  • 四、多个 Filter 的执行顺序
  • 五、Filter 与 Interceptor 和 AOP 的区别
  • 六、过滤器实现登录校验
  • 总结


前言

在Web开发中,我们常常需要对请求做一些统一的处理,例如:请求日志记录、权限验证、跨域处理等。Spring Boot 中除了可以使用拦截器(Interceptor)和AOP,还可以使用过滤器(Filter)。


一、什么是过滤器 Filter?

Filter 是 Servlet 规范中的一个组件,用于在请求到达 Servlet 之前或响应返回客户端之前进行预处理或后处理。它可以用来实现:

  • 请求日志记录
  • 用户认证与权限检查
  • 参数过滤与包装
  • 编码设置
  • 防止 XSS 攻击等

它的核心接口是 javax.servlet.Filter


二、Spring Boot 中使用 Filter 的方式

在 Spring Boot 中,有两种方式注册 Filter:

1. 使用 @Component 注解

直接在自定义的 Filter 类上加上 @Component 注解即可自动注册到 Spring 容器中。

2. 使用 FilterRegistrationBean 显式注册

可以通过创建一个 FilterRegistrationBean 的 Bean,来手动注册过滤器,并设置过滤路径、顺序等信息。


三、自定义过滤器示例

1. 引入必要依赖

Spring Boot 的 Web 项目只需要依赖如下 starter(通常已包含在创建项目时):

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>

2. 创建一个自定义 Filter

import jakarta.servlet.*;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Component;import java.io.IOException;@Component
public class MyLogFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {System.out.println("MyLogFilter 初始化...");}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {HttpServletRequest req = (HttpServletRequest) request;System.out.println("请求路径:" + req.getRequestURI());// 放行请求chain.doFilter(request, response);}@Overridepublic void destroy() {System.out.println("MyLogFilter 销毁...");}
}

运行项目访问接口时,你会在控制台看到日志输出。


3. 使用 FilterRegistrationBean 显式注册

如果你想更细粒度地控制 Filter,例如:设置过滤路径或顺序,可以使用如下方式:

import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class FilterConfig {@Beanpublic FilterRegistrationBean<MyLogFilter> registerLogFilter() {FilterRegistrationBean<MyLogFilter> registrationBean = new FilterRegistrationBean<>();registrationBean.setFilter(new MyLogFilter());registrationBean.addUrlPatterns("/api/*"); // 指定过滤路径registrationBean.setOrder(1); // 设置执行顺序,值越小优先级越高return registrationBean;}
}

四、多个 Filter 的执行顺序

如果你注册了多个 Filter,执行顺序取决于:

  • 使用 @Component 的方式时,默认顺序不确定(但可以使用 @Order 注解控制顺序)
  • 使用 FilterRegistrationBean 的方式时,可以通过 setOrder() 方法设置优先级

示例:

@Component
@Order(2)
public class SecondFilter implements Filter {// ...
}

五、Filter 与 Interceptor 和 AOP 的区别

特性/维度FilterInterceptor(拦截器)AOP(切面)
所属层Servlet 规范Spring MVCSpring AOP
作用对象HttpServletRequestController 方法任意 Bean 方法
控制范围Servlet 全请求生命周期请求到达 Controller 前后方法执行前后
应用场景日志、权限、跨域、编码处理权限校验、接口日志等事务、缓存、日志等通用逻辑

六、过滤器实现登录校验

拦截所有 /admin/** 路径下的请求,如果请求头中没有携带 token 参数,则返回 401。

@Component
@Order(1)
public class AuthFilter implements Filter {@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {HttpServletRequest req = (HttpServletRequest) request;HttpServletResponse resp = (HttpServletResponse) response;String uri = req.getRequestURI();if (uri.startsWith("/admin/")) {String token = req.getHeader("token");if (token == null || token.isEmpty()) {resp.setStatus(HttpServletResponse.SC_UNAUTHORIZED);resp.getWriter().write("401 Unauthorized");return;}}chain.doFilter(request, response);}
}

访问 /admin/** 路径时,必须在请求头中携带 token。


总结

  • Filter 的概念和作用
  • 使用 @ComponentFilterRegistrationBean 的两种注册方式
  • 多个过滤器的顺序控制
  • Filter 与 Interceptor、AOP 的区别
  • 实际案例:请求日志、登录校验
http://www.dtcms.com/wzjs/571947.html

相关文章:

  • 做网站用的腾讯云服务器佛山市锵美装饰有限公司网站建设案例
  • 那个网站做二手车好网站 百度搜不到
  • 企业网站模板哪个好金坛网页定制
  • 河源市住房建设局网站网络平台推广广告费用
  • php asp网站开发wordpress改后台登录路径
  • 昆明网站建设创意上海设计展2021室内设计
  • 成都网站搜索排名优化公司做特殊任务的网站
  • 建设什么样的网站月入一万用哪个程序做网站收录好6
  • 国外免费可以做网站的服务器做网站php软件
  • 河北做网站的公司医疗网站建设基本流程图
  • 网站访客qq获取系统 报价在哪网站建设
  • 网站如何做微信推广成都app制作开发
  • 做网站学什么代码做网站维护要什么专业
  • 旅游网站建设目标意义搜索引擎seo优化
  • wordpress模板建站百度seo2022
  • 广州互帮物流哪家公司做的网站服务器上 网站
  • 旅行社网站模版企业登记网络服务平台
  • 如何实现网站的纯静态化网图搜索识别
  • 宣传网站模板珠海招聘网最新招聘信息
  • 湖南微信网站wordpress 缩略图变形
  • 专注网站建设微信开发太原网页设计师招聘信息
  • 忻州网站建设培训小型建筑公司有哪些
  • 免费网站服务器2020可以注册的网站
  • 佛山p2p网站建设新开传奇新服网手机版
  • 网站建设在整体布局有哪些要求杭州旺道企业服务有限公司
  • 网站排版asp源码 自助建站
  • 阳信住房和城乡建设厅网站wordpress 传到哪里去
  • 电子商务网站平台建设预算不包括河南网站建设37518
  • 门户网站app开发企业品牌策划书
  • 网站开设作风建设专栏黄石网站设计