在web.xml中加载上下文

时间:2014-05-23 09:59:06

标签: java spring servlets web.xml

在上下文参数中加载上下文并在Dispatcher Servlet的init-param中加载它有什么区别。

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>

VS

<init-param>    
        <param-name>contextConfigLocation</param-name>    
        <param-value> /WEB-INF/mvc-config.xml </param-value>    
  </init-param> 

我理解的是context-param由上下文侦听器加载,并且应该只包含中间层bean。其中init方法中的Dispatcher Servlet应该加载Web层bean。这种理解是否正确?为什么我们单独加载2件事?

2 个答案:

答案 0 :(得分:1)

在context-param“contextConfigLocation”中,您应该包括您的应用程序上下文,因为您已经说过中间层bean,例如:services,datasource ......

Spring DispatcherServlet将在WEB-INF / servletName-servlet.xml中查找配置文件。使用init-param可以更改此默认行为。 servlet上下文(Web上下文)是隔离的,但可能将应用程序上下文保持为父级。您可以单独使用它们中的一个或其中一个。

答案 1 :(得分:1)

<context-param>
  • 写在<Servlet>标记之外,位于<webapp>标记内。
  • 十分值将在整个应用程序中可用
  • 应用程序中的任何servlet(在web.xml中声明)都可以访问值
  • 因此,当我们想要在应用程序中的servlet中共享相同的值集时,我们会使用它,例如数据库配置详细信息。
  • 您可以使用public String getInitParameter(String name)接口的ServletContext方法获取价值。
  • getServletContext() ServletConfig接口的方法返回ServletContext的对象。
  • getServletContext() GenericServlet类的方法返回ServletContext的对象。
  • 示例1:ServletContext application=getServletConfig().getServletContext();
  • 示例2:ServletContext application=getServletContext();

<init-param> .

  • 写在<Servlet>标记内。
  • 声明的值仅对servlet可用。
  • 您可以使用public String getInitParameter(String name)接口的ServletConfig方法获取价值。
  • getServletConfig() Servlet接口的方法返回ServletConfig的对象。
  • 示例:ServletConfig config=getServletConfig();