JAVA-WEB应用程序 配置部署

一、配置任意目录下的WEB应用程序

一个WEB容器可以运行多个web应用程序,每个WEB应用拥有唯一的上下文根

上下文根得的配置与容器相关,本文以Tomcat为例

%CATALINA_HOME%\webapps目录下的每一个子目录都是一个独立的Web应用,子目录的名字就是该Web应用的上下文根。

例如:应用程序A和应用程序B分别位于%CATALINA_HOME%\webapps\a和%CATALINA_HOME%\webapps\b,则a是A应用的,b是B应用的上下文根。

部署和访问Web应用时,通过上下文路径(context path)区分不同的应用

上下文路径以‘/'开头,末尾无’/‘,默认的上下文中,路径是空字符串“”

部署在webapps目录的应用,在Tomcat启动时,无需额外配置就可直接访问

但,在开发时,经常建立自己的开发目录;为了避免每次都要把文件复制到webapps目录,可以配置虚拟目录对应真实目录。

通过%CATALINA_HOME%\conf\servlet.xml配置文件中设置<Context>元素(Host元素的子元素)完成,一个<Context>表示一个Web应用程序,运行在特定的虚拟主机中。


<Context>元素的常用属性

应用程序A (位于%CATALINA_HOME%\webapps\a )的<Context>配置如下:

<Context path="/a" docBase="a" reloadable="true"/><!--在开发阶段reloadable设为true,可以自动加载WEB-INF/classes目和WEB-INF/lib目录下类的改变,无需重启Tomcat;在发布时,为减小运行时开销,建议不设置,该属性默认值false。

Context元素的防止位置:

1.%CATALINA_HOME%\conf\context.xml  此处设置的信息将被所有web应用程序加载

2.%CATALINA_HOME%\conf\[enginename]\[hostname]\context.xml.default  此处设置的信息将被属于该虚拟主机的所有Web应用加载

[enginename]是server.xml  中<Engine>元素name属性的值,[hostname]是server.xml  中<Host>元素name属性的值

<Engine name="Catalina" defaultHost="localhost"> 

<Host name="localhost"  appBase="webapps"   unpackWARs="true" autoDeploy="true">

默认情况下,[enginename]为“Catalina”,[hostname]“localhost”。

在%CATALINA_HOME%\conf\目录下依次创建Catalina\localhost目录,并在localhost目录下新建context.xml.default文件

3.%CATALINA_HOME%\conf\[enginename]\[hostname]\xxx.xml   其中<Context>的docBase属性是WEB应用的绝对路径名或其归档文件的绝对路径名。

4.在WEB应用的目录结构中增加META-INF\context.xml

目录结构如下图:





在%CATALINA_HOME%\webapps目录下的应用程序,若没有在任何文件中设置<Context>元素,Tomcat将自动为该应用生成<Context>元素,默认的上下文路径以‘/’开头,后面紧跟该应用所在目录的名字;如果目录为ROOT,则上下文路径是一个空字符串(“”)  

因而,在%CATALINA_HOME%\webapps目录下的应用程序可以不需配置<Context>,直接使用

tips:ROOT目录下的应用,<Context>元素的path=“”,因而该应用为虚拟主机的默认Web应用,负责处理所有没有分配给其它应用程序的请求,访问http://localhost:8080/ 访问的就是%CATALINA_HOME%\webapps\ROOT目录下的资源


Tomcat5.5之后的版本不建议直接在server.xml文件中配置<Context>元素(Tomcat启动后,无法发布Web应用)

建议在%CATALINA_HOME%\conf\Catalina\localhost\目录下建立xxx.xml文件

例如开发目录为F:\Demo\Test   配置该目录下的应用程序

在%CATALINA_HOME%\conf\Catalina\localhost\目录下建立Test.xml 输入<Context path="/Test" docBase="F:\Demo\Test"  reloadable="true"/>    Test.xml 文件名Test决定应用的上下文路径,path属性可以省略;访问时输入

http://localhost:8080/Test/


tips: %CATALINA_HOME%\conf\web.xml 定义了运行在同一Tomcat实例中的所有Web应用程序的默认值

Tomcat加载一个应用时,首先读取该文件,之后才读取WEB-INF/web.xml文件


WAR文件(将多目录和文件的Web应用程序打包压缩成Web归档文件,类似于把Java类文件打包成JAR文件)

打包之前需建立正确的目录层次结构,可借用压缩工具,也可在命令行下完成打包

命令打包 jar -cvf xxx.war *  注意空格

如果不想打包src目录下的源文件(发布时不应包含源文件),可使用如下命令:

jar -cvf xxx,war *.html   WEB-INF/

查看WAR文件内容命令:

jar -tf xxx.war

修改了WEB-INF下的某个文件a.class  命令:

jar -uf xxx.war WEB-INF/a.class


        此时,应用的部署不再按照目录层次结构,而是把WAR文件作为部署单元使用,一个WAR文件就是一个Web应用程序

(不包括Web应用程序的层次结构的根目录)

将xxx.war 文件复制到%CATALINA_HOME%\webapps目录下,Tomcat启动时,会自动解压缩WAR文件,并在webapps目录下新建一个子目录xxx

也可以直接从WAR文件运行程序 配置%CATALINA_HOME%\conf\server.xml 的Host元素, 属性unpackWARs="true" 设为false即可。

建议在开发阶段不是用WAR(修改较多,不方便);在产品发布时,使用较适宜。





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值