文件包War包
PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,代码几天不写就忘。目前又不当COO,还是得用心记代码哦!
war是一个JAR文件,其内容包含: JSP页面,JavaServlet,Java classes,XML文件,标签库,静态页面以及其它构成(constitute)Web应用程序的资源。
结构特征
- 一个web.xml文件;
- 全部的JAR文件放在/WEB-INF/lib目录中;
- 全部的.class文件放在/WEB-INF/classes目录中。
- META-INF这个目录直接放在war中,与WEB-INF目录是统一级的,一般只有一个文件:MANIFEST.MF。
一般来说,须要辨别的主要是两个目录,一个是WEB-INF目录,一个是根目录下除WEB-INF以外的目录。前者有访问掩护,后者则可以被公开访问。
应用上下文(application context)
每一个war文件都有一个应用上下文,这个上下文就是一个相对于应用服务器完全限定域名(full qualified domain name)的保存命名空间(reservednamespace)。这个命名空间的名字默认是war包的文件名。
比如你的服务器的完全限定域名是:http://localhost:8080/,而你的war文件的名字是webapp.war,那么访问这个war包中的文件,就须要应用如下方法: http://localhost:8080/webapp
web.xml
web.xml用来定义web应用程序的结构。如果只有JSP页面,web.xml甚至可以没有。
如果有servlet,则须要在web.xml中配置一个URL将导向哪一个servlet。同时,也可以在web.xml文件中配置上下文变量供servlet应用。
优/缺陷
长处:
- 易于开辟,测试和部署;
- 宣布的版本易于识别;
- 全部的J2EE容器都支持WAR文件。
缺陷:
- 任何纤细的改动都须要从新生成和部署整个war文件。
JBoss
在jboss中,默认有一个ROOT.war。我们可以删除ROOT.war文件,而应用自己的war包作为上下文根(context root)。在JBOSS中有两种方法来应用自己的context root:
- 用自己的内容替换ROOT.war文件中的内容;
- 直接删除ROOT.war文件,在自己war包的WEB-INF目录中添加jboss-web.xml文件:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 2.3//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_3_0.dtd"> <jboss-web> <context-root>/</context-root> </jboss-web>jboss-web.xml中的context-root元素会告诉jboss,把war文件中的内容加载到应用服务器的根上下文中,所以像 http://localhost:8080/这个请求,将会由你的war包来处理。
文章结束给大家分享下程序员的一些笑话语录: 人工智能今天的发展水平:8乘8的国际象棋盘其实是一个体现思维与创意的强大媒介。象棋里蕴含了天文数字般的变化。卡斯帕罗夫指出,国际象棋的合法棋步共有1040。在棋局里每算度八步棋,里面蕴含的变化就已经超过银河系里的繁星总数。而地球上很少有任何数量达到这个级别。在金融危机之前,全世界的财富总和大约是1014人民币,而地球人口只有1010。棋盘上,所有可能的棋局总数达到10120,这超过了宇宙里所有原子的总数!经典语录网
---------------------------------
原创文章 By
包和目录
---------------------------------