2012-10-16 137 views
0

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

<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中调度-servlet.xml中?

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

回答

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),则不需要具有此文件,并且这些框架的其他配置文件将添加到您的项目中。对于任何Java Web应用程序始终 -

  3. web.xml将被加载第一。在那里你定义了你的调度程序servlet。你已经定义了听众。一旦Web应用程序被加载,监听器就会收到通知(回答您的问题 - 监听器在做什么)然后监听器获取指定为上下文参数的文件列表并从中加载弹簧上下文。完成后,Web应用程序将完全加载。

  4. 什么请求将先打取决于以下行

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

结束与.mvc将被Spring调度员的servlet拦截任何请求的URL。

+0

所以,听者只负责装载这些文件?它是否“听”任何其他请求? – Phoenix

+0

没有。但它听取'事件'。并且上下文加载事件在每个部署中只发生一次。 – Tejas