war包

    xiaoxiao2021-03-25  121

    结构特征

     一个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文件: [html]  view plain  copy <?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包来处理。
    转载请注明原文地址: https://ju.6miu.com/read-26146.html

    最新回复(0)