spring 中 filter listener servlet 配置

创建 三个类

分别实现 Filter  ServletContextListener  HttpServlet

在springboot 启动类中@bean加入

2 ,实现 ServletContextIntializer接口

@SpringBootApplication
public class DemoApplication implements ServletContextInitializer{

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        servletContext.addServlet("customServlet", new CustomServlet()).addMapping("/root");
        servletContext.addFilter("customfilter", new CustomFilter())
                        .addMappingForServletNames(EnumSet.of(DispatcherType.REQUEST), true, "customServlet");
        servletContext.addListener(new CustomListener());
    }
}

3. 注解方式  主类加上@ServletComponentScan     给三个分别加上注解

@WebServlet(urlPatterns="/index", name="customServlet")
public class CustomServlet extends HttpServlet{
   ....
}

@WebListener
public class CustomListener implements ServletContextListener{
   ....
}

@WebFilter(urlPatterns="/*")
public class CustomFilter implements Filter{
  ...
}

4.   自定义注解 实现  主类上加上此注解

@Target(value = {ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Import(value = {FirstFilterConfiguration.class})
public @interface EnableFirstFilter {

}

注册配置的bean(

FirstFilterConfiguration.class

public class FirstFilterConfiguration {

    public static final Integer ORDER = Integer.MIN_VALUE;    

    @Bean
    public FilterRegistrationBean firstFilter(){
        FilterRegistrationBean registration = new FilterRegistrationBean();
        registration.setFilter(new FirstFilter());
        registration.addUrlPatterns("/*");
        registration.setName("firstFilter");
        registration.setOrder(ORDER);
        return registration;
    }
}
public class FirstFilter implements Filter {

    @Override
    public void destroy() {

    }

    @Override
    public void doFilter(ServletRequest srst, ServletResponse srsp, FilterChain chain)
            throws IOException, ServletException {
        chain.doFilter(srst, srsp);
    }

    @Override
    public void init(FilterConfig arg0) throws ServletException {

    }

}

原文地址:https://www.cnblogs.com/mxz1994/p/8215393.html

时间: 2024-10-14 03:19:46

spring 中 filter listener servlet 配置的相关文章

Spring 管理Filter和Servlet

本文转载自:http://www.open-open.com/lib/view/open1417248512252.html 在使用spring容器的web应用中,业务对象间的依赖关系都可以用context.xml文件来配置,并且由spring容器来负责依赖对象的创建.如果要在filter或者servlet中使用spring容器管理业务对象,通常需要使用WebApplicationContextUtils.getRequiredWebApplicationContext(getServletCo

Spring管理Filter和Servlet

Spring管理filter和servlet 在使用spring容器的web应用中,业务对象间的依赖关系都可以用context.xml文件来配置,并且由spring容器来负责依赖对象  的创建.如果要在filter或者servlet中使用spring容器管理业务对象,通常需要使用 WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext())来获得WebApplicationContext,然后调用

转 Java中Filter、Servlet、Listener的学习

1.Filter的功能filter功能,它使用户可以改变一个 request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servlet之前预处理request,也可以在离开 servlet时处理response.换种说法,filter其实是一个”servlet chaining”(servlet 链). 一个Filter包括: 1).在servlet被调用之前截获; 2).在servlet被调用之前检查serv

Java中Filter、Servlet、Listener的学习

1.Filter的功能filter功能,它使用户可以改变一个 request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servlet之前预处理request,也可以在离开 servlet时处理response.换种说法,filter其实是一个”servlet chaining”(servlet 链). 一个Filter包括: 1).在servlet被调用之前截获; 2).在servlet被调用之前检查serv

Java中Filter、Servlet、Listener的学习 (转)

1.Filter的功能 filter功能,它使用户可以改变一个 request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servlet之前预处理request,也可以在离开 servlet时处理response.换种说法,filter其实是一个”servlet chaining”(servlet 链). 一个Filter包括: 1).在servlet被调用之前截获; 2).在servlet被调用之前检查ser

Spring中基于Java的配置@Configuration和@Bean用法 (转)

spring中为了减少xml中配置,可以生命一个配置类(例如SpringConfig)来对bean进行配置. 一.首先,需要xml中进行少量的配置来启动Java配置: [java] view plain copy print? <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmln

Spring中基于Java的配置@Configuration和@Bean用法

Spring中为了减少xml中配置,可以创建一个配置类(例如ExampleConfiguration)来对bean进行配置. 1.配置spring配置文件来启用Java注解 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.o

Spring中的Bean的配置形式

Spring中Bean的配置形式有两种,基于XML文件的方式和基于注解的方式. 1.基于XML文件的方式配置Bean <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&q

关于Spring中的&lt;context:annotation-config/&gt;配置

当我们需要使用BeanPostProcessor时,直接在Spring配置文件中定义这些Bean显得比较笨拙,例如: 使用@Autowired注解,必须事先在Spring容器中声明AutowiredAnnotationBeanPostProcessor的Bean: <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor "/> 使用 @Req