Java路径问题解决方案:[2]应用篇

2025-10-27 22:48:48

实际开发中遇到的关于路径问题的简单总结,仅供大家参考。

工具/原料

JAVA JDK版本 jdk1.7.0_51

windows 7 操作系统和Eclipse加部分应用插件

方法/步骤

相对路径都可以透过一下方式获得:

public class URLTest{

    public static void main(String[] args) {

    String relativelyPath = System.getProperty("user.dir");

    System.out.println("相对路径:"+relativelyPath);

    }

}

此方法是Java项目的根路径,而Java Web项目可能是服务器的某个路径并且不同的服务器路径也有不同,例如tomcat服务器是相对于安装目录“\bin”;在Java web项目中不要使用相对于当前用户目录的相对路径。

在java.io.*包中的类是根据当前用户目录分析相对路径名称的,此目录是由user.dir指定的,通常是Java虚拟机的调用目录,因此在使用java.io.*包中的类时,尽量避免使用相对路径。

代码展示图如下:

Java路径问题解决方案:[2]应用篇

在Java Web项目中获取路径,建立一个servlet在init()方法中添加如下代码获取:

package com.test;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class ServletSample extends HttpServlet {

    private static final long serialVersionUID = 416863504806100479L;

    /**

    * 初始化加载,即应用被调用之后只加载一次

    */

    public void init() throws ServletException {

        String realPath = this.getServletContext().getRealPath("/");

        System.out.println(realPath);

    }

}

在Java Web项目中获取路径,建立一个servlet在doPost()方法中添加如下代码获取,不能通过浏览器中输入URL地址调用:

package com.test;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class ServletSample extends HttpServlet {

    private static final long serialVersionUID = 416863504806100479L;

    /**

    * POST方式

    */

    protected void doPost(HttpServletRequest req, HttpServletResponse resp)

        throws ServletException, IOException {

        String realPath = req.getSession().getServletContext().getRealPath("/");

        System.out.println(realPath);

    }

}

在Java Web项目中获取路径,建立一个servlet在doGet()方法中添加如下代码获取,可以通过浏览器中输入URL地址调用:

package com.test;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class ServletSample extends HttpServlet {

   private static final long serialVersionUID = 416863504806100479L; 

   /**

    * GET方式

    */

    protected void doGet(HttpServletRequest req, HttpServletResponse resp)

        throws ServletException, IOException {

        String realPath = req.getSession().getServletContext().getRealPath("/");

        System.out.println(realPath);

    }

}

上述方式中init()的含义是初始化加载,即应用被调用之后只会加载一次;获取项目文件路径的详细代码如下图所示:

Java路径问题解决方案:[2]应用篇

在Java Web项目中通过配置web.xml来实现servlet方法的调用,配置如下,

<servlet>

     <servlet-name>servlet</servlet-name>

     <servlet-class>com.test.ServletSample</servlet-class>

</servlet>

<servlet-mapping>

    <servlet-name>servlet</servlet-name>

    <url-pattern>/servlet</url-pattern>

</servlet-mapping>

这是sevlet的配置方式,具体配置如下图所示:

Java路径问题解决方案:[2]应用篇

注意事项

servlet写配置文件web.xml

(共篇)上一篇:基础篇
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