用tomcat ,jsp中关于所有路径API总结及 常用的用相对路径获得绝对路径的API

来源:互联网 发布:模拟钢琴软件好用吗 编辑:程序博客网 时间:2024/06/03 17:23

首先我现在url中输入http://localhost:8080/testajax/test


然后我自己在tomcat中的一个servlert中打印语句为


System.out.println(req.getContextPath());
System.out.println(req.getServletPath());
System.out.println(req.getRealPath("/"));
System.out.println(req.getRequestURI());
System.out.println(this.getServletContext().getRealPath("/Testurl.class"));



在服务器打印的是

/testajax
/test
D:\apache-tomcat-5.5.23\webapps\testajax\
/testajax/test
D:\apache-tomcat-5.5.23\webapps\testajax\Testurl.class



由此可以说明getContestPath获得是webapp目录下开始的这个绝对路径,在jsp中用El表达式是pageContext.request.contextPath

也是这个意思

servletPath毫无疑问就是rul-pattern


getRealPath

只要一看到这个realPath 真是的路径  想都不用想,及时真是的路径 一听就是要全路径了

不过这个getRealPath这个方法除了request对象有之外还有 servletcontext对象也有,这2个对象都有这个方法从这个列子中看

好像每什么区别


getServletUri就是获得是端口号之后的信息,如果有表单,不包括表单


======================================================================================



让我我们先来说说  classname.class.getresourseasStream("");

这个方法也是通过括号里面的参数制定你资源的路径,如果路径第一个字符不是"/"那么 就是相对路径,相对于当前的这个类所在的

路径比如我这个类在 org.apache.test这个包下类的名字就叫做 Test

那么Test.class.getResourceAsStream("config.properties");这个方法的作用就是在类Test这个同级目录 寻找这个config。properties文件导入输入流

那么Test.class.getResourceAsStream("util/config.properties");那么这个方法的作用是 在这个类同级的目录寻找 这个util这个子包

导入这个子包下的config.properties这个配置文件,

 

如果Test.class.getResourceAsStream("/org/apache/test/util/config.properties");

如果字符串里面的第一个字符是 /  哪么这个斜杠代码这个工程下的src目录 ,这个方法的意思代表

导入这个工程下的org.apache.test.util包下的配置文件

 

====================================================================================

下面我们来说className.class.getclassLoader.getResourseAsStream("")

这个方法我个人的理解就是把 相对的路径一到了类加载器的路径,就是classpath,一般myeclipse里面每一个工程的src目录在编译后转到bin目录下,bin目录就是classpath。

如果 你在src目录下有一个配置文件config.perproties

那么Test.class.getClassLoader().getResourceAsStream("class.properties");

就可获得资源文件

 

如果 你要获得org.apache.test包下的配置文件,那么 就可以写成("org/apache/test/config.properties")

 

原创粉丝点击