`

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

 
阅读更多

转自:http://qsfwy.iteye.com/blog/466461

在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署。在下文中$CATALINA_HOME指的是Tomcat根目录。 
一、静态部署 
     静态部署指的是我们在服务器启动之前部署我们的程序,只有当服务器启动之后,我们的Web应用程序才能访问。以下3中方式都可以部署: 
    1、将PetWeb目录拷贝到$CATALINA_HOME\webapps下,然后启动服务器就可以了。这种方式比较简单,但是web应用程序必须在webapps目录下。访问地址如下: 
http://localhost:8080/PetWeb/ 
   2、这种方式可以不必将PetWeb目录拷贝到webapps下,直接在F:\部署。方法如下,更改$CATALINA_HOME\conf\server.xml文件,在<host>标签内添加<Context>标签,内容如下: 
<Context docBase="F:/PetWeb" reloadable="false" path="/Pet"/> 
其中reloadable="false"表示当应用程序中的内容发生更改之后服务器不会自动加载,这个属性在开发阶段通常都设为true,方便开发,在发布阶段应该设置为false,提高应用程序的访问速度。docBase为路径,可以使用绝对路径,也可以使用相对路径,相对路径相对于webapps。path属性的值是访问时的根地址。访问地址如下:http://localhost:8080/Pet/ 
    3、这种方式和第二种方式差不多,但是不是在Server.xml文件中添加Context标签,而是在$CATALINA_HOME\conf\Catalina\localhost中添加一个xml文件,如Pet.xml,内容如下: 
<Context docBase="F:/PetWeb" reloadable="false" />大家可能发现和第二种方式差不多,但是缺少了path属性,这种方式服务器会使用.xml的名字作为path属性的值。访问地址如下:http://localhost:8080/Pet/ 
    
    我们刚才是将PetWeb文件夹部署在了服务器中,我们知道可以将Web应用程序的内容打成.war包,然后在部署在服务器上。打包请参考如下步骤: 
    1、打开命令提示符(Start-->Run-->cmd) 
    2、设置jdk环境变量 
    3、在命令提示符中进入F:\PetWeb文件后,键入如下命令: 
jar ..\Pet.war *.*  这样在F:\下应该有Pet.war文件。其中..表示当前目录的父目录。 
     部署Pet.war文件非常简单,将刚才有docBase="F:\PetWeb"更改为docBase="F:\Pet.war"或者直接将其拷贝到webapps下也可以。重新启动服务器就可以将Pet.war部署为一个Web应用程序了。如果你够细心的话你会发现,服务器将Pet.war文件解开,并且在webapps下面又生成了一个Pet文件夹,然后把Pet.war的内容拷贝到里面去了。我们可以通过以下方式取消自动解压缩,配置方式如下: 
<Context docBase="F:/PetWeb" reloadable="false" unpackWAR="false"/> 
二、动态部署 
    动态部署是指可以在服务器启动之后部署web应用程序,而不用重新启动服务器。动态部署要用到服务器提供的manager.war文件,如果在$CATALINA_HOME\webapps\下没有该文件,你必须去重新下载tomcat,否则不能完成以下的功能。要想使用该管理程序必须首先编辑$CATALINA_HOME\conf\tomcat-users.xml文件, 
上文且说到tomcat-users.xml文件,这个文件中的内容是不依赖于任何一个web应用程序,所以在任何一个web程序中都可以使用,如果这些用户和角色只对你的应用起作用,那么你完全可以放置在你自己的应用程序中,比如WEB-INF中.下面我们将上次加入到tomcat-users.xml文件中的内容,加入到我们在WEB-INF下新建的myUser.xml文件中,注意此文件应该是以<tomcat-users>为根目录,如下所示: 
<tomcat-users> 
  <!--定义角色--> 
  <role rolename="suozhangshi"/> 
  <role rolename="guahaoshi"/> 
  <role rolename="danganshi"/> 
  <!--定义用户,并加入到角色中--> 
  <user username="gua1" password="gua1" roles="guahaoshi"/> 
  <user username="gua2" password="gua2" roles="guahaoshi"/> 
  <user username="dang1" password="dang1" roles="danganshi"/> 
  <user username="dang2" password="dang2" roles="danganshi"/> 
  <user username="suo1" password="suo1" roles="suozhangshi"/> 
  <user username="suo2" password="suo2" roles="suozhangshi"/> 
</tomcat-users> 

    这个文件已经建立好了,那么怎么告诉Tomcat加载这个文件呢?我们通过下面这一种方式,在你的Web应用程序中的META-INF文件夹中加入Context.xml 文件,这样当此应用程序部署的时候,就会加载该文件的内容,内容如下: 
<Context> 
  <Realm className="org.apache.catalina.realm.MemoryRealm" 
         pathname="webapps/SecurityWeb/WEB-INF/myUsers.xml" /> 
</Context> 
    Realm标签中className属性定义了使用MemoryRealm类从pathname处加载xml文件。。还要注意这里的pathname它是以相对Tomcat根目录的,所以上文件路径应该从webapps开始。最后重新启动服务器再访问你程序,应该能够看到和上次相同的效果

分享到:
评论

相关推荐

    Tomcat部署项目的几种常见方式[亲测]

    1 /直接将web项目文件件拷贝到webapps目录中 这是最常用的方式,Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。如果你想要修改这个默认目录,可以在conf下的server.xml...

    Tomcat部署Web应用方法总结

    tamcat容器的几种部署方式总结、静态和动态部署

    Maven Web项目部署到tomcat的方法总结

    文档介绍了在Eclipse上Maven结构Web项目如何部署到Tomcat的几种常用的方法,有详细的截图说明!

    详解Tomcat Web 应用绑定域名的几种方式

    当我们将应用部署到 tomcat 之后,默认是...以下的几种方式均基于反向代理实现,需要对应的反向代理服务程序,这里使用的是 apache,也可以用 nginx 实现,大同小异。 首先,需要确保开启 mod_proxy 模块: $ sudo a2e

    Java-Web程序设计(PPT).pptx

    本章内容 Web 应用程序简介 HTTP 协议 Tomcat 简介 使用Eclipse开发Java Web 应用程序 静态的登录页面制作 使用网络抓包的方式查看网络状态 修改Tomcat服务器端口 编写404页面程序并运行此程序 Java-Web程序设计...

    Tomcat 7通过设置不同的端口部署两个项目

    最近因为有个Web项目,需要部署两个相同项目到Tomcat中,第二个是拷贝第一个的,使用的项目是使用SpringMVC框架的,尝试了几种方法,这篇文章给大家总结一个比较靠谱的方法,有需要的朋友们可以参考借鉴,下面来一起...

    前端JSP+后端SSM开发的新闻管理系统.zip

    2.在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。 详细介绍参考:https://biyezuopin.blog.csdn.net/article/details/125540328

    Tomcat面试专题及答案.pdf

    3、Tomcat 有几种部署方式? 1)直接把 Web 项目放在 webapps 下,Tomcat 会自动将其部署 2)在 server.xml 文件上配置节点,设置相关的属性即可 3)通过 Catalina 来进行配置:进入到 conf\Catalina\localhost 文件...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    7.3 tomcat中servlet的另一种运行方式 244 7.4 与servlet配置相关的元素 247 7.4.1 [servlet]元素及其子元素 247 7.4.2 [servlet-mapping]元素及其子元素 249 7.5 一个实例 250 7.6 小结 253 第8章 数据库访问...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    7.3 tomcat中servlet的另一种运行方式 244 7.4 与servlet配置相关的元素 247 7.4.1 [servlet]元素及其子元素 247 7.4.2 [servlet-mapping]元素及其子元素 249 7.5 一个实例 250 7.6 小结 253 第8章 数据库访问...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    7.3 tomcat中servlet的另一种运行方式 244 7.4 与servlet配置相关的元素 247 7.4.1 [servlet]元素及其子元素 247 7.4.2 [servlet-mapping]元素及其子元素 249 7.5 一个实例 250 7.6 小结 253 第8章 数据库访问...

    Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败的快速解决方案

    将打好的war包拷贝到Tomcat的webapps目录,然后在Tomcat的bin目录找到startup.bat批处理文件,直接双击执行,结果运行几秒后直接闪退,顿时有种不好的预感,在浏览器访问web项目,结果连localhost:8080都无法访问,...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    7.3 tomcat中servlet的另一种运行方式 244 7.4 与servlet配置相关的元素 247 7.4.1 [servlet]元素及其子元素 247 7.4.2 [servlet-mapping]元素及其子元素 249 7.5 一个实例 250 7.6 小结 253 第8章 数据库访问...

    FourthYear_Artificial-Intelligence:具有启发式搜索功能的多线程Tomcat Web应用程序,可从与所选搜索词相关的前(n)个词生成词云,并使用神经网络对搜索词进行分类

    多线程Tomcat Web应用程序多个启发式通知搜索,该搜索从与所选搜索词相关的前(n)个词生成词云,并使用神经网络对搜索词进行分类 作业详细信息 细节 任务 托管的Webapp 课程 软件开发(荣誉)理学学士 模块 人工...

    spring加载restful(文档+程序源码)

     在Spring框架支持REST之前,人们会使用其他几种实现技术来创建Java RESTful Web Services,如Restlet、RestEasy和Jersey。Jersey是其中最值得注意的,它是JAX-RS(JSR 311)的参考实现。  Spring是一个得到广泛...

    servlet和jsp学习指南

    本书是系统学习Servlet和JSP的必读之作。由全球知名的Java技术专家(《How ...第16章讨论Servlet/JSP应用程序的部署过程,以及部署描述符中的元素;第17章阐述Servlet 3中的两项新特性;第18章介绍Struts 2的用法。

    Servle和JSP学习指南

    本书是系统学习Servlet和JSP的必读之作。由全球知名的Java技术专家(《How ...第16章讨论Servlet/JSP应用程序的部署过程,以及部署描述符中的元素;第17章阐述Servlet 3中的两项新特性;第18章介绍Struts 2的用法。

    Servlet和jsp学习指南

    本书是系统学习Servlet和JSP的必读之作。由全球知名的Java技术专家(《How ...第16章讨论Servlet/JSP应用程序的部署过程,以及部署描述符中的元素;第17章阐述Servlet 3中的两项新特性;第18章介绍Struts 2的用法。

    Servle和JSP学习指南,完整扫描版

    【添加了封面和目录,真正完整版】 本书是系统学习Servlet和JSP的必读之作。...第16章讨论Servlet/JSP应用程序的部署过程,以及部署描述符中的元素;第17章阐述Servlet 3中的两项新特性;第18章介绍Struts 2的用法。

    Servlet和Jsp学习指南(带详细书签)

    《servlet和jsp学习指南》是系统学习servlet和jsp的必读之作。...第16章讨论servlet/jsp应用程序的部署过程,以及部署描述符中的元素;第17章阐述servlet 3中的两项新特性;第18章介绍struts 2的用法

Global site tag (gtag.js) - Google Analytics