IT虾米网

java之在 Servlet 中引用文件

bonelee 2023年11月15日 编程语言 124 0

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


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!