获取JAVA[WEB]项目相关路径的几种方法
在jsp和class文件中调用的相对路径不同。
在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获取你工程的绝对路径。
如下为在Jsp,Servlet,Java中详细获得路径的方法!以Java Web工程名为MyPath为例:
1.jsp中取得路径:
(1)得到包含工程名的当前页面全路径:request.getRequestURI();
结果:/MyPath/jsp/pathpage.jsp
(2)得到工程名:request.getContextPath();
结果:/MyPath
(3)得到当前页面所在目录下全名称:request.getServletPath();
结果:如果页面在jsp目录下 /jsp/pathpage.jsp
(4)得到页面所在服务器的全路径:application.getRealPath("jsp/pathpage.jsp");
结果:F:\apache-tomcat-6.0.35\webapps\MyPath\jsp\pathpage.jsp
(5)得到页面所在服务器的绝对路径:String absPath = new
java.io.File(application.getRealPath(request.getServletPath())).getParent();
结果:F:\apache-tomcat-6.0.35\webapps\MyPath\jsp
(6)得到项目的访问路径:request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/";
结果:http://localhost:8080/MyPath/
2.在类中取得路径:
(1)得到class文件的存放路径:String path = Class.class.getClass().getResource("/").getPath();
结果:/F:/WorkSpace/MyPath/WebRoot/WEB-INF/classes/
//str会得到这个函数所在类的路径
String str = path.toString();
//截去一些前面1个无用的字符
str = str.substring(1,str.length());
//将%20换成空格(如果文件夹的名称带有空格的话,会在取得的字符串上变成%20)
str = str.replaceAll("%20", " ");
//查找"WEB-INF"在该字符串的位置
int num =
str.indexOf("WEB-INF");
//截取即可
str = str.substring(0,
num+"WEB-INF".length());
最后结果为:F:/WorkSpace/MyPath/WebRoot/WEB-INF
(2)得到工程的路径:System.getProperty("user.dir");
结果:F:\WorkSpace\MyPath
(3)得到class的绝对路径:PathJava.class.getClass().getResource("").getPath();
结果:/F:/WorkSpace/MyPath/WebRoot/WEB-INF/classes/com/path/test/
3.在Servlet中取得路径:
(1)得到工程目录:request.getSession().getServletContext().getRealPath("")
参数可具体到包名。
结果:F:\apache-tomcat-6.0.35\webapps\MyPath
(2)得到IE地址栏地址:request.getRequestURL()
结果:http://localhost:8080/MyPath/jsp
(3)得到相对地址:request.getRequestURI()
结果:/MyPath/jsp
获取JAVA[WEB]项目相关路径的几种方法的更多相关文章
- [转]获取JAVA[WEB]项目相关路径的几种方法
http://blog.csdn.net/yaerfeng/article/details/7297479/ 在jsp和class文件中调用的相对路径不同. 在jsp里,根目录是WebRoot 在cl ...
- 对Java Web项目中路径的理解
第一个:文件分隔符 坑比Window.window分隔符 用\;unix采用/.于是用File.separator来跨平台 请注意:这是文件路径.在File f = new File(“c:\\hah ...
- java中获取类加载路径和项目根路径的5种方法
import java.io.File; import java.io.IOException; import java.net.URL; public class MyUrlDemo { publi ...
- web项目docker化的两种方法
标题所讲的两种方法其实就是创建docker镜像的两种方法 第一种:启动镜像后进入容器中操作,将需要的软件或者项目移动到容器中,安装或者部署,然后退出即可 第二种:编写dockerfile,将需要的镜像 ...
- java获取类加载路径和项目根路径的5种方法
// 第一种:获取类加载的根路径 D:\IDEAWorkspace\hs-bluetooth-lock\src\applications\bluetooth-api\target\classes Fi ...
- 获取SilverLight.Web项目中路径Uri
方法一: //获取指定要呈现的xaml内容的包活xaml文件Uri var strFullUrl = Application.Current.Host.Source.AbsoluteUri; if ( ...
- Java中获取项目根路径和类加载路径的7种方法
引言 在web项目开发过程中,可能会经常遇到要获取项目根路径的情况,那接下来我就总结一下,java中获取项目根路径的7种方法,主要是通过thisClass和System,线程和request等方法. ...
- JAVA WEB项目中各种路径的获取
JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报 分类: JAVA开发(41) 1.可以在s ...
- 【转】Java Web 项目获取运行时路径 classpath
Java Web 项目获取运行时路径 classpath 假设资源文件放在maven工程的 src/main/resources 资源文件夹下,源码文件放在 src/main/java/下, 那么ja ...
随机推荐
- JS手札
Node JS 关于JS调用 被调用:exports.cv=cv; cv为类,可以使用其方法cv.***: cv为函数名,可以使用其函数cv( , ): 调用: var cv=require(cv); ...
- 最小生成树——prim算法
prim算法是选取任意一个顶点作为树的一个节点,然后贪心的选取离这棵树最近的点,直到连上所有的点并且不够成环,它的时间复杂度为o(v^2) #include<iostream>#inclu ...
- Android Studio的简单设置:
4.关闭更新: 如下图所示: 6.添加api文档悬浮提示: AS默认是没有api文档悬浮提示的,只有按住[Ctrl+Q]太会出现提示.如果要添加api的自动悬浮提示,设置如下: 上图中,在红框部分打钩 ...
- php部分---PDO;
PDO数据访问抽象层 PDO的三个功能: 1.操作其它数据库2.事务功能3.防止SQL注入攻击 操作数据库: 造PDO对象 //$dsn = "mysql:dbname=mydb;host= ...
- UVa 221城市正视图(离散化)
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- 备忘DES带向量的加密和解密与DES简单加密与解密
package com.ego.util; import java.security.Key; import java.security.SecureRandom; import java.secur ...
- 今天网站后台登录页面需要生成一个二维码,然后在手机app上扫描这个二维码,实现网站登录的效果及其解决方案如下
要实现二维码登录,需要解决2个技术,1.需要js websocket 与后台php实现长连接技术 2.实现二维码生成技术 要实现这个功能第二个算是比较简单,只需要下载一个php的二维码生成器即可,但要 ...
- 架设lamp服务器后,发现未按照 Apache xsendfile模块,
今天在架设lamp服务器后,发现apache 未按照xsendfile模块,于是查找资料按照如下: 安装apache xsendfile模块yum install mod_xsendfile
- git的使用,通过git上传修改工程
一:下载git,https://git-scm.com/downloads(若下载速度慢,可下载百度下的)接下来,默认配置,一直next 二:在github上注册账号,并新建一个项目test(英文有点 ...
- Eclipse中的Link with Editor功能是如何实现
Eclipse中的Link with Editor功能是如何实现 - kaukiyou的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/kaukiyou/articl ...