二tomcat发布web应用
Posted shi_zi_183
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二tomcat发布web应用相关的知识,希望对你有一定的参考价值。
tomcat发布web应用
什么是web应用
在web服务器上运行的web资源都是以web应用形式呈现的,web应用就是多个web资源的集合,其中包括.html文件,.css文件,.js文件,动态web页面,java程序,支持jar包,配置文件,在开发程序时应当按照一定的目录结构存放这些文件。
配置web应用虚拟目录
开发好的Web应用要想被外界访问到,除了需要安装一个web服务器外还需要将该web应用映射成为一个能够供外界访问虚拟web目录。
在webapps下新建应用
在webapps下新建chapter02目录,并在其下新建welcome.html目录,使用浏览器访问它。
这样的应用发布只能将web应用放入webapps中,如果想将应用目录放置在webapps以外的地方就必须手动配置虚拟目录。
在server.xml中配置虚拟目录
将web应用放置在D盘下,再次访问网站
说明网站不能访问webapps之外的web应用。
打开<Tomcat安装目录>/conf目录下的server.xml文件,在<Host>元素中添加一个<Context>元素,path属性是虚拟目录,docBase是web程序路径(可以是绝对路径,也可以是相对<Tomcat安装目录>/webapps的相对路径)
应注意server.xml配置文件大小写敏感。
又重新访问到了chapter02下的welcome.html。
如果将标签中的path写为“”(引号中间没有字符)表示web默认应用的映射。
在自定义的xml文件中配置虚拟目录
此时应当将server.xml还原为开始状态,去掉加入的Context标签。
在实际开发中官方不推荐我们在server.xml中配置虚拟目录,因为每次配置过后想要生效都需要重启tomcat服务器,为了解决这一问题我们自定义xml来配置虚拟目录
首先进入<Tomcat安装目录>\\conf\\Catalina\\localhost目录,在该目录中创建一个名为chapter02.xml的配置文件(文件名为虚拟目录名,必须是.xml文件)然后添加Context标签。因为文件名指定了虚拟目录,所以此时的Context的path属性失效了,仅需要指定docBase属性。
这里需要重启tomcat,原因是使之前server.xml还原后生效,如果server.xml没有被修改仅修改localhost下的自定义.xml是不需要重启tomcat会自动生效
我们也可以在这里定义tomcat默认web应用(所谓默认就是在不指定web应用时访问的web应用)
仅需将自定义.xml的名称修改为ROOT
注意:在webapps中有一默认目录名为ROOT,此目录为默认web程序的发布目录,但是若在localhost下配置了ROOT.xml会覆盖此默认web应用。
配置web应用默认页面
当访问一个web应用时通常需要指定一个访问的资源名称,如果没有指定资源名称则会尝试访问默认页面。例如我们不希望通过www.baidu.com/xxx.html访问百度而是仅通过www.baidu.com。
要想实现这样的需求,有两种途径
修改全局web.xml
打开<Tomcat安装目录>\\conf\\web.xml
我们可以看到welcome-file-list配置,这里表示全局的默认页面是index.html,index.htm,index.jsp三个从上到下优先级递减。我们可以在这里添加一个welcome.html来实现默认页面。
修改web.xml无需重启tomcat
修改web应用下的web.xml
为了避免冲突需要将conf下的web.xml修改回来。
只需要修改WEB-INF目录下的web.xml文件。
我们在自己的web应用下新建这个WEB-INF目录和web.xml文件。
web.xml必须符合一定格式否则tomcat将无法读取,所以将conf下的web.xml的<??>和<web-app>标签内容粘贴过来,并加入welcome-file-lilst配置。
再次访问
将welcome.html重命名为index.html,配置文件不变。
再次访问
可知局部配置文件的默认页面配置覆盖了全局默认页面配置。
配置虚拟主机
实际生产中我们需要将多个站点放入一个服务器上,这个时候就需要用到虚拟主机的技术,实现这一技术只需要修改conf下的server.xml
<Engine>标签表示一个引擎用于接收连接器传来的用户请求,返回响应。
一个<Engine>下可以创建多个<Host>,一个<Host>表示一个主机,它的属性name表示虚拟主机的名称,appBase表示虚拟主机的站点目录的路径(等价webapps目录),这里的host就是我们之前使用的主机,名称为localhost,站点是webapps(相对tomcat安装路径的相对路径,这里也可以写成绝对路径)。autoDeploy设置为true,则tomcat启动自动部署:当检测到新的Web应用或Web应用的更新时,会触发应用的部署(或重新部署)。
我们添加一个虚拟主机名为mywebapp,站点为D:\\mywebapps
因为服务器要想指定你想访问那个站点需要有域名与主机名的对应所以我们需要用到DNS服务器,但是我们可以通过修改hosts文件来模拟这一过程。
修改windows的hosts
打开C:\\Windows\\System32\\drivers\\etc
使用记事本打开hosts,添加mywebapp的映射
在新站点下新建默认web应用(ROOT)与默认web页面(index.html)
重启tomcat
可以看到新站点的ROOT目录被部署了。
我们发现在conf下的Catalina下新建了一个mywebapp目录
这是因为两台主机要用到不同的自定义.xml文件,想要生效的自定义.xml放入对应的目录中。
以上是关于二tomcat发布web应用的主要内容,如果未能解决你的问题,请参考以下文章
必须要掌握的开源Web应用服务器—Tomcat服务部署和优化