午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術文章
文章詳情頁

springboot @WebFilter注解過濾器的實現

瀏覽:8日期:2023-05-29 11:56:02

@WebFilter注解過濾器

@WebFilter加在過濾器的注解上使用

import lombok.extern.slf4j.Slf4j;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.annotation.WebFilter;import java.io.IOException;@WebFilter(urlPatterns = '/*')@Slf4jpublic class WebFilterTest implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { log.info('WebFilterTest --- init'); } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { log.info('WebFilterTest --- doFilter'); filterChain.doFilter(servletRequest,servletResponse); } @Override public void destroy() { log.info('WebFilterTest --- destroy'); }}

@WebFilter源碼:

@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface WebFilter { String description() default ''; /**Filter顯示名*/ String displayName() default ''; /**配置參數*/ WebInitParam[] initParams() default {}; /**Filter名稱*/ String filterName() default ''; String smallIcon() default ''; String largeIcon() default ''; /**指定對哪些Servlet進行過濾*/ String[] servletNames() default {}; /**指定攔截的路徑*/ String[] value() default {}; /**指定攔截的路徑*/ String[] urlPatterns() default {}; /**指定Filter對哪種方式的請求進行過濾*/ DispatcherType[] dispatcherTypes() default {DispatcherType.REQUEST}; /**指定Filter是否支持異步模式*/ boolean asyncSupported() default false;}

在springBoot的啟動類中加入注解:

import org.springframework.boot.web.servlet.ServletComponentScan;@ServletComponentScan

多個@WebFilter注解的過濾器可以配合@Order()注解實現執行過濾的順序

import org.springframework.core.annotation.Order;@WebFilter(urlPatterns = '/*')@Slf4j@Order(1)public class WebFilterTest implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { log.info('WebFilterTest --- init'); } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { log.info('WebFilterTest --- doFilter'); filterChain.doFilter(servletRequest,servletResponse); } @Override public void destroy() { log.info('WebFilterTest --- destroy'); }}

@WebFilter(urlPatterns = '/*')@Slf4j@Order(2)public class WebFilterTest2 implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { log.info('2---WebFilterTest2 --- init'); } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { log.info('2 --- WebFilterTest2 --- doFilter'); filterChain.doFilter(servletRequest,servletResponse); } @Override public void destroy() { log.info('WebFilterTest2 --- destroy'); }}

執行結果

WebFilterTest --- doFilter2 --- WebFilterTest2 --- doFilter

不使用注解的方式使用過濾器

創建過濾器類

public class WebFilterTest implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { log.info('WebFilterTest --- init'); } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { log.info('WebFilterTest --- doFilter'); filterChain.doFilter(servletRequest,servletResponse); } @Override public void destroy() { log.info('WebFilterTest --- destroy'); }}

注冊過濾器

@Configurationpublic class FilterConfig { @Bean public WebFilterTest webFilterTest(){ return new WebFilterTest(); } @Bean public FilterRegistrationBean filterRegist(){ FilterRegistrationBean frBean = new FilterRegistrationBean(); frBean.setFilter(webFilterTest()); frBean.setOrder(1); frBean.addUrlPatterns('/*'); return frBean; }}

多個過濾器注冊

再添加一個過濾器:

@Slf4jpublic class WebFilterTest2 implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { log.info('2---WebFilterTest2 --- init'); } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { log.info('2 --- WebFilterTest2 --- doFilter'); filterChain.doFilter(servletRequest,servletResponse); } @Override public void destroy() { log.info('WebFilterTest2 --- destroy'); }}

修改配置類:

@Configurationpublic class FilterConfig { @Bean public WebFilterTest webFilterTest(){ return new WebFilterTest(); } @Bean public WebFilterTest2 webFilterTest2(){ return new WebFilterTest2(); } @Bean public FilterRegistrationBean filterRegist(){ FilterRegistrationBean frBean = new FilterRegistrationBean(); frBean.setFilter(webFilterTest()); frBean.setOrder(1); frBean.addUrlPatterns('/*'); return frBean; } @Bean public FilterRegistrationBean filterRegist2(){ FilterRegistrationBean frBean = new FilterRegistrationBean(); frBean.setFilter(webFilterTest2()); frBean.setOrder(2); frBean.addUrlPatterns('/*'); return frBean; }}

到此這篇關于springboot @WebFilter注解過濾器的實現的文章就介紹到這了,更多相關springboot @WebFilter注解過濾器內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 国产日韩精品一区二区 | 羞羞小视频 | 一区二区视频在线 | 国产精品久久久久久久天堂第1集 | 亚洲综合婷婷 | 91麻豆精品视频 | 四虎中文字幕 | 午夜国产福利 | 最近2019中文字幕大全第二页 | 黄色理论视频 | 蜜臀tv | 免费特黄视频 | 亚洲在线视频一区二区 | 午夜高清福利 | 四虎欧美| 国产福利片在线观看 | 欧美黄色免费看 | 超碰中文字幕在线 | 美女视频一区二区三区 | 久久精品超碰 | 成人天堂噜噜噜 | 黄色一大片| 日韩av中文 | 一区三区视频 | 国产乱淫av一区二区三区 | 亚洲天堂中文在线 | a毛片视频 | 极品少妇一区二区 | 蜜桃五月天 | h视频在线免费观看 | 国产美女在线播放 | 欧美一区二区成人 | 欧美激精品 | 亚洲日日夜夜 | 欧美国产日韩一区二区三区 | 精品综合| 国产超级av | 蜜臀99久久精品久久久久小说 | 成年人看的免费视频 | 精品一区国产 | 国产一级特黄毛片 |