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

网站备案 强制photoshop网站模板

网站备案 强制,photoshop网站模板,自己制作wordpress plugin,温州品牌网站建设在构建Web应用时,我们经常需要在请求进入Controller之前或响应返回客户端之前进行一系列的预处理或后处理操作。比如记录请求日志、进行权限校验、实现跨域请求处理等。此时,Filter(过滤器)就成了我们常用的技术手段之一。 Sprin…

在构建Web应用时,我们经常需要在请求进入Controller之前或响应返回客户端之前进行一系列的预处理或后处理操作。比如记录请求日志、进行权限校验、实现跨域请求处理等。此时,Filter(过滤器)就成了我们常用的技术手段之一。

Spring Boot对Servlet规范提供了良好的支持,其中也包括对Filter的自动注册和自定义配置。在本文中,我们将深入讲解Spring Boot中Filter的工作机制、注册方式、执行顺序及其在实际开发中的典型应用场景。


一、什么是Filter?

Filter是Java Servlet规范中的组件之一,它位于Servlet容器中请求链的中间位置,主要用于对进入Servlet的请求或从Servlet返回的响应进行过滤处理。

Filter的典型用途包括:

  • 请求日志记录

  • 权限验证

  • XSS过滤

  • 跨域支持(CORS)

  • 内容压缩(如Gzip)


二、Spring Boot中使用Filter的两种方式

1. 通过@WebFilter注解 + @ServletComponentScan扫描

这是直接遵循Servlet规范的方式,适合较简单的应用场景。

 

java

@WebFilter(filterName = "logFilter", urlPatterns = "/*") public class LogFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("请求进入LogFilter..."); chain.doFilter(request, response); System.out.println("响应离开LogFilter..."); } }

在启动类上加上:

 

java

@SpringBootApplication @ServletComponentScan public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }

2. 通过@Bean方式注册Filter(推荐)

这种方式更加灵活,也更符合Spring Boot的编程风格。

 

java

复制编辑

@Configuration public class FilterConfig { @Bean public FilterRegistrationBean<LogFilter> logFilter() { FilterRegistrationBean<LogFilter> registrationBean = new FilterRegistrationBean<>(); registrationBean.setFilter(new LogFilter()); registrationBean.addUrlPatterns("/*"); registrationBean.setOrder(1); // 控制执行顺序 return registrationBean; } }


三、Filter的执行顺序控制

在实际项目中,我们可能会配置多个过滤器,例如日志记录、权限控制、跨域处理等。这时候就需要明确各个Filter的执行顺序。

使用FilterRegistrationBean时,可以通过setOrder(int order)设置执行顺序,数字越小,优先级越高。


四、Filter与Interceptor的区别

特性FilterInterceptor
所属规范Java EE Servlet规范Spring MVC框架
作用范围Servlet请求(包括静态资源)Controller请求
使用场景安全验证、日志记录、XSS过滤等登录检查、权限控制、数据封装等
生命周期控制由Servlet容器管理由Spring容器管理
配置方式注解或Bean注册实现HandlerInterceptor并注册


五、常见使用场景实战

1. 请求日志打印
 

java

public class RequestLogFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) request; System.out.println("请求路径:" + httpRequest.getRequestURI()); chain.doFilter(request, response); } }

2. 简单的权限校验
 

java

public class AuthFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) request; String token = httpRequest.getHeader("Authorization"); if (token == null || !token.equals("valid-token")) { HttpServletResponse httpResponse = (HttpServletResponse) response; httpResponse.sendError(HttpServletResponse.SC_UNAUTHORIZED, "权限不足"); return; } chain.doFilter(request, response); } }


六、结语

Filter是构建Web应用不可或缺的工具,掌握其工作机制和注册方式,能够让你在项目开发中更加得心应手。相比于Spring MVC中的Interceptor,Filter 23ph.zghaa.name 更接近底层,控制更精细,适用于一些底层逻辑处理。

建议在项目初期就规划好Filter的使用结构,以避免后期混乱,同时注意合理划分职责和顺序,避免性能问题和请求冲突。

http://www.dtcms.com/wzjs/616893.html

相关文章:

  • 建设部网站投诉核查个人网站 目的
  • 网站 栏目管理什么做的网站推广
  • 企业信息网站腾讯短网址生成
  • 厦门网站seo哪家好茂名网站开发
  • 要是360网站不安全怎么做毕业季网页制作素材
  • 用微信怎么做商城网站吗网络策划营销
  • 文学类网站怎么做顺德做网站那家好
  • 网站怎么做百度商桥网站开发流程6个阶段
  • 信用中国门户网站建设方案品质好货
  • 爱站关键词挖掘软件喜欢做网站的行业
  • 网络公司排行国内seo网站设计联系方式
  • 梅河口城乡建设网站宁波网站推广平台咨询
  • 网站内链怎么做合肥建站软件
  • 网站推广策划案格式及范文外贸建站模板价格
  • 做动漫网站的心得体会国内做网站用的程序
  • 电脑制作网站总么做有哪些网站可以免费发布广告
  • 做网站用discuz还是wp免费不收费的app
  • 郑州做网站建设公司排名什么网站做调查能赚钱吗
  • wordpress 上传网站吗windows主机 wordpress 防盗链
  • 四平英文网站建设网页禁止访问怎么解决
  • 更改网站的布局做美团一样的网站需要多少钱
  • 网站制作时如何分析竞争对手网站开发需求描述
  • 广州网站建设哪个好扬州网站制作哪家好
  • 学校做网站方案html网站开发项目
  • 公司建设网站重要性省级网站 开发建设 资质
  • 五百亿网站建设创世网站建设 优帮云
  • 网站开发年薪沈阳网站建设公司报价
  • 网站建设 策划方案书一级a做爰片i网站
  • 网站监测怎么做网站备案到期
  • 短视频制作完成网站百年人寿保险公司官网