Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/17.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
Servlets 使用servlet获取上下文路径_Servlets - Fatal编程技术网

Servlets 使用servlet获取上下文路径

Servlets 使用servlet获取上下文路径,servlets,Servlets,jboss-web.xml中的上下文路径被称为/Test,但我的war文件名是Test-0.0.1。 我需要使用HttpServlet的war文件名。请告诉我函数名。 我尝试了getContextPath(),但它返回Test。 谢谢ServletContext。getContextPath()是获取上下文路径的方法。它可能不同于war文件名,但我想不出您需要war文件名的原因。如果war已展开,您可以结合使用以获得展开的文件夹名。这将与WAR文件名相同 String name = new Fi

jboss-web.xml中的上下文路径被称为
/Test
,但我的war文件名是
Test-0.0.1
。 我需要使用
HttpServlet
的war文件名。请告诉我函数名。 我尝试了
getContextPath()
,但它返回Test。
谢谢

ServletContext。getContextPath()是获取上下文路径的方法。它可能不同于war文件名,但我想不出您需要war文件名的原因。

如果war已展开,您可以结合使用以获得展开的文件夹名。这将与WAR文件名相同

String name = new File(getServletContext().getRealPath("/")).getName();

从ServletAPI无法访问war文件名。war文件名与上下文根不同。而且,即使是
ServletContext.getRealPath()
也是war文件的提取位置,这可能会有所不同。

以下是可用函数的列表,以及显示它们之间关系的图形。在本例中,war文件名通常位于“上下文路径”部分,在本例中为“myapp”。这是TomCat从WAR文件创建的文件夹,虽然基于WAR文件名,但不需要相同。查找名为“Test”的文件夹


(From)

@BaluC,但是getRealPath()可能会给出content root的值,该值将是context root。另一方面,WAR文件名可能与上下文根不同,对吗?该图非常出色,并突出了官方Javadoc for HttpServletRequest的不足。我曾尝试添加此图作为StackOverflow上其他问题的答案,但版主已将其删除,因为尽管该图回答了许多问题,主持人认为,如果你将“相同”的答案放入多个问题中,那么这些问题应该标记为重复。两个相同的问题和两个需要相同图表来解释答案的问题之间有很大的区别。如果您认为有帮助,请将图表复制到其他问题中。更新的博客链接: