在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樂園”