0

我的 Web 应用程序有 3 个“上下文”文件。一个是web.xml,一个是context.xml,另一个是dispatcher-servlet.xml。注意我必须为我的网络应用程序使用 Spring。我有一个需要在服务器上运行的 Web 应用程序。有人可以验证我的理解吗?
1. Web.xml - 所有 Java Web 应用程序都需要并且必须拥有。这是 servlet 配置进入的地方。param-name = contextConfigLocation 和 contextLoaderListener 参数是什么,为什么需要它们?contextLoaderListener 究竟做了什么?

<context-param>
        <description>Spring Application Context Configuration</description>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/applicationContext-workflow.xml
            /WEB-INF/applicationContext-general.xml
        </param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.mvc</url-pattern>
    </servlet-mapping>
  1. Context.xml 用于特定于环境的数据库连接,队列连接。使用 commons dbcp 是首选吗?

  2. 而 dispatcher-servlet.xml 看起来像这样: 为什么它需要是这样的?

  3. 就服务器加载这些文件而言,是否会先加载 context.xml ,然后加载 web.xml ,然后再加载 dispatcher-servlet.xml ?

  4. 就客户端请求而言,它会首先被 dispatcher-servlet 拦截吗?

4

1 回答 1

1
  1. 是的,如果符合您的要求,可以使用 dbcp。基本上 context.xml 是一个 Spring 配置文件,用于定义 Spring bean。这是用于弹簧芯的。

  2. dispatcher-servlet.xml 这是另一个用于 Spring Web MVC 配置的 Spring 配置文件。也可以混合文件 1 和 2 但严格丢弃。它定义了您的 Sprinf MVC 配置、任何 web 资源包、mvc 拦截器等。如果您选择使用不同的 web 框架,如 JSF 或 struts,则不需要此文件,并且这些框架的其他配置文件将添加到您的项目中。

  3. web.xml 将首先加载 - 始终适用于任何 Java Web 应用程序。在那里您定义您的调度程序 servlet。你已经定义了监听器。加载 Web 应用程序后,将通知侦听器(回答您的问题 - 侦听器在做什么)然后侦听器获取指定为上下文参数的文件列表并从中加载 spring 上下文。完成后,Web 应用程序已完全加载。

  4. 请求首先命中的内容取决于以下行

 <servlet-mapping>
     <servlet-name>dispatcher</servlet-name>
     <url-pattern>*.mvc</url-pattern>
 </servlet-mapping>

任何以 .mvc 结尾的请求 url 都会被 Spring dispatcher-servlet 拦截。

于 2012-10-16T06:45:40.527 回答