问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

tomcat 怎么配置 在web发布

发布网友 发布时间:2022-04-22 08:38

我来回答

1个回答

热心网友 时间:2023-06-30 06:05

在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开始。最后重新启动服务器再访问你程序,应该能够看到和上次相同的效果
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
哈弗h6VS起亚智跑那车好 我家小猫不小心偷吃了好多鱼食料!怎么办? 急 为什么猫咪偷吃鱼 对喜欢偷吃鱼的猫该怎么办? 扁桃体手术7天出血是怎么回事 齐安郡后池绝句表达了什么感情 未曾可知的以后, 生活不会给予多少, 包括那些你很努力却还是向时间伸... 说对我还有感觉,只是不想把关系挑明,是什么意思? 未尝可知是什么意思? 做系统对电脑有什么伤害电脑重装系统对电脑有损害吗 95512是哪里的电话 影视剧,小说中,大家认为好的警察人物!!!!!... 进程控制器常见的一些进程有哪些 白果是什么样子的? 95511打电话说它的客服是:95512,是怎么回事? 风暴电视显示“剧集列表数据获取失败,请重试”什么... 平安95512和4008000000究竟有什么区别及理赔问题 跪求好看的破案类电视剧!!!! 英文邀请信。80字 暴风电视怎么样? 投保电话95512 任达华和温碧霞 白果的资料 商务电话—英语用语 谁能告诉我电视剧《金枝欲孽》中,福贵人的扮演者... 风暴电视高清输入口有没有解码功能? 苏州有哪些欧美独资企业 黑猫重案组在哪可以看啊? 95512是哪个公司的号码 JAVA 接口问题 求几部大陆的警察的电视剧,最好带点男女感情的 风暴牌电视机保修期是多少 平安保险公司电话95512是在出险的时候拨打的吗?那... 请给我好看的电影名字一个一分 打黑风暴电视剧全集剧情介绍 02195512是什么电话 如何在puppy下安装linux程序 风暴ai电视语音怎么设置 求好看小说打包下载, 新概念二24~28课课文.快.谢谢. 北京市中小生篮球冠军赛落下帷幕,哪支队获得了冠军? Leeisαdoctorandheworksinapethospital类似的句子... 风暴TV电视机有定时关机功能吗? 好看的完结综漫小说 北京篮球培训班哪家好 闪电狗观后感,英文版的 八一队是哪个省的 北京的篮球队叫什么名字 初二上册英语假期日记 梁琤主演的电影有哪些? 同城劲敌首钢和北控,两年后,谁将更适合代表北京?