Spring之Java定义DispatcherServlet、添加Filter和Servlet、web.xml定义DispatcherServlet、Java配置和web.xml配合

本文介绍了如何在Spring中自定义DispatcherServlet配置,包括重写initServletBean方法以进行定制。此外,还讲解了如何添加Filter和其他Servlet,通过实现WebApplicationInitializer接口来注册组件。最后,讨论了如何在web.xml中声明DispatcherServlet并设置其配置文件位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

随笔记

自定义DispatcherServlet配置

定义一个类 ,继承 AbstractAnnotationConfigDispatcherServletInitializer 开始重写 里面的一些方法:

重写 customizeRegistration 方法:

  • AbstractAnnotationConfigDispatcherServletInitializerDispatcherServlet 注册到 Servlet 容器中之后,就会
  • 调用 customizeRegistration() 方法,并将 Servlet 注册后得到的 ServletRegistration.Dynamic 传递 进来。
  • 通过重写此方法,可以对 DispatcherServlet 进行额外配置
@Override
protected void customizeRegistration(ServletRegistration.Dynamic registration) {
   
    // 对 multipart 的支持
    registration.setMultipartConfig(
            new MultipartConfigElement("/tmp/test/uploads")
    );
}
  • registration.setLoadOnStartup():设置 load-on-startup 优先级。
  • registration.setInitParameter():设置初始化参数。

添加 Filter 和 其他 Servlet

想往 Web 容器中注册其他组件,需要创建一个新的初始化器,最简单的方式就是 实现 Spring 的WebApplicationInitializer 接口

public class MyServletInit implements WebApplicationInitializer {
   
    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
   
        // 注册 自己的 Servlet
        ServletRegistration.Dynamic myServlet = servletContext.addServlet("myServlet", MyServlet.class);
        // 为 servlet 添加 映射
        myServlet.addMapping("/custom/***");

        // 注册 自己的 Filter
        FilterRegistration.Dynamic myFilter = servletContext.addFilter("myFilter", MyFilter.class);
        // 为 Filter 添加路径映射
        myFilter.addMappingForUrlPatterns(null,false,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值