国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring Boot 的簡單教程(八)攔截器,過濾器,監聽器

SKYZACK / 2220人閱讀

摘要:當過濾器有注入其他類時,可直接通過的方式進行實體類過濾器,這樣不可自動注入過濾器使用的其他類。就是先簡單的記錄一下攔截器,過濾器和監聽器的簡單使用方法,后期如果有詳細的使用方法,再來更新本文。

很多時候我們都想要做一些與業務邏輯無關的事情,比如統計在線人數,篩選登陸賬號,統計頁面瀏覽量等等。。。這時候我們就需要用到今天講到的這些工具了。

首先我們先看一下攔截器
我們需要先自定義一個攔截器,寫上我們自己對邏輯的處理。

@Slf4j
public class MyInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
        log.info("preHandle:請求前調用");
        //返回 false 則請求中斷
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
                           ModelAndView modelAndView) throws Exception {
        log.info("postHandle:請求后調用");
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
            throws Exception {
        log.info("afterCompletion:請求調用完成后回調方法,即在視圖渲染完成后回調");
    }
}

然后我們需要注冊這個攔截器

public class WebMvcConfigurer extends WebMvcConfigurationSupport {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //注冊攔截器 攔截規則
        //多個攔截器時 以此添加 執行順序按添加順序
        registry.addInterceptor(getHandlerInterceptor()).addPathPatterns("/*");
    }

    @Bean
    public static HandlerInterceptor getHandlerInterceptor() {
        return new MyInterceptor();
    }
}

當然了需要在啟動類上添加注解@ServletComponentScan才能生效。這就是一個簡單的沒什么邏輯的攔截器了,如果需要什么特別的操作的話就直接在我們自定義的攔截器方法里面寫就好了。

接下來我民額看一下過濾器,和上面的攔截器一樣,我們需要先自定義一個過濾器,實現我們自己想實現的方法。

@Slf4j
public class MyFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        log.info("filter 初始化");
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        // TODO Auto-generated method stub
        log.info("doFilter 請求處理");
        //對request、response進行一些預處理
        // 比如設置請求編碼
        // request.setCharacterEncoding("UTF-8");
        // response.setCharacterEncoding("UTF-8");
        //TODO 進行業務邏輯

        //鏈路 直接傳給下一個過濾器
        chain.doFilter(request, response);
    }

    @Override
    public void destroy() {
        log.info("filter 銷毀");
    }
}

然后我們調用我們寫的這個過濾器。

@Configuration
public class FilterConfig {
    @Bean
    public FilterRegistrationBean ResistFilter() {
        FilterRegistrationBean registration = new FilterRegistrationBean();
        //當過濾器有注入其他bean類時,可直接通過@bean的方式進行實體類過濾器,這樣不可自動注入過濾器使用的其他bean類。
        //當然,若無其他bean需要獲取時,可直接new MyFilter(),也可使用getBean的方式。
        registration.setFilter(new MyFilter());
        //過濾器名稱
        registration.setName("customFilter");
        //攔截路徑
        registration.addUrlPatterns("/hello");
        //設置順序
        registration.setOrder(10);
        return registration;
    }
}

在攔截器哪里我們已經在啟動類上添加了注解,所以這里就不用重復添加了。

我們最后來看一下監聽器,這里的監聽器不需要調用等操作,只需要寫好,添加注解就可以了。

/**
 * 監聽器
 * servletRequestListener一般來實現web瀏覽量

 */
@WebListener
@Slf4j
public class ServletLister implements ServletRequestListener {

    @Override
    public void requestDestroyed(ServletRequestEvent sre) {
        log.info("監聽器:銷毀");
    }

    @Override
    public void requestInitialized(ServletRequestEvent sre) {
        log.info("監聽器:初始化");
    }
}
```
```
/**
 * 監聽器
 * httpSessionListener來實如今線人數的統計
 * @author zhouzhaodong
 */
@WebListener
@Slf4j
public class HttpLister implements HttpSessionListener {

    @Override
    public void sessionCreated(HttpSessionEvent se) {
        log.info("又有人上線了,統計一下在線人數吧!");
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        log.info("又有人下線了,統計一下在線人數吧!");
    }
}
```
監聽器主要是用來統計數量的。
就是先簡單的記錄一下攔截器,過濾器和監聽器的簡單使用方法,后期如果有詳細的使用方法,再來更新本文。
代碼下載地址:https://github.com/zhouzhaodong/Study

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75658.html

相關文章

  • Spring Boot - 單元測試(Junit4&Mockito)

    摘要:當面講給你聽講堂地址,或許是最實用的教程,新課促銷中,只要你敢來,保你收貨滿滿。優惠報名全程擼碼快速入門教程全原價,優惠價全程擼碼進階全原價,優惠價 回顧 Spring Boot - 初識 Hello World Spring Boot - Servlet、過濾器、監聽器、攔截器 Spring Boot - 靜態資源處理、啟動加載、日志處理 Spring Boot - 部署Deplo...

    raoyi 評論0 收藏0
  • Spring Boot - 部署Deploy

    摘要:索引初識過濾器監聽器攔截器靜態資源處理啟動加載日志處理數據庫配置部署最后如果覺得我的文章對您有用,請點贊收藏。您的支持將鼓勵我繼續創作 Spring Boot - 部署Deploy 服務發布Tomcat 修改啟動類,繼承 SpringBootServletInitializer 并重寫 configure 方法 @Override protected SpringApplication...

    YJNldm 評論0 收藏0
  • Spring Boot - Servlet、濾器、聽器、截器

    摘要:過濾器監聽器攔截器上一篇,我們講解了配置及整合方法,不清楚的可以點擊了解的兩種實現方式通過手動注入實現一個返回的方法,并將該對象注冊到中。 Spring Boot - Servlet、過濾器、監聽器、攔截器 上一篇,我們講解了spring boot(json,jsp,freemarker)配置及整合方法,不清楚的可以點擊了解 Servlet的兩種實現方式 通過@Bean手動注入實現一個...

    anRui 評論0 收藏0
  • Spring Boot - 表單校驗(JSR303&Hibernate Validator)

    摘要:初步使用主要使用注解的方式對進行校驗,第一個例子在需要校驗的字段上指定約束條件然后在中可以這樣調用,加上注解即可。如果校驗失敗,默認會返回框架的出錯信息。指定到的分組名會全部進行校驗,不指定的不校驗。 Spring Boot - 表單校驗(JSR303&Hibernate Validator) 回顧 Spring Boot - 初識 Hello World Spring Boot -...

    tinyq 評論0 收藏0

發表評論

0條評論

SKYZACK

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<