当我在我的代码中引用 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/