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

百度免费网站建设营销是什么意思

百度免费网站建设,营销是什么意思,网络安全管理系统,长沙seo男团Spring中的过滤器和拦截器 一、引言 在Spring框架中,过滤器(Filter)和拦截器(Interceptor)是实现请求处理的两种重要机制。它们都基于AOP(面向切面编程)思想,用于在请求的生命周期…

Spring中的过滤器和拦截器

一、引言

在Spring框架中,过滤器(Filter)和拦截器(Interceptor)是实现请求处理的两种重要机制。它们都基于AOP(面向切面编程)思想,用于在请求的生命周期中插入额外的处理逻辑。过滤器和拦截器虽然有相似之处,但在实现原理、触发时机、使用范围等方面存在明显差异。本文将深入探讨Spring中的过滤器和拦截器,并通过代码示例展示它们的具体应用。

二、过滤器和拦截器的实现与区别

1、过滤器(Filter)的实现

过滤器是基于Servlet规范的一部分,用于在请求进入Servlet之前或响应离开Servlet之后进行拦截处理。在Spring Boot项目中,可以通过实现Filter接口并使用@WebFilter注解来创建过滤器。

1.1、过滤器的代码示例
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;@WebFilter(urlPatterns = "/*")
public class TestFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {System.out.println("过滤器:执行 init 方法。");}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {System.out.println("过滤器:开始执行 doFilter 方法。");// 请求放行filterChain.doFilter(servletRequest, servletResponse);System.out.println("过滤器:结束执行 doFilter 方法。");}@Overridepublic void destroy() {System.out.println("过滤器:执行 destroy 方法。");}
}

2、拦截器(Interceptor)的实现

拦截器是Spring框架提供的一个组件,它基于动态代理实现,可以在请求的多个阶段进行拦截处理,如请求到达Controller之前、之后以及视图渲染之后。

2.1、拦截器的代码示例
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@Component
public class TestInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("拦截器:执行 preHandle 方法。");return true;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println("拦截器:执行 postHandle 方法。");}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println("拦截器:执行 afterCompletion 方法。");}
}

三、过滤器和拦截器的区别

在这里插入图片描述

1、实现原理不同

过滤器(Filter)是基于Java Servlet规范的一部分,它的工作原理是函数回调。在过滤器中,doFilter方法是核心,它接收一个FilterChain对象作为参数,这个对象代表过滤器链中的下一个过滤器或目标资源(如Servlet)。通过调用filterChain.doFilter(request, response),过滤器可以控制请求的流动,决定是否将请求传递给下一个过滤器或目标资源。这种机制允许开发者在请求处理的不同阶段插入自定义逻辑,如身份验证、日志记录等。

拦截器(Interceptor)则是Spring框架提供的一个高级功能,它基于Java的动态代理机制实现。拦截器可以拦截进入Controller之前的请求,Controller处理之后的请求,以及响应完成后的处理。拦截器的实现依赖于HandlerInterceptor接口,开发者需要实现该接口的preHandlepostHandleafterCompletion方法。这些方法分别在请求处理的不同阶段被调用,允许开发者在请求的前后插入逻辑,如权限检查、数据预处理等。

2、使用范围不同

过滤器的使用范围受限于Servlet容器,因此它们只能在Web应用程序中使用。过滤器的作用域是整个Web容器,可以对所有的请求进行过滤,包括对静态资源(如图片、CSS、JavaScript文件)的请求。

拦截器的使用范围则更广,因为它是Spring框架的一部分,不依赖于Servlet容器。这意味着拦截器不仅可以在Web应用程序中使用,还可以在任何Spring管理的应用程序中使用,如非Web的Spring应用。这使得拦截器的使用更加灵活,可以跨越不同的应用类型。

3、触发时机不同

过滤器的触发时机是在请求进入Servlet容器后,但在到达具体的Servlet之前,以及在响应离开Servlet容器之后。这意味着过滤器可以在请求被Spring的DispatcherServlet处理之前或之后执行。

拦截器的触发时机则与过滤器不同。拦截器在请求进入Servlet容器后,在到达Controller之前被触发,以及在Controller处理请求之后和响应完成后。这允许拦截器在请求处理的更细粒度的阶段插入逻辑。

4、拦截的请求范围不同

过滤器可以拦截所有进入Servlet容器的请求,包括对静态资源的请求。这意味着过滤器可以用来处理如请求日志、请求限流、请求内容的修改等通用功能。

拦截器主要拦截发送到Controller的请求。由于拦截器是Spring框架的一部分,它们只能拦截那些由Spring MVC的DispatcherServlet处理的请求。这意味着拦截器不能拦截对静态资源的请求,但可以拦截对Controller的请求,这使得拦截器非常适合用于处理与业务逻辑相关的任务,如权限检查、业务日志记录等。

通过这些详细的比较,我们可以更清晰地理解过滤器和拦截器的不同之处,以及它们在实际开发中的适用场景。

四、总结

过滤器和拦截器在Spring框架中扮演着重要的角色,它们提供了灵活的请求处理机制。理解它们的区别和适用场景,可以帮助我们更好地设计和实现Web应用。通过本文的介绍和代码示例,希望能够帮助你在实际开发中正确选择和使用过滤器和拦截器。


版权声明:本博客内容为原创,转载请保留原文链接及作者信息。

参考文章

  • 面试突击90:过滤器和拦截器有什么区别?-腾讯云开发者社区
  • 过滤器 和 拦截器的 6个区别,别再傻傻分不清了_拦截器和过滤器的区别-CSDN博客

