我有一个带有名为 msc 的子目录的 webapp。我在 msc 的一个名为 _etc/xml 的子目录中保存了一个 xml 文件。
我本地机器上的绝对路径是c:/myproject/tomcat/webapps/javawork/msc/_etc/xml/msc_approval_managers.xml
我希望 msc 目录中的 jsp 文件能够获取 xml 文件并通过它解析以获取要在 jsp 页面的 HTML 中使用的文本。我知道将 java scriptlet 代码放在 jsp 文件中可能不是最佳编程实践,但这是我必须做的,所以请不要让我为此感到悲伤。我无法控制那部分。最终我的代码将被放到生产服务器上,所以我需要使用相对路径来获取 xml 文件。在 ColdFusion 中,它非常简单(我必须将 CF 站点翻译成 Java),并且分三行完成,如下所示:
<!--- Set path to msc_approval_managers.xml --->
<cfset pathToXml = ExpandPath("/msc/_etc/xml/msc_approval_managers.xml")>
<!--- Read xml file into string variable --->
<cffile action="read" file="#pathToXml#" variable="xmlDoc">
<!--- Parse xml into an xml object --->
<cfset XMLDoc = XmlParse(xmlDoc)>
然后我可以循环遍历XMLDoc
. 显然,Java 没有那么简单。我有代码来解析 xml 并循环它。我只需要找到一种使用相对路径获取文件本身的方法,这样代码就可以上传到生产服务器并知道文件的位置(在该服务器上)而无需绝对路径。这可以在Java中完成,特别是在jsp页面中吗?
任何建议都将不胜感激,同样,请不要质疑为什么它必须在 jsp 页面中,这只是我手头任务必须处理的要求。谢谢。