当前位置: 首页 > 知识库问答 >
问题:

Spring Boot中的DispatcherServlet和web.xml

谢俊力
2023-03-14

我目前正在尝试将我的项目从Java EE转移到Spring Boot项目。但是,我对dispatcher servlet和web.xml的部分感到困惑,项目似乎不再读取web.xml了。当前项目正在Tomcat7上运行。

我在下面附上了web.xml的示例,版本是2.5。

<?xml version="1.0" encoding="UTF-8"?>
<web-app metadata-complete="true" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name>displayName</display-name>
  <description>description</description>
  <resource-ref>
    ...
  </resource-ref>
  <filter>
    <filter-name>Some Filter Name</filter-name>
    <filter-class>Some Filter Class</filter-class>
    <init-param>
      <param-name>Some Param Name</param-name>
      <param-value>Some Value</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>Some Filter Name</filter-name>
    <url-pattern>Some url-pattern</url-pattern>
  </filter-mapping>
  <context-param>
    <param-name>Some Param Name</param-name>
    <param-value>Some Param Value</param-value>
  </context-param>
  <servlet>
    <servlet-name>Some Servlet Name</servlet-name>
    <servlet-class>Some Servlet Class</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Some Servlet Name</servlet-name>
    <url-pattern>Some Url Pattern</url-pattern>
  </servlet-mapping>
</web-app>

QNS:

  1. 我是否应该将web.xml中的所有内容转换为依赖spring dispatcher,如果是的话,我该如何实现呢?
  2. 是否正在远离web.xml作为spring boot项目的方法?

有谁能带我到这儿来吗?谢谢!!

共有1个答案

景令秋
2023-03-14
  1. 是的,spring boot不再依赖于xml配置,它自动配置一个与dispatcher servlet等价物。您可以按照以下链接查看如何注册您的过滤器:如何在Spring Boot中添加过滤器类?
  2. 如果您使用maven而不是gradle,那么Spring Boot项目中唯一的XML应该是pom.XML。使用spring boot的方法是将所有xml配置、web.xml等移动到spring boot的自动配置+java配置。

当您在java配置中执行所有操作并遵循其原则时,Spring boot工作得非常好。根据我的经验,当您开始合并XML配置和遗留spring时,它就开始破坏自动配置过程,尽可能多地尝试遵守新的Spring Boot最佳实践要好得多。

 类似资料:
  • 本文向大家介绍Spring中DispatcherServlet和ContextLoaderListener之间的区别,包括了Spring中DispatcherServlet和ContextLoaderListener之间的区别的使用技巧和注意事项,需要的朋友参考一下 ContextLoaderListener为Web应用程序创建根Web应用程序上下文,并将其放在ServletContext中。无论

  • Spring MVC框架,与其他很多web的MVC框架一样:请求驱动;所有设计都围绕着一个中央Servlet来展开,它负责把所有请求分发到控制器;同时提供其他web应用开发所需要的功能。不过Spring的中央处理器,DispatcherServlet,能做的比这更多。它与Spring IoC容器做到了无缝集成,这意味着,Spring提供的任何特性,在Spring MVC中你都可以使用。 下图展示了

  • 我在这里有很多问题要解决。一直试图将上述3项技术集成到我们的WebApp中…我们要使用 null web.xml: 我的servlet-context.xml: My manager-context.xml: 编辑2 我认为主要的问题是SpringSecurity需要webapp上下文(ContextLoaderListener)才能工作,但web应用程序是在servlet上下文中运行的。控制器方

  • 22.2 DispatcherServlet 和许多其他的Web MVC框架一样,Spring的Web MVC框架是请求驱动的,围绕一个向控制器分派请求的中央Servlet设计,并提供了其他有助于Web应用程序开发的功能。但是,Spring的DispatcherServlet不仅仅如此,它和Spring的IoC容器完全集成,因而您可以使用Spring的每一个功能。 Spring Web MVC中D

  • 14.2. DispatcherServlet 和其它web框架一样,Spring的web框架是一个请求驱动的web框架,其设计围绕一个中心的servlet进行,它能将请求分发给控制器,并提供其它功能帮助web应用开发。然而,Spring的DispatcherServlet所做的不仅仅是这些,它和Spring的IoC容器完全集成在一起,从而允许你使用Spring的其它功能。 下图展示了Dispat

  • 我正在学习,它让我困惑,请帮助。