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