亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

詳談springboot過濾器和攔截器的實現及區別

2024-07-14 08:42:04
字體:
來源:轉載
供稿:網友

前言

springmvc中有兩種很普遍的AOP實現:

1.過濾器(Filter)

2.攔截器(Interceptor)

本篇面對的是一些剛接觸springboot的人群

所以主要講解filter和interceptor的簡單實現和它們之間到底有什么區別

(一些復雜的功能我會之后發出文章,請記得關注)

Filter的簡單實現

字面意思:過濾器就是過濾的作用,在web開發中過濾一些我們指定的url

那么它能幫我們過濾什么呢?

那功能可就多了:

比如過攔截掉我們不需要的接口請求

修改請求(request)和響應(response)內容

完成CORS跨域請求等等

現在我們來實現一個簡單的過濾器:

可以新建一個filter包,隨著項目的擴大過濾器會越來越多

在這里我新建了一個TestFilter類,實現Filter接口

@Component@WebFilter(urlPatterns = "/Blogs",filterName = "blosTest")public class TestFilter implements Filter{}

我們一步步來

1.@Component就是把這個類注入到IOC容器中

2.@WebFilter(urlPatterns = "/Blogs",filterName = "blosTest")說明這是一個web過濾器,它攔截的url為/Blogs,過濾器名字為blogsTest

下面貼出實現接口之后的三個重構方法:

@Override  public void init(FilterConfig filterConfig) throws ServletException {   }   @Override  public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {    HttpServletRequest request= (HttpServletRequest) servletRequest;    HttpServletResponse response = (HttpServletResponse) servletResponse;    System.out.printf("過濾器實現");    filterChain.doFilter(request,response);  }   @Override  public void destroy() {   }

初始化(init)和摧毀(destroy)方法一般不會用到,具體使用看下源碼便知

doFilter()是過濾器的核心

注意:在實現接口方法之后,我們要轉換request和response類型至HttpServlet,否則接下去的操作可能會報錯。

如果過濾通過,執行filterChain.doFilter(request,response);

說明這個url已經經過了我們的Filter

可以看到,只需要一個類我們就實現了一個簡單的過濾器

當然可以不用注解的方式,配置啟動類

//過濾器  @Bean  public FilterRegistrationBean filterRegistrationBean(){    FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();    List<String> urlPatterns = new ArrayList<String>();     TestFilter testFilter = new TestFilter();  //new過濾器    urlPatterns.add("/Blogs");   //指定需要過濾的url    filterRegistrationBean.setFilter(testFilter);    //set    filterRegistrationBean.setUrlPatterns(urlPatterns);   //set     return filterRegistrationBean;  }

這也是可以的,本人其實還是比較推薦這種方式添加過濾器

Interceptor的簡單實現

攔截器的實現比過濾器稍微復雜一點

我們同樣可以新建一個interceptor包

在里面新建一個名為MyInterceptor的類

public class MyInterceptor implements HandlerInterceptor {}

這個類實現了HandleInterceptor接口

直接貼類代碼,我會在代碼中注釋功能

