我在项目中使用.getServletContext().getRealPath("/")获取项目根目录的绝对路径,但是获取到的是Tomcat的路径,而不是项目本身所在的eclipse的workspace路径,尽管获取到Tomcat路径是合理的,但是在项目调试的过程中Tomcat下的路径无法被localhost:8080正确获取。
求教:如何获得workspace的路径?或者如何在localhost:8080下正确获取Tomcat路径下的资源?

解决方案 »

  1.   

    如何获得workspace的路径?
    ——不能,运行环境跟开发环境没有半毛钱关系。除非你直接将开发环境发布出去。如何在localhost:8080下正确获取Tomcat路径下的资源?
    ——不知道你需要什么样的资源,一般来说,只要是 CLASSPATH 和 WEB-INF/lib 或 WEB-INF/classes 范围内能访问到的资源,都能很方便的获取到。
      

  2.   

    比如我的项目叫mywebapp,我需要获取的资源是/uploads文件夹下的一张图片a.png,我在页面里面写src="/uploads/a.png",此时,a.png存放在D:\Tomcat 7.0\wtpwebapps\mywebapp\uploads是无法被页面获取的,但是存放在D:\workspace\mywebapp\src\main\webapp\uploads下可以被读取,这个要怎么解决才能在前者的路径下也能被页面获取?
      

  3.   

    “我在页面里面写src="/uploads/a.png"”绝对路径用错了,应该是:<img src="<%=request.getContextPath()%>/uploads/a.png"
      

  4.   

    我写错了前面,我想用相对路径,src="uploads/a.png" 不知道要怎么写?
      

  5.   

    我想说不建议用相对路径,在Web开发中会遇到各种问题,尤其是当你引入了MVC,用Servlet做重定向处理只有。