转载:https://www.jianshu.com/p/ad644c5b6426
war包就是一个web应用程序。
1. 一个web应用需要哪些文件
一个web应用,直观地来说,需要一个界面,这个界面是一个用户交互的界面,负责给用户提供信息输入的地方,所以一个web页面是要有的,这里设定为jsp页面,接着往下想,这些数据需要保存下来,那么需要一个界面背后的东西,这个东西其实就是一个java类,jsp把网页上的数据穿送给后台的java类,java类在得到这些数据之后再进行数据相关的工作,如存入数据库,给出相关统计数据等等,这里的java类比如servlet,那么接着你就会想,servlet是别人的东西啊,我们需要引入它,于是我们还需要一些外部依赖包,就是一些jar包。自己写的java类编译之后生成的是class文件。
好,现在我们把自己想成是整个应用的组织人,我们要召集各位同事,jsp同志,java类同志来一起为公司的数据采集工作献身了,和之前一样,你能很直观的看到jsp在最前面工作,其他的都是幕后英雄,那后面的人怎么办,我也要把他们协调起来,于是我必须有一个list写明后面有谁在工作,在我们的应用里,后台的任务是java类来完成的,这里是servlet,于是就有了一个web.xml的文件来记录这个web应用中有哪些类,那么在jsp页面上只需要给出这个servlet的名字即可,然后我们在web.xml文件中详细记录这个servlet的各种信息,以便应用能够准确的使用它。那么你可能会想,为什么不将详细信息直接记录在jsp页面呢?我觉得可能是犹由于模块之间的低耦合要求吧。至于怎么工作呢,后面我们再来说。
2. 这些东西放在什么位置
我们已经有了应用需要的文件,接下来需要让这些文件各司其职,也就是把文件放在固定的位置,需要他们的时候去对应的位置找。那么这种位置关系就是应用的目录结构。一个基本的war包的目录结构如图1所示,根目录下有一个index.jsp文件,是应用的界面,当然你也可以加上css等让界面变得更炫。然后有一个WEB-INF文件夹,这个是war包的核心,在WEB-INF文件夹有web.xml文件,lib文件夹下存的是需要用到的外部依赖的jar包,classes下存的是带包名结构的java类,因为包名和文件目录是一一对应的关系,所以你在classes文件夹下就会看到和包名一致的目录结构,最后一层就是你编译好的class文件。
作者:汪之涛
链接:https://www.jianshu.com/p/ad644c5b6426
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。