【SpringMVC】Servlet的原生注解@WebListener、@WebFilter、@WebServlet

本文介绍了Servlet 3.0中定义的三个核心注解:@WebListener、@WebFilter 和 @WebServlet 的作用及用法。此外还探讨了SpringMVC中的DispatcherServlet是如何通过ServletRegistrationBean而非@WebServlet进行配置的。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

三个注解都是servlet3.0定义的,在javax.servlet.annotation包下。

@WebListener 用于声明WebListener。 使用WebListener注释的任何类都必须实现javax.servlet.ServletContextListener , javax.servlet.ServletContextAttributeListener , javax.servlet.ServletRequestListener , javax.servlet.ServletRequestAttributeListener , javax.servlet.http.HttpSessionListener或javax.servlet.http.HttpSessionAttributeListener一个或多个。 javax.servlet.http.HttpSessionAttributeListener或javax.servlet.http.HttpSessionIdListener接口。

@WebFilter 用于声明servlet过滤器的注释。容器在部署时会处理此批注,并将相应的过滤器应用于指定的URL模式,servlet和调度程序类型。

@WebServlet 用于声明Servlet的注释。容器在部署时会处理此批注,并在指定的URL模式下提供相应的servlet

SpringMVC的 DispatcherServlet 也是一个Servlet,但不是使用@WebServlet注解形式注册的,而是ServletRegistrationBean形式。

@Configuration
@Conditional({DispatcherServletAutoConfiguration.DefaultDispatcherServletCondition.class})
@ConditionalOnClass({ServletRegistration.class})
protected static class DispatcherServletConfiguration {
	@Bean(name = {"dispatcherServlet"})
    public DispatcherServlet dispatcherServlet() {
        return new DispatcherServlet();
    }

    @Bean(name = {"dispatcherServletRegistration"})
    public ServletRegistrationBean dispatcherServletRegistration() {
        ServletRegistrationBean registration = new ServletRegistrationBean(this.dispatcherServlet(), new String[]{this.server.getServletMapping()});
        registration.setName("dispatcherServlet");
        if (this.multipartConfig != null) {
            registration.setMultipartConfig(this.multipartConfig);
        }

        return registration;
    }
}

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值