• 将web应用部署到Tomcat的三种方式


    方式一

    如果决定给每一个上下文都创建一个XML文件(第一种方式),那么这文件名就很重要了,因为上下文路径就是从这个文件名的衍生得到的。例如,将一个Demo1.xml文件放在conf/Catalina/localhost目录下,那么这个应用程序的上下文路径就是Demo1,访问的URL就为:http://localhost:8080/Demo1

    这个上下文文件只有一行代码:

    <?xml version="1.0" encoding="UTF-8"?>
    <Context docBase="d:/Demo1" reloadable="true"></Context>

    这里的docBase是必须的属性,它定义了应用程序的位置。reloadable属性是可选的,如果存在并且值为true,那么一旦程序中Java类文件或者是其他资源文件有任何添加,减少或者是更新,Tomcat都可以检测到,并且重新加载该应用程序

    当把上下文文件添加到Tomcat的指定目录下,Tomcat就会自动加载应用程序。当删除这个文件时,Tomcat就会自动卸载应用程序(Eclipse和Idea都是利用这种方式部署项目的,所以去Tomcat部署目录中是找不到项目根目录及资源文件的,这些文件存在于IDE项目的工作空间中)

    方式二

    在conf/server.xml文件中的Host标签下添加一个Context元素

    <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
          <Context path="/Demo2" docBase="d:/Demo1" reloadable="true"></Context>
    </Host>

    以第一种方式不同之处在于此处定义上下文需要给上下文路径定义path属性,这个path属性的值表示需要访问的项目名,访问的URL就为:http://localhost:8080/Demo2

    一般来说,不建议通过server.xml来管理上下文,因为修改了Tomcat配置文件。不过,如果有多个应用程序需要测试,使用这种方式或许更为方便,因为可以在一个文件中同时管理所有的应用程序

    方式三

    通过将一个war文件或者整个应用程序复制到Tomcat的webapps(Tomcat默认的部署项目位置,可以在server.xml文件中修改,但不建议修改)目录下,启动服务器之后就会解压这个war,解压到部署项目位置。(MyEclipse就是将项目根目录部署到Tomcat中,所以会在Tomcat中找到项目根目录及资源文件)

    在不去修改Tomcat参数,如reloadable的情况下

    1.如果在Tomcat运行中修改了jsp等资源文件后,不需要重新也能生效,如果是class文件则需要重启。

    2.如果只是修改解压后的文件夹里面的class文件,没有修改war包里面的文件,重新运行Tomcat不会覆盖修改的class文件。

    3.如果在Tomcat运行中删除war包,则会同时删除war解压的目录

    4.如果修改java文件后生成的war包覆盖Tomcat的war包后,重新运行Tomcat会删除原来解压war生成的文件夹,在重新解压新的war包

  • 相关阅读:
    python每日作业4/21
    socket实现并发之socketserver模块的使用
    python socket粘包问题的解决
    每日作业:4/20
    网络编程基础(socket)
    网络基础之网络协议
    异常处理
    python 作业4/15
    centos7简单安装配置mariadb
    Centos7下Firewalld防火墙配置命令
  • 原文地址:https://www.cnblogs.com/grasp/p/10031978.html
Copyright © 2020-2023  润新知