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

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

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

服務器之家 - 編程語言 - Java教程 - Spring Boot 編寫Servlet、Filter、Listener、Interceptor的方法

Spring Boot 編寫Servlet、Filter、Listener、Interceptor的方法

2020-11-29 11:43何必如此沉默 Java教程

這篇文章給大家介紹了spring-boot中如何定義過濾器、監聽器和攔截器,對Spring Boot 編寫Servlet、Filter、Listener、Interceptor的相關知識感興趣的朋友一起看看吧

前言

在編寫過濾器、監聽器、攔截器之前我們需要在spring-boot啟動的類上加上注解@ServletComponentScan:

?
1
2
3
4
5
6
7
@SpringBootApplication
@ServletComponentScan
public class MySpringbootApplication {
  public static void main(String[] args) {
   SpringApplication.run(MySpringbootApplication.class, args);
  }
}

Servlet

spring-boot編寫過濾器和spring中差不多,直接看代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
@WebServlet(urlPatterns = "/serv")
public class MyServlet extends HttpServlet {
  @Override
  protected void doGet(HttpServletRequest request, HttpServletResponse response) {
    System.out.println("------------doget-------------");
    doPost(request, response);
  }
  @Override
  protected void doPost(HttpServletRequest request, HttpServletResponse response) {
    System.out.println("------------dopost-------------");
  }
}

其實也就是注解的不同而已:

?
1
@WebServlet(urlPatterns = "/serv")

過濾器(Filter

在spring-boot里編寫過濾器我們只需要實現javax.servlet.Filter

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@WebFilter(filterName = "myFilter", urlPatterns = "/*")
public class MyFilter implements Filter {
  @Override
  public void init(FilterConfig filterConfig) throws ServletException {
    System.out.println("初始化過濾器");
  }
  @Override
  public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    System.out.println("執行過濾器");
    filterChain.doFilter(servletRequest, servletResponse);
  }
  @Override
  public void destroy() {
    System.out.println("銷毀過濾器!");
  }
}

然后添加一個注解:

?
1
@WebFilter(filterName = "myFilter", urlPatterns = "/*")

監聽器 (Listener

在上面,看了下過濾器的使用。其實監聽器和攔截器就差不多了,直接上代碼:

?
1
2
3
4
5
6
7
8
9
10
11
@WebListener
public class MyHttpSessionListener implements HttpSessionListener {
  @Override
  public void sessionCreated(HttpSessionEvent httpSessionEvent) {
    System.out.println("session 被創建");
  }
  @Override
  public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
    System.out.println("session 被摧毀");
  }
}

我們發現只是注解發生了變化:

@WebListener

攔截器(Interceptor

攔截器大致和上面差不多,不過有一點點不同。我們知道在web開發中,可以使用過濾器和攔截器來過濾外部的web請求。但是攔截器提供了更加細致的控制功能。主要有:請求之前、請求之后渲染之前、渲染之后、請求全部結束之后這四個步驟的攔截。

這里面使用攔截器主要有三個步驟

自定義攔截器,實現org.springframework.web.servlet.HandlerInterceptor

自定義WebAppConfigurer,繼承WebMvcConfigurerAdapter

在自定義的WebAppConfigurer覆蓋父類方法addInterceptors(InterceptorRegistry registry),并在方法中添加自己定義的攔截器

?
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
public class MyInterceptor implements HandlerInterceptor{
  @Override
  public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
    System.out.println(MyInterceptor.class.getName()+" : 在請求之前調用");
    return true;
  }
  @Override
  public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
    System.out.println(MyInterceptor.class.getName()+" :請求處理之后視圖渲染之前使用");
  }
  @Override
  public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
    System.out.println(MyInterceptor.class.getName()+" :請視圖渲染之后使用");
  }
}
 
@Configuration
public class MyWebAppConfigurer extends WebMvcConfigurerAdapter {
  @Override
  public void addInterceptors(InterceptorRegistry registry) {
    // 多個攔截器組成一個攔截器鏈
    // addPathPatterns 用于添加攔截規則
    // excludePathPatterns 用戶排除攔截
    registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**");
    registry.addInterceptor(new MyInterceptor2()).addPathPatterns("/**");
    super.addInterceptors(registry);
  }
}

以上就是關于在spring-boot中如何定義過濾器、監聽器和攔截器。關于他們的原理以及一些細節問題(如攔截器的攔截順序),就不詳述。有興趣的可以去網上搜索。

原文鏈接:http://blog.csdn.net/qq_31084201/article/details/74626667

延伸 · 閱讀

精彩推薦
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
主站蜘蛛池模板: 午夜视频在线网站 | 欧美成人一区二区三区片免费 | 精品一二三区 | 日韩福利视频 | 91亚洲国产成人久久精品网站 | 色综合欧美 | 国产一区二区三区久久久久久久久 | 狠狠影院 | 99精品视频在线观看 | 天天干在线影院 | 亚洲精品成a人在线 | 中文字幕自拍偷拍 | 国产一区二区三区 | 日韩在线视频观看 | 亚洲色图一区二区三区 | 久久亚洲国产精品 | 国产精品观看 | 国产精品成人一区二区三区夜夜夜 | 国产成人三区 | 伊人欧美一区 | 99热精品免费 | 九九九九国产 | 午夜电影网站 | 国产精品毛片一区二区 | 福利片在线 | 国产在线观看一区 | www伊人 | 不卡视频一区二区 | 成人小视频在线观看 | 欧美日韩一区二区电影 | 亚洲成人一区二区 | 永久看片 | 男女激情网站 | 欧美天堂 | 国产精品无码永久免费888 | 成人av一区二区三区 | 国产日韩欧美在线观看 | 欧美 亚洲 一区 | 色中色av| 99精品久久久 | 亚洲中午字幕 |