Tomcat中部署Web应用程序的几种方式

来源:互联网 发布:压缩包打开软件 编辑:程序博客网 时间:2024/04/29 04:58

在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署。(在下文中$CATALINA_HOME指的是Tomcat根目录。) 静态部署指的是我们在服务器启动之前部署我们的程序,只有当服务器启动之后,我们的Web应用程序才能访问。下面主要讲述一下静态部署的几种方式:

1、将web工程下的WebRoot目录拷贝到$CATALINA_HOME\webapps下,然后启动服务器就可以了。这种方式比较简单,但是web应用程序必须在webapps目录下。可以将WebRoot文件夹名称改为web工程名web_project_name。最后访问地址如下: 
http://localhost:8080/web_project_name/ 


2、此种方式可以不必将WebRoot目录拷贝到webapps下。方法如下,更改$CATALINA_HOME\conf\server.xml文件,打开该文件,在<host>标签内最后添加<Context>标签,内容如下: 
<Context crossContext="true" docBase="E:\workspaces\web_project_name\WebRoot" path="/web_project_name" reloadable="false" />
其中reloadable="false"表示当应用程序中的内容发生更改之后服务器不会自动加载,这个属性在开发阶段通常都设为true,方便开发,在发布阶段应该设置为false,提高应用程序的访问速度。
docBase为路径,可以使用绝对路径,也可以使用相对路径,相对路径相对于webapps。path属性的值是访问时的根地址。设置crossContext = true,让两个应用可以在tomcat中交叉使用上下文环境,一般都设为true。访问地址如下:

http://localhost:8080/web_project_name/ 


3、这种方式和第二种方式差不多,但是不是在Server.xml文件中添加Context标签,而是在$CATALINA_HOME\conf\Catalina\localhost中添加一个xml文件,如web_project_name.xml,内容如下: 
<Context docBase="E:\workspaces\web_project_name\WebRoot" reloadable="false" />大家可能发现和第二种方式差不多,但是缺少了path属性,这种方式服务器会使用.xml的名字作为path属性的值。访问地址如下:

http://localhost:8080/web_project_name/ 


4、此种方式最为简便,即是将$CATALINA_HOME\webapps\ROOT下的内容全部删除,然后将web工程下的WebRoot目录下的全部内容拷贝到$CATALINA_HOME\webapps\ROOT目录下,然后启动服务器就可以了,此时访问地址即不需要再加web工程名。访问地址如下:

http://localhost:8080/


我们刚才是将WebRoot文件夹部署在了服务器中,我们知道可以将Web应用程序的内容打成.war包,然后在部署在服务器上。打包请参考如下步骤: 
    1、打开命令提示符(Start-->Run-->cmd) 
    2、设置jdk环境变量 
    3、在命令提示符中进入E:\workspaces\web_project_name\WebRoot文件夹后,键入如下命令: 
 jar ..\web_project_name.war *.*  这样在E:\workspaces\web_project_name\下应该有web_project_name.war文件。其中..表示当前目录的父目录。 
     部署web_project_name.war文件非常简单,将刚才有docBase="E:\workspaces\web_project_name\WebRoot"更改为docBase="E:\workspaces\web_project_name\web_project_name.war"或者直接将其拷贝到webapps下也可以。重新启动服务器就可以将web_project_name.war部署为一个Web应用程序了。如果你够细心的话你会发现,服务器将web_project_name.war文件解开,并且在webapps下面又生成了一个web_project_name文件夹,然后把web_project_name.war的内容拷贝到里面去了。我们可以通过以下方式取消自动解压缩,配置方式如下: 
<Context docBase="E:\workspaces\web_project_name\WebRoot" reloadable="false" unpackWAR="false"/> 

原创粉丝点击