SpringBoot如何註冊Servlet、Filter、Listener

在Servlet 3.0之前都是使用web.xml文件進行配置,需要增加Servlet、Filter或者Listener都需要在web.xml增加相應的配置。Servlet 3.0之後可以使用註解進行配置Servlet、Filter或者Listener;springboot也提供了使用代碼進行註冊Servlet、Filter或者Listener。所以springboot有兩種方式進行Servlet、Filter或者Listener配置。

方式一:使用註解

(1)註冊Servlet

       使用@WebServlet註冊,需要在Servlet類上使用該註解即可,但是需要在@Configuration類中使用Spring Boot提供的註解@ServletComponentScan掃描註冊相應的Servlet。

(2)  註冊Filter

        使用@WebFilter註冊,需要在Filter類上使用該註解即可,但是需要在@Configuration類中使用Spring Boot提供的註解@ServletComponentScan掃描註冊相應的Filter。

(3)註冊Listener

         使用@WebListener註冊,需要在Filter類上使用該註解即可,但是需要在@Configuration類中使用Spring Boot提供的註解@ServletComponentScan掃描註冊相應的Listener。

方式二:使用spring提供的方式

(1)註冊Servlet

       使用ServletRegistrationBean註冊只需要在@Configuration類中加入類似以下的代碼

@Bean
public ServletRegistrationBean regServlet() {
        ServletRegistrationBean userServlet= new ServletRegistrationBean();
        userServlet.addUrlMappings("/servlet");
        userServlet.setServlet(new UserServlet());
        return userServlet;

}

(2)  註冊Filter

        使用FilterRegistrationBean註冊Filter,只需要在@Configuration類中加入類似以下的代碼:

@Bean
    public FilterRegistrationBean regFilter() {
        FilterRegistrationBean userFilter = new FilterRegistrationBean();
        userFilter .addUrlPatterns("/*");
        userFilter .setFilter(new UserFilter ());
        return userFilter ;

}

(3)註冊Listener 

        使用ServletListenerRegistrationBean註冊Listener只需要在@Configuration類中加入類似以下的代碼:

@Bean
    public ServletListenerRegistrationBean<LoginSessionListener> regServletListener() {
        ServletListenerRegistrationBean<LoginSessionListener> loginSessionListener= new ServletListenerRegistrationBean<LoginSessionListener>();
        loginSessionListener.setListener(new LoginSessionListener());
        return loginSessionListener;

}

本文作者: java樂園

本文來自雲棲社區合作伙伴“JAVA樂園”,瞭解相關信息可以關注“JAVA樂園


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章