国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - SpringBoot定義過濾器、監聽器、攔截器的方法

SpringBoot定義過濾器、監聽器、攔截器的方法

2020-09-13 15:45心碎落地的聲音 Java教程

本篇文章主要介紹了SpringBoot定義過濾器、監聽器、攔截器的方法,具有一定的參考價值,有興趣的可以了解一下。

一、自定義過濾器

創建一個過濾器,實現javax.servlet.Filter接口,并重寫其中的init、doFilter、destory方法。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package com.example.filter;
import java.io.IOException; 
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;
/**
 * 實現javax.servlet.Filter,覆蓋其三個方法
 * @author Administrator
 *
 */
@WebFilter(filterName="customFilter",urlPatterns="/*")
public class CustomFilter implements Filter{
 
  @Override
  public void destroy() {
    System.out.println("CustomFilter過濾器銷毀");
     
  }
 
  @Override
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
      throws IOException, ServletException {
    System.out.println("CustomFilter指定過濾器操作......");
    //執行操作后必須doFilter
    chain.doFilter(request, response);
  }
 
  @Override
  public void init(FilterConfig arg0) throws ServletException {
    System.out.println("CustomFilter初始化......");
  }    
}

二、自定義監聽器

創建一個過濾器,實現ServletContextListener接口

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package com.example.listener; 
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
 
/**
 * 實現ServletContextListener,覆蓋其兩個方法
 * @author Administrator
 *
 */
@WebListener
public class CustomListener implements ServletContextListener{
 
  @Override
  public void contextDestroyed(ServletContextEvent servletContext) {
    System.out.println("servletContext銷毀......");
     
  }
 
  @Override
  public void contextInitialized(ServletContextEvent servletContext) {
    System.out.println("servletContext初始化......");
  }
 
}

創建一個session監聽器,監聽session的創建和銷毀

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package com.example.listener; 
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
 
/**
 * 實現HttpSessionListener接口,監視session的動態
 * @author Administrator
 *
 */
@WebListener
public class SessionListener implements HttpSessionListener{
 
  @Override
  public void sessionCreated(HttpSessionEvent session) {
    System.out.println("session創建成功......");
     
  }
 
  @Override
  public void sessionDestroyed(HttpSessionEvent session) {
    System.out.println("session銷毀......");
     
  }
 
}

三、自定義攔截器

步驟:

1、創建自己的攔截器實現HandlerInterceptor接口

2、創建自己的攔截器鏈,繼承WebMvcConfigurerAdapter類,重寫addInterceptors方法。

3、實例化自己的攔截器,并加入到攔截器鏈中。

攔截器一:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package com.example.Interceptor; 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
 
public class CustomInterceptor implements HandlerInterceptor {
 
  @Override
  public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object object,
      Exception exception) throws Exception {
    //在整個請求結束之后被調用,也就是在DispatcherServlet 渲染了對應的視圖之后執行(主要是用于進行資源清理工作)
    System.out.println("3. 整個請求結束之后被調用......CustomInterceptor1......");
  }
 
  @Override
  public void postHandle(HttpServletRequest request, HttpServletResponse response, Object object, ModelAndView view)
      throws Exception {
    // 請求處理之后進行調用,但是在視圖被渲染之前
    System.out.println("2. 請求處理之后進行調用,但是在視圖被渲染之前......CustomInterceptor1......");
  }
 
  @Override
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object object) throws Exception {
    // 在請求處理之前進行調用
    System.out.println("1. 在請求處理之前進行調用......CustomInterceptor1......");
    // 只有返回true才會繼續向下執行,返回false取消當前請求
    return true;
  }
 
}

攔截器二:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package com.example.Interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
 
public class CustomInterceptor2 implements HandlerInterceptor {
 
  @Override
  public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object object,
      Exception exception) throws Exception {
    //在整個請求結束之后被調用,也就是在DispatcherServlet 渲染了對應的視圖之后執行(主要是用于進行資源清理工作)
    System.out.println("3. 整個請求結束之后被調用......CustomInterceptor2......");
  }
 
  @Override
  public void postHandle(HttpServletRequest request, HttpServletResponse response, Object object, ModelAndView view)
      throws Exception {
    // 請求處理之后進行調用,但是在視圖被渲染之前
    System.out.println("2. 請求處理之后進行調用,但是在視圖被渲染之前......CustomInterceptor2......");
  }
 
  @Override
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object object) throws Exception {
    // 在請求處理之前進行調用
    System.out.println("1. 在請求處理之前進行調用......CustomInterceptor2......");
    // 只有返回true才會繼續向下執行,返回false取消當前請求
    return true;
  }
 
}

自定義攔截器鏈并加入自定義的攔截器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package com.example.adapter;
 
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
 
import com.example.Interceptor.CustomInterceptor;
import com.example.Interceptor.CustomInterceptor2;
 
/**
 * 繼承WebMvcConfigurerAdapter,復寫addInterceptors方法
 * @author Administrator
 *
 */
@Configuration
public class WebAdapter extends WebMvcConfigurerAdapter{
 
  @Override
  public void addInterceptors(InterceptorRegistry registry) {
    //眾多的攔截器組成了一個攔截器鏈
    /**
     * 主要方法說明:
     * addPathPatterns 用于添加攔截規則
     * excludePathPatterns 用戶排除攔截
     */
    registry.addInterceptor(new CustomInterceptor()).addPathPatterns("/*");
    registry.addInterceptor(new CustomInterceptor2()).addPathPatterns("/*");
    super.addInterceptors(registry);
  }
}

 以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/linabc123000/article/details/69245148

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 成人av网站在线观看 | 中文字幕亚洲一区二区三区 | 自拍偷拍av | 久久精品国产亚洲精品 | 午夜激情视频在线观看 | 青青草原综合久久大伊人精品 | 人人添人人添 | 亚洲成人福利网 | 亚洲一区二区在线播放 | 杨门女将寡妇一级裸片看 | 精品在线一区二区 | 免费黄色在线看 | 国产一区二区精品在线观看 | 亚洲视频 欧美视频 | 精品一区二区三区四区五区 | 久久久婷| 在线四区 | 国产精品不卡一区二区三区 | 国产一区久久久 | 成人三级视频 | 毛片特级 | 亚洲精品久久久久久久久久久久久 | 日本精品在线观看视频 | 在线日韩成人 | 在线播放中文字幕 | 君岛美绪一区二区三区在线视频 | 特黄视频| 93看片淫黄大片一级 | 亚洲成人精品 | 两性视频久久 | 久久精彩视频 | 成人免费影院 | 亚洲视频免费观看 | 人人干日日操 | 伊人色爱| 午夜视频 | 日韩中文在线 | 久草视频网 | 在线免费观看日韩视频 | 美日韩av| 嫩草视频在线 |