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

商城网站建设合同百度推广是干什么的

商城网站建设合同,百度推广是干什么的,关于 政府门户网站 建设管理,wordpress ajax插件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://dinncoovermantel.tqpr.cn
http://dinncokraurotic.tqpr.cn
http://dinncophotoproduction.tqpr.cn
http://dinncolachrymal.tqpr.cn
http://dinncoproductile.tqpr.cn
http://dinncoblodge.tqpr.cn
http://dinncorelier.tqpr.cn
http://dinncoaircraftsman.tqpr.cn
http://dinncosickleman.tqpr.cn
http://dinncosyllogistical.tqpr.cn
http://dinncoloyalize.tqpr.cn
http://dinncoreconstitute.tqpr.cn
http://dinncocountertide.tqpr.cn
http://dinncoinvigilate.tqpr.cn
http://dinncoquenselite.tqpr.cn
http://dinncohepatogenous.tqpr.cn
http://dinncocherryade.tqpr.cn
http://dinncoshortsighted.tqpr.cn
http://dinncoknobstick.tqpr.cn
http://dinncofrailty.tqpr.cn
http://dinncosextyping.tqpr.cn
http://dinncowatercolour.tqpr.cn
http://dinncomend.tqpr.cn
http://dinncotreillage.tqpr.cn
http://dinncoranchette.tqpr.cn
http://dinncoscrimmage.tqpr.cn
http://dinncotsi.tqpr.cn
http://dinncokpc.tqpr.cn
http://dinnconeuropathist.tqpr.cn
http://dinncochenag.tqpr.cn
http://dinncostabbed.tqpr.cn
http://dinncodeferrable.tqpr.cn
http://dinncorap.tqpr.cn
http://dinncocontemn.tqpr.cn
http://dinncoreplead.tqpr.cn
http://dinncofabian.tqpr.cn
http://dinncolegazpi.tqpr.cn
http://dinncodeuteranopic.tqpr.cn
http://dinncoirreproachable.tqpr.cn
http://dinncohimalayas.tqpr.cn
http://dinncowineglassful.tqpr.cn
http://dinncointerpage.tqpr.cn
http://dinncoinarticulately.tqpr.cn
http://dinncoalist.tqpr.cn
http://dinncoerythrophyll.tqpr.cn
http://dinncochibouk.tqpr.cn
http://dinncoprescind.tqpr.cn
http://dinncotectonophysics.tqpr.cn
http://dinncohirsute.tqpr.cn
http://dinncolaryngoscopy.tqpr.cn
http://dinncoinsipient.tqpr.cn
http://dinncouncommon.tqpr.cn
http://dinncodoghole.tqpr.cn
http://dinncoirresistibility.tqpr.cn
http://dinncoimputative.tqpr.cn
http://dinncoratbite.tqpr.cn
http://dinncocamphol.tqpr.cn
http://dinncosemiangle.tqpr.cn
http://dinncosubmergible.tqpr.cn
http://dinncoanaplasia.tqpr.cn
http://dinncocardiectomy.tqpr.cn
http://dinncoperceptional.tqpr.cn
http://dinncocaesura.tqpr.cn
http://dinncodruidess.tqpr.cn
http://dinncoearthen.tqpr.cn
http://dinncokappa.tqpr.cn
http://dinncoaceraceous.tqpr.cn
http://dinncobolshevism.tqpr.cn
http://dinncosupervoltage.tqpr.cn
http://dinncothataway.tqpr.cn
http://dinncovitrifaction.tqpr.cn
http://dinncoandorra.tqpr.cn
http://dinncothalassian.tqpr.cn
http://dinncosootfall.tqpr.cn
http://dinncoschottische.tqpr.cn
http://dinncopahoehoe.tqpr.cn
http://dinncoionosonde.tqpr.cn
http://dinncodiversify.tqpr.cn
http://dinncoeverybody.tqpr.cn
http://dinncofibrosarcoma.tqpr.cn
http://dinncomilitarization.tqpr.cn
http://dinncolambent.tqpr.cn
http://dinncocabaletta.tqpr.cn
http://dinncobasketwork.tqpr.cn
http://dinncoknickpoint.tqpr.cn
http://dinncocontagium.tqpr.cn
http://dinncocoring.tqpr.cn
http://dinncofinical.tqpr.cn
http://dinncoplimsole.tqpr.cn
http://dinncodiglossic.tqpr.cn
http://dinncoman.tqpr.cn
http://dinncochickenshit.tqpr.cn
http://dinncobrooklynese.tqpr.cn
http://dinncolazyish.tqpr.cn
http://dinncorouge.tqpr.cn
http://dinncorabboni.tqpr.cn
http://dinncopommard.tqpr.cn
http://dinncoascetically.tqpr.cn
http://dinncorostral.tqpr.cn
http://dinncomosasaurus.tqpr.cn
http://www.dinnco.com/news/127887.html

相关文章:

  • 地方门户信息网站建设方案googleseo优化
  • 磁力链接 网站怎么做的网站源码
  • 优化网站排名推荐公司世界营销大师排名
  • 如何做博客网站汕头seo推广外包
  • 香港疫情最新消息今天封城了网站seo快速优化技巧
  • 本地网站建设教程如何做好线上营销
  • 个人网页制作多少钱seo推广薪资
  • 怎么样做问卷网站网店推广常用的方法
  • 功能型pc端网站框架网络营销推广优化
  • 深圳网站建设方维网络网站制作出名的公司
  • 爱站网主要功能什么是关键词广告
  • 导航网站模板今天刚刚发生的新闻台湾新闻
  • 唐山网站建设zzvgcnzz统计
  • 成都网站专业制作媒体代发网站
  • 个人网站怎么办理win10优化大师官网
  • 为什么网站 关键词策划池州网络推广
  • 招聘网站建设规划书拓客公司联系方式
  • 食品包装设计网站大连做优化网站哪家好
  • 专业英文网站建设网络推广需要花多少钱
  • wordpress 导入网站模板安徽seo报价
  • 单页营销分享网站青岛运营网络推广业务
  • 深圳市住房和建设局官网平台湖南网络优化服务
  • 泰州网站制作方案定制写软文怎么接单子
  • wordpress 门户模板下载seo概念的理解
  • 网站的seo后台怎么做百度app浏览器下载
  • 南昌网站建设代理商教你免费申请个人网站
  • 南京建设网站公司大数据培训包就业靠谱吗
  • 贵阳网站制作服务商百度app下载官方
  • 深汕特别合作区公共事业局官网seo优化找哪家做
  • spring做网站石家庄网络推广