Java自学系列:弄清项目各文件作用(初稿)

[size=large][/size] 自己不是科班出身,转行IT,自我感觉比本科的一些朋友都差,底子也薄弱,现在真是一片空白,连最简单的程序都不会,着实汗颜。不过既然决定学这一行就爱一行,从头开始,坚持到最后,无所遗憾。故开始叙写学习历程,一方面自勉,一方面与人交流学习。
我也是使用eclipse软件,可是作为一个菜鸟,我觉得首先要弄清楚各个文件的功能作用。很遗憾,很多牛人以及有所基础的人都不怎么在意这个,觉得理所当然。但是对于我这个从零学起的人来说,这个也许是至关重要的,为了以后的朋友少走弯路,我特别将自己搜集的资料整理,以飨大家!
在Eclipse中只要创建一个Dynamic Web Project,就可以根据创建向导创建出一个典型Java Web站点的目录结构。除非有特殊需要,在大多数情况下都没有必要修改这个目录结构,这也是Web容器的缺省目录结构,我们只要直接使用即可。一般的目录结构如下:

WebContent<WebRoot> (站点根目录,可以替换符合Tomcat)
|---META-INF (META-INF文件夹)
| |---MANIFEST.MF (MANIFEST.MF配置清单文件)
|---WEB-INF (WEB-INF文件夹)
| |---web.xml (站点配置web.xml)
| |---lib (第三方库文件夹)
| | |---*.jar (程序需要的jar包)
| |---classes (class文件目录)
| |---...*.class (class文件)
|---<userdir> (自定义的目录)
| |---*.jsp,*.js,*.css (自定义的资源文件)
|---<userfiles> (自定义的资源文件)

●META-INF 目录
  大多数 JAR 文件包含一个 META-INF 目录,它用于存储包和扩展的配置数据,如安全性和版本信息。Java 2 平台识别并解释 META-INF 目录中的文件和目录,以便配置应用程序、扩展和类装载器.
●/WEB-INF/web.xml:web.xml文件用于配置Web程序,它被称为Web应用程序部署描述器(Web Application Deployment Desicription)。他是一个用来描述Servlet和其他Web应用程序组成部分以及它们的初始参数等属性的XML文档。
●/WEB-INF/classes:这个子目录用于存储所有Java类文件和相关资源文件,如图片、语言信息等。这些类文件可能是servlet,也可能是普通的Java类。需要注意的是,如果一个类文件属于某个包(package),则需要将整个目录层次结构放置于classes目录下。
●/WEB-INF/lib:该子目录用于存放Web应用程序所需的所有库文件,这些库文件是以压缩的.jar文件格式存储的,它包含所有Web应用程序所需的类文件和相应的资源文件。比如,一个电子商务应用需要访问Oracle,就需要将要使用的JDBC驱动程序库文件都放置于lib目录下。


一般Java Web的项目目录结构

WebRoot-
-common (系统框架公用jsp 如footer.jsp,header.jsp)
-images
-scripts (javascript库等)
-dojo --dojo库,进行库的统一版本管理
-ext --extjs库
-project -- 当前项目js目录
-styles - (css模版)
- css 风格1
- css 风格2
-WEB-INF -
-pages (项目jsp页面,为提高安全性,放到WEB-INF 下面)
-classes
-conf (项目使用配置文件)
-lib

因为公司里的项目是Spring MVC框架,因此我把寻找到的一些有关资料也上传给大家分享,希望有所帮助。
Web目录结构及类包结构规划
事先规划好程序的类包结构和Web目录结构是非常重要的,可以使后续开发的程序文件各得其所,得到一个结构清晰的应用程序,方便后期的扩展和维护。我们对论坛应用的源码包和Web程序目录作出以下的规划,如图17-13和图17-14所示。

[img]http://dl.iteye.com/upload/attachment/0083/6559/459e1815-fdf8-377c-9f64-78aa9ac8d224.jpg[/img]

[img]http://dl.iteye.com/upload/attachment/0083/6561/92851f47-9b53-309d-8c5b-5feda8979505.jpg[/img]

所有的源代码文件位于src/main文件夹中,在main文件夹中规划两个子文件夹,其中resources文件夹专门用于放置系统配置文件,java文件夹用于放置Java源代码文件。所有类位于com.baobaotao包中,该类包下为每个分层提供一个相应的类包,如dao对应持久层的程序,而service和web分别对应服务层和Web层的程序。由于PO会在多个层中出现,因此我们为其提供了一个单独的domain包。为了避免在程序中直接使用字面值常量,需要通过常量定义的方式予以规避,我们在cons包中定义应用级的常量。为了统一管理应用系统异常体系,我们在exception包中定义业务异常类及系统异常等。你可以在分层包下再按功能模块定义子包,由于我们的论坛案例比较简单,每个包都不设子包。

我们为DAO和服务类Bean分别提供一个Spring配置文件,前者为baobaotao-dao.xml,后者为baobaotao-service.xml。jdbc.properties属性文件提供了数据库连接的信息,这个属性文件将被baobaotao-service.xml使用。log4j.properties属性文件是Log4J的配置文件。我们将这些配置文件直接放置在类路径下。

Web目录结构很简单,我们将大部分的JSP放置在WEB-INF/jsp目录中,防止用户直接通过URL调用这些文件。WEB-INF/baobaotao-servlet.xml为Spring MVC的配置文件。如果项目的JSP文件数目很多,则可以在WEB-INF/jsp目录下按功能模块划分多个子文件夹。一般的Web应用都会在Web根目录下创建images、css、js等文件夹,分别放置图片、CSS以及JS的资源文件。我们的论坛应用比较简单,没有这些资源,所以这些文件夹没有出现在目录结构中。

单元测试类包结构规划

规划好程序的类包结构之后,需要根据应用程序分层结构规划相应的单元测试结构。为了单元测试模块清晰、可读,一般情况下,可以根据应用程序分层建立相应的单元测试目录结构,如图17-15所示。

[img]http://dl.iteye.com/upload/attachment/0083/6563/42eb4a90-7a86-37b8-a277-ad73fc54ebdb.jpg[/img]

与应用程序代码结构一样,测试所有的源代码文件使用专门的文件夹进行管理,所有与单元测试相关的文件,都放置在src/test文件夹中,在test文件夹中规划两个子文件夹,其中resources文件夹专门用于放置测试配置文件,java文件夹用于放置测试Java源代码文件。所有测试类位于com.baobaotao包中,该类包下为每个分层提供一个相应的类包,如dao对应持久层的测试代码,而service和web分别对应服务层和Web层的程序测试代码。


以上一些是我摘抄的资源,感谢作者的分享精神,对此表示感谢:
http://blog.csdn.net/boral_li/article/details/5965873
http://book.51cto.com/art/201203/321267.htm
http://xfjt297857539.iteye.com/blog/1462873
时间匆忙,晚点再修改。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值