java - 从 Web 文档根访问文件

标签 java spring tomcat spring-mvc

我正在使用 Spring MVC 3.0 和 Tomcat。

我有一个 bean,它有一个属性,该属性的值应该是从 Web 文档根目录开始的路径。例如,我会在 Spring 配置文件中指定它的值,如下所示。

<bean id="myBean" class="com.stackoverflow.Bean">
    <property name="path" value="/WEB-INF/foo.xml" />
</bean>

我要把这个值带到哪里才能读取文件? Spring/Spring MVC 是否提供一种透明的方式来访问文档根目录中的资源?

最佳答案

为了获得资源的真实路径,您需要访问 ServletContext

实现此目的的一种方法是让您的 com.stackoverflow.Bean 实现 ServletContextAware 接口(interface)。重新启动后,服务器应将 ServletContext 的实例移交给此 bean(您必须包含以下代码)

private ServletContext ctx;
public void setServletContext(ServletContext servletContext) {
    ctx = servletContext;
}

最后,使用ctx.getRealPath(path) 获取资源的真实路径。

关于java - 从 Web 文档根访问文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4189840/

相关文章:

java - 使用 Spring、JUnit 和 Mockito 模拟 Autowiring 组件内的方法

java - Tomcat 拒绝所有 POST 请求

java - 为单个 Elastic Beanstalk TOMCAT 实例配置 SSL 证书

java - 映射实现接口(interface)的两个类之一

java - 列出共享相同属性的对象

java - 使用 Spring EntityManager,使用 DBCP 测试死锁

security - 在tomcat中配置内容安全策略

java - android, UTF8 - 如何确保 UTF8 用于共享首选项

java - 将对象转换为 Double[]

spring - 在 Spring Boot 中使用嵌入式 MongoDB 测试 @Transactional