一、使用servlet(必须继承HttpServlet)
两种方式:
- 在每个Controller类加
@WebServlet(String pattern)
,启动类添加@ServletCompanscan
- 通过配置注册类
@Configuration
public class ServletConfif {
// @Bean是一个方法级别上的注解,主要用在配置类里
// 相当于
// <beans>
// <bean id="" class="" />
//<beans>
@Bean
public ServletRegistrationBean myServletRegistrationBean {
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new MyServlet(), "/test");
return servletRegistrationBean;
}
}
二、使用过滤器Filter
两种方式:
- 注解方式:通过
@WebFilter
和@ServletComponentScan
// 过滤器类
@WebFilter("/myfilter")
public class MyFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("==============进入过滤器1===============");
filterChain.doFilter(servletRequest, servletResponse);
}
}
// 启动类
@SpringBootApplication
@ServletComponentScan(basePackages = "cn.atfaith.filter")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
- 注册类方式
// 过滤器类
@WebFilter("/myfilter")
public class MyFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("==============进入过滤器1===============");
filterChain.doFilter(servletRequest, servletResponse);
}
}
// 配置类
@Configuration
public class FilterConfig {
@Bean
public FilterRegistrationBean myFilterRegistrationBean() {
// 注册过滤器
FilterRegistrationBean filterFilterRegistrationBean = new FilterRegistrationBean(new MyFilter());
// 添加过滤器
filterFilterRegistrationBean.addUrlPatterns("/user/*");
return filterFilterRegistrationBean;
}
}
// 配置类
@Configuration
public class FilterConfig {
@Bean
public FilterRegistrationBean myFilterRegistrationBean() {
// 注册过滤器
FilterRegistrationBean filterFilterRegistrationBean = new FilterRegistrationBean(new MyFilter());
// 添加过滤器
filterFilterRegistrationBean.addUrlPatterns("/user/*");
return filterFilterRegistrationBean;
}
}
注意: 配置类中不可以使用
**
配置所有路径,只可以使用*