以工程名为/DemoWeb为例:

访问的jsp为: http://localhost:8080/DemoWeb/test/index.jsp 

1 JSP中获得当前应用的相对路径和绝对路径 
(1)得到工程名:request.getContextPath() 
结果:/DemoWeb

(2)得到包含工程名的当前页面全路径:request.getRequestURI() 
结果:/DemoWeb/test/testpath.jsp

(3)得到IE地址栏地址:request.getRequestURL() 
结果:http://localhost:8080/DemoWeb/test/testpath.jsp

(4)得到当前页面所在目录下全名称:request.getServletPath() 
结果:/test/testpath.jsp

(5)得到页面所在服务器的全路径(实际的路径):application.getRealPath("testpath.jsp") 
结果:D:\Develop Files\apache-tomcat-5.5.15\apache-tomcat-5.5.15\webapps\DemoWeb\testpath.jsp 
D:\Develop Files\apache-tomcat-5.5.15\apache-tomcat-5.5.15为tomcat的安装路径

(6) Web应用中有各种获取path或URI,URL的方法,假设网页访问地址:

http://localhost:8080/tradeload/TestServlet

Web应用context: /tradeload

    request.getContextPath()= /tradeload
request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()= http://localhost:8080
request.getRequestURL() = http://localhost:8080/tradeload/TestServlet
request.getRequestURI() = /tradeload/TestServlet
request.getPathInfo() = null
request.getServletPath() = /TestServlet
getServletContext().getRealPath('/') = C:\server\glassfish\domains\domain1\applications\j2ee-modules\tradeload\

2.java 的Class中获得相对路径,绝对路径的方法

(1)类的绝对路径: 

System.out.println(TestPath.class.getResource("/").getPath());
结果:/E:/workspace/workspace_tcc/DemoWeb/WebRoot/WEB-INF/classes/
System.out.println(TestPath.class.getResource(""));
结果:file:/E:/workspace/workspace_tcc/DemoWeb/WebRoot/WEB-INF/classes/demo1/


(2)得到工程的路径:System.getProperty("user.dir") 

结果:E:\workspace\workspace_tcc\DemoWeb

(3)得到项目部署的绝对路径:

//获取运行项目名称

WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
ServletContext sc =wac.getServletContext();
String projectName = sc.getContextPath();

//获取运行项目路径 即tomcat下的项目路径(默认情况下)
//tomcat conf server.xml配置文件若有配置项目路径<Context path="" docBase="D:\seed" reloadable="false" />,则是该docBase的路径

WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();
ServletContext servletContext = webApplicationContext.getServletContext();
String projectPath=servletContext.getRealPath("/").replace("\\", "/");

最新文章

  1. 强加密RNGCryptoServiceProvider
  2. 用Java计算某个日期100天后的日期
  3. iOS - Xcode 插件
  4. oracle用sqlplus创建新用户,不是plsql developer
  5. 修改 OWA 修改密码的生效时间
  6. word2vec——高效word特征提取
  7. lex&amp;yacc6 ---error
  8. Windows 8和CentOS 6.4(64)双系统硬盘安装教程
  9. sqlite详细介绍
  10. PHP中使用Ajax
  11. hdu 1239 Calling Extraterrestrial Intelligence Again (暴力枚举)
  12. ios开发屏幕问题
  13. (转)eclipse安装jetty
  14. GC roots
  15. Nginx+Tomcat+Https 服务器负载均衡配置
  16. Django用openLDAP做认证
  17. jQuery获取点击对象的父级
  18. MVC基于角色权限控制--管理角色
  19. MIT-6.828-JOS-lab3:User Environments
  20. VirtualBox 文件共享及网络配置技巧

热门文章

  1. Hibernate_day01--课程安排_Hibernate概述_Hibernate入门
  2. Android屏幕和尺寸
  3. 逐一取Map值
  4. qt model view 编程总结
  5. 基于HTTP协议的轻量级开源简单队列服务:HTTPSQS 笔记
  6. 有些有IP的项目,公司不至于测试不行砍项目,但是会砍项目组,把IP收回交给别的团队做(因为一旦一测数据太差,公司(投资人)会判断在二测的时候数据能提升到什么样。说白了就是历史信用问题)
  7. PNPoly算法代码例子,判断一个点是否在多边形里面
  8. 脱离JVM? Hadoop生态圈的挣扎与演化
  9. Spark2.0机器学习系列之4:Logistic回归及Binary分类(二分问题)结果评估
  10. 执行Java脚本firefox启动成功,不运行test方法,且提示NullPointerException