web.xml配置springMVC,把init-param删掉也能正常?

 <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc-servlet.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  

改为

 <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

访问页面也正常。。
我的springmvc-servlet.xml放在WEB-INF文件夹下的。
但是,我把servlet-name名称改掉就报错了。这为什么啊?
难道servlet-name会自动匹配文件?

阅读 5.4k
2 个回答

**配置有两种方式:
方式一:
当你放在src下面的话,配置<init-param>时:<init-param>配置的作用是DispatcherServlet的一个初始化参数,即SpringMVC配置文件的位置和名称

方式二:
当你放在WEB-INF下的话可以不用<init-param>配置,使用SpringMVC的默认配置,但是名称是有要求的,
命名要求:<servlet-name>-servlet.xml

我觉得你换名出错的原因应该是命名的问题,恰好名称有个servlet,哈哈

比如你现在是: <servlet-name>springmvc</servlet-name>
那么你放在WEB-INF下的话,你的那个xml文件名应该是springmvc-servlet.xml**

去掉了<init-param></init-param>后你的springmvc文件名应该为<servlet-name>-servlet.xml 你要注意文件名servlet-name一定要和<servlet-name>一致

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题