Tomcat基础教程(四)
一、将Web应用部署到Tomcat中
为什么要部署?将Web应用部署到Tomcat中,那么Tomcat就能找到相应的Web应用,当Tomcat启动时就会加载和初始化Web应用,而在Tomcat启动后,客户端就看可以使用相应的URL通过Tomcat访问到Web应用了。
部署的方式有两种:1)直接将Web应用结构目录添加到Tomcat的webapps目录 2)使用Context元素
1. 接将Web应用结构目录添加到Tomcat的webapps目录
在Tomcat目录结构中,有一个叫做webapps的文件夹,由之前所讲,它会存放Web应用,一个文件夹代表一个Web应用。而在Tomcat启动时,它会默认加载webapps文件夹下面的所有Web应用。
2. 使用Context元素
根据教程(二)中的Tomcat服务器架构图知道,Context表示Host中的一个Web应用,每个Web应用可以是一个war(Web Application Archive)文件或者文件系统中的一个文件夹。一个Host可以有多个web应用,且他们必须要有唯一的上下文路径来区分。如果某个Web应用的上下文路径字符串是空串,则该Web应用就成为其所在虚拟主机的默认Web应用,所有请求URL没有与Host中其他任何一个Web应用上下文路径匹配的客户请求都会被分发到该Web应用。
Context元素属性列表如下:
| 元素 | 属性 | Mandatory | Description |
| Context | docBase | Y | 表示Web应用的根路径。若为war文件,属性值为该文件的路劲,若为目录,则为Web应用根目录路径 |
| path | N | Web应用的上下文路径 | |
| reloadable | N | true/false(Default)。表示是否允许Tomcat服务器监视Web应用中/WEB-INF/classes和/WEB-INF/lib目录的变化 | |
| workDir | N | 指定一个目录路径来作为该Web应用的临时工作目录。若未指定该属性,则会使用Tomcat下的work目录 | |
| unpackWAR | N |
true/false,如果设置成true则Tomcat在运行压缩的Web应用(war文件)会先将它解压缩 |
举例:<Context docBase="D:\\webAppBase\application" path ="/app1" workDir="D:\\WebAppBase\application\work">
将Context元素配置到Tomcat服务器中有如下方法:
1)在server.xml中添加Context元素 - 添加到Host节点内部,作为Host的元素。优点:简单直观;缺点:如果有很多Web应用,要配置很多Context元素,这样会使server.xml很难阅读和维护
2)添加到${TOMCAT_HOME}\conf\context.xml文件中 - 该文件是用于配置所有Web应用的Context元素。优点:将Context元素从server.xml中独立出来;缺点:当应用多了则不易维护
3)为每个虚拟主机的所有Web应用使用一个独立的配置文件 - ${CATATINA_HOME}/conf/[enginename]/[hostname]/context.xml.default - 即在虚拟主机中建立该文件,然后添加Context元素
4)为每个Web应用使用独立的配置文件 - 在${CATATINA_HOME}/conf/[enginename]/[hostname]目录中可以通过使用xml文件来为每个Web应用定义Context,文件名为Web应用的上下文路径
二、配置Web应用
每个Web应用都有一个对Web应用进行配置的web.xml(特有部署描述符),存在WEB-INF的文件夹中;而在Tomcat的conf文件夹中也有web.xml(通用部署描述符),用来设置通用的配置。当通用部署描述符和特有部署描述符有冲突时,特有部署描述符的配置项优先。
Web应用部署描述符
根元素web-app,其可以包含若干个子元素,而每个子元素都对应于Web应用某个方面的配置,且他们的顺序是任意的。
web-app根元素有如下属性:version, id, metadata-complete。比较常用的是version,表明Web描述文件兼容的最好版本。
web-app根元素下最常用的子元素:
- welcome-file-list: 定义一个welcome文件列表
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
welcome-file-list会定义目录的默认访问文件,当客户端请求的URL指向一个目录而非文件时,则就会访问默认访问文件,而这个list中定义的文件是有访问顺序的,按照显示顺序优先返回,若前面的文件不存在,则依次访问后面的文件。
- servlet和servlet-mapping: 这两个元素主要用于在Web应用中添加Servlet。servlet元素用于定义Servlet的名称,实现类等属性,servlet-mapping用于定义servlet的路径映射方式。
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<!-- can have multiple init-param -->
<load-on-startup>3</load-on-startup>
</servlet> <servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jspx</url-pattern>
</servlet-mapping>
在上面的servlet元素中,其名字是jsp,所使用的java类为org.apache.jasper.servlet.JspServlet,其中的<init-param>元素为java类所要用到的参数;而<load-on-startup>元素中定义一个整数值,如果值为0或正整数,则表明该Servlet会在Tomcat服务器启动时必须被加载和初始化,若为负整数或该配置项不存在时Tomcat可以选择不在启动时加载和初始化Servlet。
在<servlet-mapping>元素中定义servlet名字为jsp的路径映射方式 -- <url-pattern>,该元素定义了一个请求URL模板,请求URI与该模板匹配时请求将被分配到对于的Servlet。在该段xml代码中,定义了访问*.jsp和*.jspx的文件都将被分配到名字为jsp的Servlet进行处理。
- filter和filter-mapping: 这两个元素主要用于在Web应用中添加过滤器。filter元素用于定义过滤器的名称,实现类等属性,filter-mapping用于定义filter的路径映射方式。
- mime-mapping: 该元素定义在Web应用中如何根据文件名后缀映射出文件的mime类型
<mime-mapping>
<extension>htm</extension>
<mime-type>text/html</mime-type>
</mime-mapping>
Note: MIME是Multipurpose Internet Mail Extensions(多用途Internet邮件扩展)的简称,其被用于判断二进制文件的内容和打开方式。
- session-config: 用于配置session的一些参数,例如session的超时时间
<session-config>
<session-timeout>30</session-timeout>
</session-config>
总结: Tomcat中可以部署多个Web应用,而其通过应用的上下文路径来区分各个Web应用。部署Web应用可以通过添加Context元素。我们可以通过配置Tomcat中的web.xml或者Web应用自身的web.xml来对Web应用进行配置。
Tomcat基础教程(四)的更多相关文章
- Qt零基础教程(四) QWidget详解篇
在博客园里面转载我自己写的关于Qt的基础教程,没次写一篇我会在这里更新一下目录: Qt零基础教程(四) QWidget详解(1):创建一个窗口 Qt零基础教程(四) QWidget详解(2):QWid ...
- Qt零基础教程(四)QWidget详解(3):QWidget的几何结构
Qt零基础教程(四) QWidget详解(3):QWidget的几何结构 这篇文章里面分析了QWidget中常用的几种几何结构 下图是Qt提供的分析QWidget几何结构的一幅图,在帮助的 Wind ...
- Tomcat基础教程(二)
上一篇说到了Tomcat的介绍,下载及安装,这一篇我会详述Tomcat服务器结构 一.Tomcat服务器结构图: Tomcat服务器中可以配置多个Service,每个Service可以包含多个Conn ...
- SpringCloud2.0 Ribbon 服务发现 基础教程(四)
1.启动[服务中心]集群,即 Eureka Server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) 2.启动[服务提供者]集群,即 Eureka Cli ...
- js基础教程四之无缝滚动
前面学习了相关js的一些基础知识,这节主要针对定时器作综合运用: 无缝滚动-基础 效果演示: *物体运动基础 *让div移动起来 *offsetLeft的作用 *用定时器让物体连续移动 <sty ...
- Tomcat基础教程(三)
Tomcat中的Web应用 Web应用就是具有特定目录结构的目录和文件. 基于JAVA技术开发的Web应用中通常会包含以下的web对象: 静态文件对象:HTML页面,图片,普通文件 Servlet: ...
- Tomcat基础教程(一)
Tomcat, 是Servlet和JSP容器,其是实现了JSP规范的servlet容器.它在servlet生命周期内包容,装载,运行,和停止servlet容器. Servlet容器的三种工作模式: 1 ...
- mysql基础教程(四)-----事务、视图、存储过程和函数、流程控制
事务 概念 事务由单独单元的一个或多个SQL语句组成,在这 个单元中,每个MySQL语句是相互依赖的.而整个单独单 元作为一个不可分割的整体,如果单元中某条SQL语句一 旦执行失败或产生错误,整个单元 ...
- <<Bootstrap基础教程>> 新书出手,有心栽花花不开,无心插柳柳成荫
并非闲的蛋疼,做技术也经常喜欢蛋疼,纠结于各种技术,各种需求变更,还有一个很苦恼的就是UI总是那么不尽人意.前不久自己开源了自己做了多年的仓储项目(开源地址:https://github.com/he ...
随机推荐
- Ubuntu下配置tftp服务
Ubuntu下配置tftp服务 1.安装TFTP软件 sudo apt-get install tftp-hpa tftpd-hpa tftp-hpa是客户端,tftpd-hpa是服务器端 2.建立t ...
- Android(java)学习笔记156:Java虚拟机和Dalvik虚拟机的区别
Google于2007年底正式发布了Android SDK, 作为 Android系统的重要特性,Dalvik虚拟机也第一次进入了人们的视野.它对内存的高效使用,和在低速CPU上表现出的高性能,确实令 ...
- Java并发(6)带返回结果的任务执行
携带结果的任务 JDK5提供了有可返回值的任务的执行.java.util.concurrent中Callable与Futrue用以实现带返回值的任务执行. 使用Callable与Futrue与使用Ru ...
- 安装Sass的一些注意事项
文章的内容都来自网络: 1. RubyGems 镜像 2. compass watch,我们的Sass种如果出现了中文, 就会出现编译错误,我们需要: 找到ruby的安装目录,里面也有sass模块, ...
- linux下如何删除文件夹
直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字-r 就是向下递归,不管有多少级目录,一并删除-f 就是直接强行删除,不作任何提示的意思删除文件夹实例: rm -rf /var/l ...
- PostgreSQL 修改列报错:cannot be cast automatically to type integer
如果你直接使用可视化工具修改一个varchar字段为int类型的时候,可能会报错, 这里就需要自己去写一个语句去修改了 调整执行语句:ALTER TABLE table_name ALTER COLU ...
- 20151210 Jquery 学习笔记 AJAX 进阶
一.加载请求 在 Ajax 异步发送请求时,遇到网速较慢的情况,就会出现请求时间较长的问题.而超 过一定时间的请求,用户就会变得不再耐烦而关闭页面.而如果在请求期间能给用户一些提 示,比如:正在努力加 ...
- json 转 javaBean
前言:经常在网络上看见一些关于json自动转换成javaBean的jar包,项目组里的人也在用,稍稍研究了下,都是用的反射来做的.我细细想了下里面的逻辑,我觉得直接生成JavaBean代码岂不是更加直 ...
- Eclipse搭建服务器
一.首先,依次点击Window -->preferences-->Server-->Runtime environment -->add,再选择Apache,选择TOMcat的 ...
- 关于微软企业库中依赖注入容器Unity两种生成对象的实现u
http://www.byywee.com/page/M0/S261/261037.html