Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 如何在我的webapp中指定文件路径?_Jsp_Xml Parsing_Relative Path - Fatal编程技术网

Jsp 如何在我的webapp中指定文件路径?

Jsp 如何在我的webapp中指定文件路径?,jsp,xml-parsing,relative-path,Jsp,Xml Parsing,Relative Path,我有一个webapp,它有一个子目录msc。我在msc的一个子目录中保存了一个xml文件,名为_etc/xml 我的本地机器上的绝对路径是c:/myproject/tomcat/webapps/javawork/msc/\u etc/xml/msc\u approval\u managers.xml 我希望msc目录中的jsp文件能够获取xml文件并通过它进行解析,以获取jsp页面HTML中使用的文本。我理解将java scriptlet代码放入jsp文件可能不是最佳编程实践,但这正是我需要做的

我有一个webapp,它有一个子目录msc。我在msc的一个子目录中保存了一个xml文件,名为_etc/xml

我的本地机器上的绝对路径是
c:/myproject/tomcat/webapps/javawork/msc/\u etc/xml/msc\u approval\u 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页面中,这正是我必须处理手头任务的要求。谢谢。

这对jsp来说真是个奇怪的任务。。。但是您可以获得真实路径,然后用代码加载和解析文件

<%
String path = request.getServletContext().getRealPath("/msc/_etc/xml/msc_approval_managers.xml");
out.write(path);
%>

或获取输入流:

<%
java.io.InputStream stream = request.getServletContext().getResourceAsStream("/msc/_etc/xml/msc_approval_managers.xml");
if (stream != null) out.write("Got input stream ..." );
%>

非常感谢。这正是我想要的。