public class MyInterceptor implements HandlerInterceptor {  //在請求處理之前進行調用(Controller方法調用之前  @Override  public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {    System.out.printf("preHandle被調用");    return true;  //如果false,停止流程,api被攔截  }   //請求處理之后進行調用,但是在視圖被渲染之前(Controller方法調用之后)  @Override  public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {    System.out.println("postHandle被調用");  }   //在整個請求結束之后被調用,也就是在DispatcherServlet 渲染了對應的視圖之后執行(主要是用于進行資源清理工作)  @Override  public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {    System.out.println("afterCompletion被調用");  }}

它依次實現了三個方法

相比過濾器,攔截器還需要在springmvc中注入

所以我們打開啟動類,寫入以下代碼

public class WarApplication {   public static void main(String[] args) {    SpringApplication.run(WarApplication.class, args);  }   //mvc控制器  //@Configuration  static class WebMvcConfigurer extends WebMvcConfigurerAdapter{    //增加攔截器    public void addInterceptors(InterceptorRegistry registry){      registry.addInterceptor(new MyInterceptor())  //指定攔截器類          .addPathPatterns("/Handles");    //指定該類攔截的url    }  }}

這里我在/Handles這個url中進行攔截

代碼寫完了,來看下結果

當進入指定url時,我們執行到了攔截器

接下來就可以根據需求去使用攔截器了

區別

過濾器和攔截器非常相似,但是它們有很大的區別

最簡單明了的區別就是過濾器可以修改request,而攔截器不能

過濾器需要在servlet容器中實現,攔截器可以適用于javaEE,javaSE等各種環境

攔截器可以調用IOC容器中的各種依賴,而過濾器不能

過濾器只能在請求的前后使用,而攔截器可以詳細到每個方法

區別很多,大家可以去查下

總的來說

過濾器就是篩選出你要的東西,比如requeset中你要的那部分

攔截器在做安全方面用的比較多,比如終止一些流程

以上這篇詳談springboot過濾器和攔截器的實現及區別就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
裸体女人亚洲精品一区| 亚洲精品国精品久久99热一| 乱亲女秽乱长久久久| 欧美性视频在线| 色偷偷亚洲男人天堂| 久久久久久久久久国产精品| 国产亚洲美女久久| 色七七影院综合| 九九热r在线视频精品| 26uuu国产精品视频| 久久久久国产精品免费| 国内精品免费午夜毛片| 欧美激情xxxx| 欧美自拍大量在线观看| 久热爱精品视频线路一| 国产乱人伦真实精品视频| 国产suv精品一区二区| 亚洲精品xxx| 日韩电视剧免费观看网站| 亚洲黄色免费三级| 九九热99久久久国产盗摄| 亚洲欧美精品伊人久久| 国产精品高潮呻吟视频| 一区二区在线视频| 精品国产网站地址| 亚洲自拍偷拍福利| 色天天综合狠狠色| 欧美日韩一区二区三区| 日韩中文字幕在线视频| 久久青草福利网站| 最近2019好看的中文字幕免费| 欧美香蕉大胸在线视频观看| 国产亚洲精品高潮| 亚洲影院高清在线| 欧美激情2020午夜免费观看| 综合网日日天干夜夜久久| 国产成人小视频在线观看| 国产成人av在线| 欧美人交a欧美精品| 亚洲永久免费观看| 欧洲日韩成人av| xvideos亚洲人网站| 精品女同一区二区三区在线播放| 92福利视频午夜1000合集在线观看| 欧美日韩国产中文精品字幕自在自线| 久久精品视频在线播放| 国产又爽又黄的激情精品视频| 久久91亚洲精品中文字幕| 一区二区三区www| 欧美日韩成人黄色| 国产精品美女免费| 欧美激情二区三区| 欧美日韩性生活视频| 国产精品吹潮在线观看| 成人久久一区二区三区| 久久久久成人精品| 精品国偷自产在线| 国产精品久久久久久久久久久久久久| 日韩av中文字幕在线免费观看| 98午夜经典影视| 亚洲第一级黄色片| 亚洲欧美精品一区二区| 成人淫片在线看| 日韩精品极品在线观看| 国产精品99久久久久久久久久久久| 欧美国产日韩xxxxx| 日韩有码视频在线| 成人免费看吃奶视频网站| 亚洲黄色片网站| 97国产一区二区精品久久呦| 青青草99啪国产免费| 亚洲2020天天堂在线观看| 2019av中文字幕| 国产伦精品一区二区三区精品视频| 亚洲精品视频网上网址在线观看| 精品亚洲国产成av人片传媒| 久久精品这里热有精品| 亚洲天堂男人天堂女人天堂| 日韩激情片免费| 亚洲综合小说区| 亚洲美女av在线| 日韩av观看网址| 午夜精品久久久久久久99黑人| 久久亚洲国产精品| 久久精品视频在线播放| 亚洲性生活视频在线观看| 日韩av第一页| 久久久久北条麻妃免费看| 欧美性猛交xxxx富婆弯腰| 这里只有精品视频在线| 精品国产拍在线观看| 国产日韩精品在线观看| 国产精品美女久久久久av超清| 久久人人爽人人爽人人片av高请| 欧美洲成人男女午夜视频| 国产精品丝袜久久久久久高清| 久久免费成人精品视频| 亚洲精品狠狠操| 国产精品久久久久久久久久小说| 欧美电影免费在线观看| 久久这里有精品| 中文字幕久热精品视频在线| 国产69精品99久久久久久宅男| 欧美大片在线影院| 精品福利一区二区| 欧美久久精品午夜青青大伊人| 国产va免费精品高清在线| 国产精品嫩草影院久久久| 中日韩午夜理伦电影免费| 日韩成人黄色av| 国产午夜精品一区二区三区| 精品亚洲一区二区三区在线观看| 国产精品日韩专区| 久久久久久中文字幕| 九九久久精品一区| 日韩欧美在线网址| 精品国产91乱高清在线观看| 色偷偷88888欧美精品久久久| 国产午夜精品免费一区二区三区| 国产精品久久久久久久久久久不卡| 国产裸体写真av一区二区| 亚洲国产日韩精品在线| 日韩小视频网址| 欧美日韩一区二区三区| 91国产美女视频| 久久精品成人欧美大片| 国产日产久久高清欧美一区| 亚洲男人天堂手机在线| 国产精品视频网址| 久久国产一区二区三区| 亚洲欧美一区二区精品久久久| 亚洲iv一区二区三区| 操人视频在线观看欧美| 亚洲视频电影图片偷拍一区| 国产成人精品优优av| 亚洲综合色av| 亚洲黄色av网站| 欧美日韩国产一区中文午夜| 日韩电视剧在线观看免费网站| 国产精品免费视频xxxx| 亚洲女人初尝黑人巨大| 欧美高清不卡在线| 欧美黄网免费在线观看| 欧美日韩国产激情| 中文字幕亚洲第一| 一本一本久久a久久精品牛牛影视| 国产精品美女www爽爽爽视频| 欧美激情一区二区三区久久久| 日韩精品久久久久久福利| 欧美黄色成人网| 欧美黑人xxxⅹ高潮交| 欧美激情二区三区| 97成人精品区在线播放| 久久青草福利网站| 欧美极品在线播放| 国产成人在线一区二区| 欧美日韩国产精品一区| 92裸体在线视频网站| 欧美精品精品精品精品免费| 九色成人免费视频| 2023亚洲男人天堂| 亚州精品天堂中文字幕| 91免费精品视频| 久久久久免费视频|