zoukankan      html  css  js  c++  java
  • java web path

    1,request.getRealPath("/");这个方法已不推荐用

    2,在Servlet 里用this.getServletContext().getRealPath("/");获得要路径。
          或者 request.getSession().getServletContext().getRealPath("/")来获取。

    3,struts里用this.getServlet().getServletContext().getRealPath("/")获得要路径。

    spring中,可以通过

        ContextLoader.getCurrentWebApplicationContext().getServletContext().getRealPath("/")  来获取。

    再转Java获取WEB服务真实路径 :

    (1)、request.getRealPath("/");//不推荐使用获取工程的根路径
    (2)、request.getRealPath(request.getRequestURI());//获取jsp的路径,这个方法比较好用,可以直接在servlet和jsp中使用
    (3)、request.getSession().getServletContext().getRealPath("/");//获取工程的根路径,这个方法比较好用,可以直接在servlet和jsp中使用
    (4)、this.getClass().getClassLoader().getResource("").getPath();//获取工程classes下的路径,这个方法可以在任意jsp,servlet,java文件中使用,因为不管是jsp,servlet其实都是java程序,都是一个class。所以它应该是一个通用的方法。

    再转:

    this.getClass().getClassLoader().getResource("template"); 
       首先,调用对象的getClass()方法是获得对象当前的类类型,这部分数据存在方法区中,而后在类类型上调用getClassLoader()方法是得到当前类型的类加载器,我们知道在Java中所有的类都是通过加载器加载到虚拟机中的,而且类加载器之间存在父子关系,就是子知道父,父不知道子,这样不同的子加载的类型之间是无法访问的(虽然它们都被放在方法区中),所以在这里通过当前类的加载器来加载资源也就是保证是和类类型同一个加载器加载的。 
    最后调用了类加载器的getResourceAsStream()方法来加载资源。
  • 相关阅读:
    [LeetCode]Sliding Window Maximum
    判断两根线段是否相交
    求幂,我居然又没做出来
    C++集合运算函数总结 & 需要有序集合的操作
    effective stl读书笔记 & stl里面提供的算法 & emplace & ostream_iterator
    利用位操作的几道题目
    C++的new_handler
    TCP的可靠性 窗口滑动 拥塞控制
    关于高性能网络编程的一些知识
    三种连接 & DOS & SYNFLOOD & 防御
  • 原文地址:https://www.cnblogs.com/sddychj/p/6509119.html
Copyright © 2011-2022 走看看