• java(JSP)中几种获取项目路径方式


    1. 在jsp和class文件中调用的相对路径不同。 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获取你工程的绝对路径。  
    2.   
    3. 另:在Jsp,Servlet,Java中详细获得路径的方法!  
    4.   
    5. 1.jsp中取得路径:  
    6.   
    7. 以工程名为TEST为例:  
    8.   
    9. (1)得到包含工程名的当前页面全路径:request.getRequestURI()  
    10. 结果:/TEST/test.jsp  
    11. (2)得到工程名:request.getContextPath()  
    12. 结果:/TEST  
    13. (3)得到当前页面所在目录下全名称:request.getServletPath()  
    14. 结果:如果页面在jsp目录下 /TEST/jsp/test.jsp  
    15. (4)得到页面所在服务器的全路径:application.getRealPath("页面.jsp")  
    16. 结果:D: esinwebappsTEST est.jsp  
    17. (5)得到页面所在服务器的绝对路径:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent();  
    18. 结果:D: esinwebappsTEST  
    19.   
    20. 2.在类中取得路径:  
    21.   
    22. (1)类的绝对路径:Class.class.getClass().getResource("/").getPath()  
    23. 结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/  
    24. (2)得到工程的路径:System.getProperty("user.dir")  
    25. 结果:D:TEST  
    26.   
    27. 3.在Servlet中取得路径:  
    28.   
    29. (1)得到工程目录:request.getSession().getServletContext().getRealPath("") 参数可具体到包名。  
    30. 结果:E:TomcatwebappsTEST  
    31. (2)得到IE地址栏地址:request.getRequestURL()  
    32. 结果:http://localhost:8080/TEST/test  
    33. (3)得到相对地址:request.getRequestURI()  
    34. 结果:/TEST/test 

    struts2设置了struts.multipart.saveDir后会在根目录建立文件夹,这样会涉及linux下的权限问题,

    最好不要设置,使用struts默认

    需要使用路径时,用下面的方法取得项目根目录的绝对路径(Tools为方法类)

    public static String getRootPath() {
    String classPath = Tools.class.getClassLoader().getResource("/").getPath();
    String rootPath = "";
    //windows下
    if("\".equals(File.separator)){
    rootPath = classPath.substring(1,classPath.indexOf("/WEB-INF/classes"));
    rootPath = rootPath.replace("/", "\");
    }
    //linux下
    if("/".equals(File.separator)){
    rootPath = classPath.substring(0,classPath.indexOf("/WEB-INF/classes"));
    rootPath = rootPath.replace("\", "/");
    }
    return rootPath;
    }


  • 相关阅读:
    内核态和用户态的区别
    【Docker官方文档】理解Docker
    dpdk中kni模块
    linux的deamon后台运行
    在C语言中如何嵌入python脚本
    Docker学习之路(三)Docker网络详解
    Docker学习之路(二)DockerFile详解
    fopencookie函数详解
    Docker学习之路(一)
    C/C++代码覆盖率工具gcov、lcov
  • 原文地址:https://www.cnblogs.com/cuker919/p/4878508.html
Copyright © 2020-2023  润新知