web应用的概念:一个web应用包含了许多我们做好的web资源,里面或许包括了多个静态web资源和动态web资源,如html、css、js文件,jsp文件,Java程序,jar包和配置文件等等,如我在Tomcat的【webapps】目录下的自定义目录【fjdingsdapp】中包含了一个1.html文件,那么这个在【fjdingsdapp】整个可以运行文件中的所有资源可以称为是我开发的一个web应用程序,简称web应用,而单单【fjdingsdapp】这个包含所有我开发的web资源称为我的web应用所在目录。
而我们将web应用开发好之后,若想供外界访问,那么久需要把web应用所在目录交给服务器管理,这个过程称为虚拟目录的映射。
服务器的虚拟目录映射有三种方式:
第一种(不推荐):
虽然这种方式不推荐,但是可以用来设置自己开发的web应用的首页,无需再键入虚拟目录名和资源名作为URL路径。
在server.xml文件中找到Host标签元素,在其下使用Context标签,注意这是在操作XML文件,XML文件是区分大小写的,一个Context标签就代表一个web应用。
假设我的Tomcat服务器在【F】盘,其【webapps】目录中没有我的web应用,而我的web应用放在【D】盘的【myWebApp】目录中,该目录下有一个1.html文件,要想在浏览器中能访问到我的这个web应用,我在Tomcat的server.xml文件中找到Host标签,添加Context标签并配置属性(注意这是无结束标签,要注意结束方式/),如下示例:
HostappBase="webapps"autoDeploy="true"name="localhost"unpackWARs="true"Contextpath=""docBase="D:/myWebApp"//Host
path属性:虚拟目录的名称,也就是对外访问路径,本地硬盘中不一定有这个目录,但是如果path属性有值,在浏览器地址栏必须输入。这里为缺省值。
docBase属性:web应用所在目录,这个是硬盘中必须存在的,在这个目录中放的是我们的web资源。
每次配置server.xml文件后,必须重启Tomcat服务器。
由于我们设置了Context的path属性为缺省值,因此在地址和端口之后只需要输入资源名即可:
如果path属性有值,比如path=123 (随便写的)
Contextpath="123"docBase="D:/myWebApp"/
那么浏览器在输入时必须有这个路径才能访问到对应的文件:
结尾:一个Context标签即代表一个web应用,因此在Host标签下可以有多个web应用,但是这些Context中的path属性只能有一个是缺省值。Context元素在配置文件中除用于映射虚拟目录之外,还可以用于为web应用配置一些资源,例如配置web应用使用的数据库连接池,javamailsession等(这些配置以后会介绍到)。
之所以不推荐这种方法,这是因为在Tomcat服务器的说明上已经表明这种方法需要经常性的修改server.xml文件,而每次修改都需要重启服务器
看到如下的说明:
================================================
第二种:
同样在Tomcat对于Context标签的说明中,有这么一种方式:
新闻热点
疑难解答