Java Web基础知识之Servlet容器初始化(无web.xml)

本文介绍了在Java Web开发中如何摆脱web.xml,利用Servlet 3.0的ServletContainerInitializer接口进行容器初始化。详细讲解了接口说明和编程实现,包括创建依赖包,构建Java Web程序,以及使用注解进行Servlet和Filter的编程注册。
摘要由CSDN通过智能技术生成

在之前典型的Java Web程序中,部署描述符web.xml是必不可少的,在这里我们需要配置各种组件,包括ServletFilterListener等,如果使用过SpringMVC的话,应该会对在web.xml中配置org.springframework.web.servlet.DispatcherServlet十分熟悉。但是对于所有的配置文件都有的一个通病就是只有在程序部署的时候,一些配置项问题才能被发现,而不能在程序编译开发阶段就发现。所以如果通过编程的方法来设置配置项则是一个最好的选择,我们完全可以抛弃web.xml这个部署描述符,而是换用从Servlet 3.0中提出的一个接口javax.servlet.ServletContainerInitializer来完成Servlet容器的初始化,该接口的作用是当Web应用启动时,通知一些实现类来执行一些要求的ServletFilterListener等的编程注册。

一、接口说明

ServletContainerInitializer接口细节:

  • 其中只有一个方法onStartup(...) ,在执行任何ServletContext监听器之前,由Servlet容器调用这个方法,该方法的主要作用是注册Web对象;

  • 实现ServletContainerInitializer的类必须使用@HandleTypes注解进行标注,以便声明onStartup(...)可以处理这个类的实例,所有该类、包括它的子类都会被传递给其中的Set<Class<?>> c字段,如果没有这个注解,或者在该注解中使用的类不存在或没有相应的子类,则会传递给该参数一个null值;

  • 这个接口被设计在jar文件中使用,而无法直接在war包中直接使用,而是通过在jar中完成定义,然后将jar包作为Java Web的依赖包,该接口的实现类会通过Java的SPI的注册查询机制被发现;

  • 如果要使用这个类,需要一个元数据文件来说明如何定位该接口的实现类,该文本文

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值