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
如何在Javaservlet中获取文件的路径_Java_Jsp_Servlets_Path - Fatal编程技术网

如何在Javaservlet中获取文件的路径

如何在Javaservlet中获取文件的路径,java,jsp,servlets,path,Java,Jsp,Servlets,Path,我正在本地机器上使用XAMPP创建一个简单的web应用程序。基本上,我想检查文件是否存在,但我不知道如何获取文件的路径 如果我执行以下操作,它会说这个文件存在,这是真的 String path = "C:\\Users\\user\\Desktop\\ProjectName\\web\\files\\filename.txt"; 但是,如果我将项目从一台计算机移动到另一台计算机,则此路径不好,因为路径将不同。我想问的是,我可以使用什么快捷方式来获取文件的位置。我知道在PHP中会是这样的 pat

我正在本地机器上使用XAMPP创建一个简单的web应用程序。基本上,我想检查文件是否存在,但我不知道如何获取文件的路径

如果我执行以下操作,它会说这个文件存在,这是真的

String path = "C:\\Users\\user\\Desktop\\ProjectName\\web\\files\\filename.txt";
但是,如果我将项目从一台计算机移动到另一台计算机,则此路径不好,因为路径将不同。我想问的是,我可以使用什么快捷方式来获取文件的位置。我知道在PHP中会是这样的

path = base_url()."files\filename.txt";
我无法用语言表达我想问的问题,但我想人们会明白的

编辑:


如果有什么不同的话,我也在使用Netbeans。

最容易找到您的路径的地方是执行以下操作,因为每个应用程序服务器处理文件的方式都有点不同:

System.out.println(new File(".").getAbsolutePath());
像这样,在当前目录上打开一个文件句柄,就知道自己的位置了。从那以后,你就知道如何导航了。 要知道,这是一个肮脏的伎俩,只找到你的出发点。根据您想要实现的目标,您最好使用应用程序服务器基础结构来处理文件

如果您想知道如何获取所引用的基本url,则此url存储在servlet请求的请求上下文中:

public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
String url = request.getRequestURL().toString();

当前目录可以是任何内容,并且可以在服务器之间更改,因此这不是正确的方法。返回用于访问web服务器的URL,与web服务器上的文件结构无关。因此,答案的两个部分都没有用处。同意,但是如果我们更详细地了解什么应用服务器和用例,那么问题就更广泛了,我们可以给出一个更有用的答案。当前目录通常可以在应用程序服务器启动时使用参数设置,因此您肯定可以创建访问文件的确定方式。然后在注释中要求澄清,而不是给出无用的答案,在多线程多webapp web服务器中,当前目录不应用于任何内容。Webapp代码应该尽可能少地依赖JVM的状态,以便多个Webapp共享一个web服务器(servlet容器)。要访问web应用程序中的文件,请使用:getServletContext().getResourceAsStream(“/myfile.txt”)当使用Tomcat作为应用程序服务器时,您可以使用System.getProperty(“catalina.base”)找到它使用的基。您也可以创建自己的环境变量,将文件夹位置放在存储文档的位置。不要告诉我。我已经在15分钟前说过了。
web
是web应用程序的文档根吗?例如,
web-INF
web
的子目录,
文件
是top-l在
.war
文件中的evel目录?如果是,请使用。