zoukankan      html  css  js  c++  java
  • 获取项目路径

    /表示文件根目录(web表示项目目录)
    ./ 表示文件目前所在的目录(写与不写等效)
    ../ 表示文件的上一层目录
    绝对路径 = 参考路径 + 相对路径

    // 第一种:获取类加载的根路径
    this.getClass().getResource("/").getPath();    /C:/Users/My/IdeaProjects/OTO/target/classes/
     
    // 获取当前类的所在工程路径; 如果不加“/”  获取当前类的加载目录
    this.getClass().getResource("").getPath();    /C:/Users/My/IdeaProjects/OTO/target/classes/entity/
    
    // 第二种:获取类加载的根路径(不允许以"/"开头)
    this.getClass().getClassLoader().getResource("");    file:/C:/Users/My/IdeaProjects/OTO/target/classes/(URL)
    
    this.getClass().getClassLoader().getResource("").getPath();    /C:/Users/My/IdeaProjects/OTO/target/classes/
    
    // 第三种:通过Thread(不允许以"/"开头)
    Thread.currentThread().getContextClassLoader().getResource("").getFile();    /C:/Users/My/IdeaProjects/OTO/target/classes/
    
    获取JavaEE项目的资源路径:
    getRealPath()方法中的参数, 是以WEB-INF目录的父目录为根目录进行查找
    获取WEB-INF目录的父目录下的资源,而且src的源码编译后的class文件,也会存放在WEB-INF/classes文件夹下,
    所以获取JavaEE资源的方法,也适用于获取Java普通资源
    
    得到当前工程的根路径
    String path = request.getContextPath();        /sell
    
    得到真实目录
    String path = request.getServletContext().getRealPath(“/”) ;         E:apache-tomcat-7.0.65webappssell
    
    
    servletContext.getRealPath("");       D:apache-tomcat-7.0.52项目名
    
    servletContext.getRealPath("/");       D:apache-tomcat-7.0.52项目名
    
    servletContext.getRealPath("/文件名/资源名");       D:apache-tomcat-7.0.52项目名文件名资源名
    
    jsp中取得路径:
    
    以工程名为TEST为例:
    
    (1)得到包含工程名的当前页面全路径:request.getRequestURI()
    结果:/TEST/test.jsp
    
    (2)得到工程名:request.getContextPath()
    结果:/TEST
    
    (3)得到当前页面所在目录下全名称:request.getServletPath()
    结果:如果页面在jsp目录下 /TEST/jsp/test.jsp
    
    (4)得到页面所在服务器的全路径:application.getRealPath("页面.jsp")
    结果:D:
    esinwebappsTEST	est.jsp
    
    (5)得到页面所在服务器的绝对路径:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent();
    结果:D:
    esinwebappsTEST
    
    2.在类中取得路径:
    
    (1)类的绝对路径:Class.class.getClass().getResource("/").getPath()
    结果:/D:/TEST/WebRoot/WEB-INF/classes/
    
    (2)得到工程的路径:System.getProperty("user.dir")
    结果:D:TEST
    
    3.在Servlet中取得路径:
    
    (1)得到工程目录:request.getSession().getServletContext().getRealPath("") 参数可具体到包名。
    结果:E:TomcatwebappsTEST
    
    request.getSession().getServletContext().getRealPath("/upload") 参数可具体到包名。
    结果:E:TomcatwebappsTESTupload
    
    (2)得到IE地址栏地址:request.getRequestURL()
    结果:http://localhost:8080/TEST/test
    
    (3)得到相对地址:request.getRequestURI()
    结果:/TEST/tes
    

    示例

    public class PathUtils {
        //获取系统分隔符
        private static String separator = System.getProperty("file.separator");
    
        //获取图片基础路径
        public static String getImgBasePath() {
            String os = System.getProperty("os.name");
            String basePath = "";
            if (os.toLowerCase().startsWith("win")) {
                basePath = "D:/image/";
            } else {
                basePath = "/home/image/";
            }
            basePath = basePath.replace("/", separator);
            return basePath;
        }
    
        //获取店铺条目下不同店铺的图片路径
        public static String getShopPath(long shopId) {
            String imagePath = "shop/" + shopId + "/";
            return imagePath.replace("/", separator);
        }
    }
    
    public class ImageUtils {
        //随机数
        private static final Random r=new Random();
    
        //储存图片并获取店铺图片路径(基础路径+店铺分类路径+随机文件名)
        public static String saveImgAndGetPath(CommonsMultipartFile multipartFile,long shopId){
            String path = PathUtils.getImgBasePath()+PathUtils.getShopPath(shopId)+getRandomFileName()+getExtensin(multipartFile);
            File file = new File(path);
            if(!file.getParentFile().exists()){
                file.getParentFile().mkdirs();
            }
            try {
                Thumbnails.of(multipartFile.getInputStream()).toFile(file);
            } catch (IOException e) {
                throw new ShopException("创建缩略图失败");
            }
            return path;
        }
    
        //获取文件的扩展名
        public static String getExtensin(CommonsMultipartFile multipartFile){
            String originalFilename = multipartFile.getOriginalFilename();
            return originalFilename.substring(originalFilename.lastIndexOf('.'));
        }
    
        //随机文件名:当前时间 + 随机五位数
        public static String getRandomFileName(){
            //获取随机五位数
            int random = r.nextInt(89999)+10000;
            String newTime = sdf.format(new Date());
            return newTime+random;
        }
    }
    
  • 相关阅读:
    隔壁小孩都要知道的Drupal配置
    Cobaltstrike、armitage联动
    YxCMS 1.4.7 最新版漏洞分析
    业务逻辑漏洞探索之暴力破解
    刺透内网的HTTP代理
    pwn入门之栈溢出练习
    史上最完整的MySQL注入
    ISG 2018 Web Writeup
    3-4 计算长方形的周长和面积
    【Lucene4.8教程之二】索引
  • 原文地址:https://www.cnblogs.com/loveer/p/11360558.html
Copyright © 2011-2022 走看看