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
Java 我可以使用servlet或jsp代码获取eclipse项目路径吗?_Java_Jsp_Servlets_Jakarta Ee - Fatal编程技术网

Java 我可以使用servlet或jsp代码获取eclipse项目路径吗?

Java 我可以使用servlet或jsp代码获取eclipse项目路径吗?,java,jsp,servlets,jakarta-ee,Java,Jsp,Servlets,Jakarta Ee,为什么我要走这条路?而不是我想得到下面的路径,这是我需要的 C:\Users\Stark\Documents\Eclipse IDE\Demo 如何解决这个问题?我需要这个项目的位置上传到这个位置我的文件,所以帮助我 之所以会出现“奇怪”路径,很简单,因为您使用的是Eclipse。 当您在Eclipse上运行应用程序时,Eclipse端将创建新路径并在那里运行您的应用程序。这就是为什么“getRealPath(“/”)会给你提供奇怪的路径,因为你的应用程序现在运行在一个临时文件夹上 Eclip

为什么我要走这条路?而不是我想得到下面的路径,这是我需要的

C:\Users\Stark\Documents\Eclipse IDE\Demo

如何解决这个问题?我需要这个项目的位置上传到这个位置我的文件,所以帮助我

之所以会出现“奇怪”路径,很简单,因为您使用的是Eclipse。 当您在Eclipse上运行应用程序时,Eclipse端将创建新路径并在那里运行您的应用程序。这就是为什么“getRealPath(“/”)会给你提供奇怪的路径,因为你的应用程序现在运行在一个临时文件夹上

Eclipse为什么要这样做?以下是我的想法

  • 这样,Eclipse可以更快地运行您的应用程序(缓存的应用程序或代码等)
  • 您的原始代码将在Eclipse所做的任何不必要的更改中保持安全
  • 那么我如何解决这个问题呢?

    我建议您使用“属性”类来设置上载路径。通过这种方式,您可以将URL设置从逻辑中分离出来,代码将变得易于维护。而且您不会遇到任何像这样意外的“环境”错误,因为您的设置值将由您的输入固定

    下面是使用“属性”的固定代码


    我希望我的回答能对您有所帮助。

    为什么您的Web应用程序需要该路径?当webapp部署用于生产时,它将不会有它。仅供参考:不要对Java代码使用代码段。代码片段仅用于JavaScript。是的,我不需要那个路径,但我必须上传应该在项目文件夹中的文件,对吗?那么如何使用相对路径上传这些文件?但在netbeans中,它工作正常,它显示正确的绝对路径,但eclipse显示.metadata文件夹。您不能上传到项目文件夹。正如我已经说过的,当您将代码部署到服务器时,没有项目文件夹。您甚至不能在java文件或资源文件旁边上传,因为它们都在jar文件或war文件中。由webapp创建的任何文件(包括上载的文件)都必须存储在项目文件夹/部署位置之外的其他位置。您的回答很好,但我无法获取上载的文件(例如:我上载了图像文件,我只是尝试使用查看图像,但显示了“您无法访问本地文件”的错误)为什么会这样?
     <%=session.getServletContext().getRealPath("/") %>
            <%
                String path= session.getServletContext().getRealPath("/");
    
                FileOutputStream file = new FileOutputStream(path+"\\testingfile.txt");
    
            %>
    
    <%
    
    Properties prop = new Properties();
    InputStream input = null;
    
    try {
    
        input = new FileInputStream("config.properties");
    
        // load a properties file
        prop.load(input);
    
        // get the property for upload path
        String path=prop.getProperty("path.upload");
        FileOutputStream file = new FileOutputStream(path+"\\testingfile.txt");
    
        //TODO:rest of your logic codes will come here.
    
    } catch (IOException ex) {
        ex.printStackTrace();
    } finally {
        if (input != null) {
            try {
                input.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    %>
    
    path.upload=C:\Users\Stark\Documents\Eclipse IDE\Demo