java - 在 Servlet 中引用文件

标签 java xml servlets path

当我在我的代码中引用 DTD 文件时,我不知道如何在我的项目文件夹中引用它。例如:如果我的项目名称是 Moo,我想在 /Moo/WEB-INF/courses.dtd 中引用 DTD。

TransformerFactory transfac = TransformerFactory.newInstance();
Transformer trans = null;  

try { trans = transfac.newTransformer();   }
catch (TransformerConfigurationException e) { }

trans.setOutputProperty(OutputKeys.INDENT, "yes");  
trans.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "/Moo/WEB-INF/courses.dtd");

但它没有找到它。如何引用它?

有人向我提供了一个使用 getRealPath 的解决方案,问题是因为我的项目将被读取为 .war 文件,这不是很好。我该怎么办?

最佳答案

首先,不要包含“Moo”。对于 servlet root 是 WEB-INF 的上一级。 不确定 OutputKeys.DOCTYPE_SYSTEM 是否需要相对路径。绝对路径是:

String path = getServletContext().getRealPath("/WEB-INF/courses.dtd");

关于java - 在 Servlet 中引用文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6889728/

相关文章:

JAVA:字符串问题的 128 位 key 和返回

xml - 如何使用Xsl向Xml文件中的每个节点添加特定属性?

java - web片段和web.xml中servlet监听器的执行顺序

tomcat - tomcat 服务器启动时如何加载 java 类(不是 servlet)

java - 用于在 GridPane 中查找节点位置的代码如何导致 NullPointerException?

java - 使用循环创建多个对象

C# XmlDocument 节点

sql-server - 从数据库中检索数据时如何转义特殊字符?

java - 从 Apache HttpClient 中的 HttpResponse 对象获取 JSON 属性

java - 如何在 Kotlin 中将 intArray 转换为 ArrayList<Int>?