【问题标题】:Set path in web.xml relative to WEB-INF在 web.xml 中设置相对于 WEB-INF 的路径
【发布时间】:2011-03-17 06:13:02
【问题描述】:

我想在我的 web.xml 中设置一个相对于 WEB-INF 或 WEB-INF/类的路径。

但是,以下代码 (repository.home) 似乎在我的 windows 机器上选择了一个相对于 c: root drive path 的路径。

    <servlet>
  <servlet-name>ContentRepository</servlet-name>
  <servlet-class>org.apache.jackrabbit.servlet.jackrabbit.JackrabbitRepositoryServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
    <init-param>
      <param-name>repository.home</param-name>
      <param-value>/WEB-INF/classes/testit</param-value>
    </init-param>
</servlet>

<servlet>
  <servlet-name>JackrabbitServlet</servlet-name>
  <servlet-class>com.orsa.seam.JackrabbitServlet</servlet-class>
  <load-on-startup>2</load-on-startup>
</servlet>

【问题讨论】:

    标签: path web.xml web-inf


    【解决方案1】:

    那个参数是可以的,即当你读取它时,它仍然是一个字符串,其值为:

    /WEB-INF/classes/testit
    web.xml 文件中的参数只是一个参数 - 它不是“路径”。

    所以问题是你用那个参数做什么?

    由于您尝试访问 servlet 容器内的资源(文件),因此您需要使用特定的方法,例如像

    ServletContext#getRealPath()

    获取例如的真实路径/WEB-INF/classes/testit,比

    • 将您需要的内容附加到它(因此具有该目录中这些文件的完整路径),或从其他“完整路径”中减去它,从而获得它的相对路径。例如。如果你有 '/testit/test1.txt' '/testit/test2.txt' 你可以通过将它们附加到上面获得的真实路径来访问这些文件。

    • 或从其他“完整路径”中减去该路径,从而获得参数的相对路径。例如。如果您有完整路径(c:/tomcat/webapps/myapp/WEB-INF/data/testit/test.txt),则只需减去参数的完整路径,因此您将获得相对路径: '/testit/test2.txt'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-14
      • 2014-05-13
      • 2010-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-21
      相关资源
      最近更新 更多