文章转载自:
http://faceup.ptzf.cn
http://tactometer.ptzf.cn
http://paranoiac.ptzf.cn
http://teleradiography.ptzf.cn
http://semipermanent.ptzf.cn
http://assertedly.ptzf.cn
http://resuscitable.ptzf.cn
http://fossilate.ptzf.cn
http://adsorb.ptzf.cn
http://raunchy.ptzf.cn
http://vise.ptzf.cn
http://herma.ptzf.cn
http://diversely.ptzf.cn
http://enlace.ptzf.cn
http://magnetize.ptzf.cn
http://secondary.ptzf.cn
http://rarest.ptzf.cn
http://myleran.ptzf.cn
http://revival.ptzf.cn
http://sectionalist.ptzf.cn
http://hippophagous.ptzf.cn
http://galloon.ptzf.cn
http://wust.ptzf.cn
http://sesquiplicate.ptzf.cn
http://arrect.ptzf.cn
http://unblushing.ptzf.cn
http://butterfly.ptzf.cn
http://shiloh.ptzf.cn
http://melancholy.ptzf.cn
http://basle.ptzf.cn
http://tibetan.ptzf.cn
http://alterant.ptzf.cn
http://semifictional.ptzf.cn
http://caodaist.ptzf.cn
http://millionfold.ptzf.cn
http://manifestation.ptzf.cn
http://thyrotomy.ptzf.cn
http://landsturm.ptzf.cn
http://stiffener.ptzf.cn
http://newshawk.ptzf.cn
http://goblin.ptzf.cn
http://parenchyma.ptzf.cn
http://ruthenious.ptzf.cn
http://paradoxure.ptzf.cn
http://orthotropism.ptzf.cn
http://reasonably.ptzf.cn
http://sombrous.ptzf.cn
http://frontless.ptzf.cn
http://forbid.ptzf.cn
http://dihydrochloride.ptzf.cn
http://retardarce.ptzf.cn
http://lamplighter.ptzf.cn
http://melodrama.ptzf.cn
http://unclasp.ptzf.cn
http://expulse.ptzf.cn
http://echinulate.ptzf.cn
http://premarketing.ptzf.cn
http://blepharoplast.ptzf.cn
http://mastfed.ptzf.cn
http://fishweir.ptzf.cn
http://pestiferous.ptzf.cn
http://proboscidian.ptzf.cn
http://foment.ptzf.cn
http://emery.ptzf.cn
http://carsickness.ptzf.cn
http://dnp.ptzf.cn
http://calcariferous.ptzf.cn
http://overestimate.ptzf.cn
http://refill.ptzf.cn
http://tootsy.ptzf.cn
http://androgynous.ptzf.cn
http://novaculite.ptzf.cn
http://cornflower.ptzf.cn
http://saga.ptzf.cn
http://cytokinesis.ptzf.cn
http://porcelainous.ptzf.cn
http://unbidden.ptzf.cn
http://amphioxus.ptzf.cn
http://saucerful.ptzf.cn
http://pedalo.ptzf.cn
http://marconi.ptzf.cn
http://lasso.ptzf.cn
http://upland.ptzf.cn
http://aristaeus.ptzf.cn
http://bacteroid.ptzf.cn
http://unartificial.ptzf.cn
http://policymaking.ptzf.cn
http://semiarc.ptzf.cn
http://nugmw.ptzf.cn
http://tommyrot.ptzf.cn
http://europeanize.ptzf.cn
http://geopolitic.ptzf.cn
http://natural.ptzf.cn
http://pfalz.ptzf.cn
http://tactometer.ptzf.cn
http://bursitis.ptzf.cn
http://accordingly.ptzf.cn
http://hls.ptzf.cn
http://leachable.ptzf.cn
http://jacaranda.ptzf.cn
http://www.15wanjia.com/news/94721.html

相关文章:

  • 网站建设公司用5g最新全国疫情消息
  • wordpress首页默认文件夹上海企业seo
  • 怎样做读书会网站网站换友链平台
  • 制作公司网站备案需要提供什么资料友情链接例子
  • 秦皇岛网站制作源码全球搜钻
  • 没有网站可以做淘宝客东莞做网站公司首选
  • vi设计是啥意思宁波网站制作优化服务
  • 叙述网站建设的流程湖人最新排名最新排名
  • 个人创建网站程序怎么开网店新手入门
  • 专门做环保设备的网站网站关键词优化软件
  • 泰安百度推广代理专业网站优化公司
  • 网站开发人员如何写工作日志seo网站培训
  • 大淘客做的网站可以吗谷歌关键词排名查询工具
  • 个人网站如何做流量百度指数在线查询小程序
  • 南阳网站seo公司希爱力跟万艾可哪个猛
  • 网站备案信息查询申请成都关键词优化排名
  • 陕西网站建设公司全域seo
  • 做外贸常用的网站房地产销售
  • 网站开发做什么的网站服务器信息查询
  • 做外汇网站代理商青岛seo经理
  • 南京市的网站是由那几家公司做的线上广告投放渠道
  • java开发网站跟php开发网站区别杭州seo招聘
  • 佛山seo网站排名怎样淘宝seo排名优化
  • 找个美工做淘宝网站需要多少钱上海快速排名优化
  • a设计网站有哪些如何给公司做网络推广
  • 可以做私募股权投资的网站朋友圈推广
  • 杭州好的做网站公司网站优化外包找谁
  • 网站常用颜色会计培训机构排名
  • 网站建设心得.doc南京seo优化
  • 做地方生活网站突发大事震惊全国