好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

JavaWeb项目中classpath路径详解

在使用 ssh 等框架开发 web 程序时配置文件(xml和properties)存放的 路径 一般为 src 下,当部署程序时则必须存在于 classes 路径下,具体如下

src 不是 classpath , web-inf/classes , lib 才是 classpath

web-inf/ 是资源目录, 客户端不能直接访问,

这话是没错,不过现在的 ide 编译器在编译时会把 src 下的文件(是文件,不是 .java )移到 web-inf/classes 下。不过值得注意的是, spring 配置文件里这个 locations 是 uri 表示,也就是说你写的 jdbc.properties 是当前相对路径,要访问 classpath 记得要这样写: <value>classpath:jdbc.properties</value>

首先 classpath 是指 web-inf 文件夹下的 classes 目录

解释classes含义:

1.存放各种资源配置文件 eg.init.properties log4j.properties struts.xml 2.存放模板文件 eg.actionerror.ftl 3.存放class文件对应的是项目开发时的src目录编译文件

小结:这是一个定位资源的入口

如果你知道开发过程中有这么一句话:惯例大于配置那么也许你会改变你的想法

对于第二个问题

这个涉及的是lib和classes下文件访问优先级的问题: lib > classes

对于性能的影响应该不在这个范畴

classpath 和 classpath* 区别:

classpath:只会到你的class路径中查找找文件; classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找.

首先这个是 web.xml 方式定义参数传给 servlet 。

因此 ,<param-value></param-value> 的解释是接收这个参数的 servlet 执行的。
dispatchservlet 的这个参数是定义配置文件的位置的。

而 spring 中对资源文件的处理做了抽象化,可以用符合 uri 规范的方式声明文件位置,
具体的实现类会解析这个字符串,(可以看 spring 的 resource 相关的文档)
根据里面的声明 来使用合适的方式读取。 classpath: 开头的意思是说从 classpath 中寻找目标文件。

web application 的 classpath 包含 web-inf/lib 下的所有 jar 包和 web-inf/classes 目录

你的 web 项目编译后会有一个 classpath 路径,编译后的 class 文件,资源文件,依赖文件等都会放在这个路径下。 param-value 制定的这个配置文件时 spring 的配置文件, classpath 意思就是说这个配置文件在 classpath 路径下。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接

原文链接:http://www.cnblogs.com/wuchanming/p/5412399.html

查看更多关于JavaWeb项目中classpath路径详解的详细内容...

  阅读:13次