一、web应用组成和虚拟目录映射
1、WEB应用程序是指提供给浏览器访问的程序,一个web应用由多个静态资源和动态资源组成
- html、css、js文件
- jsp文件、java程序、支持jar包
- 配置文件
- ……
2、web应该用开发好以后,若想供外界访问,需要把web应用所在目录交给服务器管理,这个过程称之为虚拟目录的映射。
tomcat中虚拟目录的映射方式详细情况可以参考tomcat文档中configrure/context配置。列举三种方式:(1)server.xml 方式,当path=”“时,表示该目录为缺省目录,该方法需要重启服务器
<Context path="/itcast" docBase="C:\news"/>
(2)$CATALINA_BASE/conf/[enginename]/[hostname]/ 目录下放置任意.xml文档,在该文档中配置context,tomcat将会把context指定的docBase映射到.xml文档名称的虚拟目录,如下,可通过a/b/xx.html访问到news下面的xx.html。该方法不需要重启服务器。ROOT.xml表示缺省应用。
a#b.xml
<Context docBase="C:\news"/>
(3)tomcat会自动检测加载webapps下面的web资源。
注:关于tomcat可以看上一篇。
二、web资源组织结构和web.xml
1、目录结构:开发web应用时,不同类型的文件有严格的存放规则,否则不仅可能会使web应用无法访问,还会导致 web服务器启动报错。web应用中,web.xml是其中最重要的一个文件,它用于对web应用中的web资源进行配置。
下面举例说明,如何构建一个简单的web应用并放入服务器。
第一步:D:\mail下按照web应用固定目录格式组织mail文件夹
1.html内容
welcome to mail
web.xml内容,可以从$CATALINA_BASE/conf/web.xml中抄写。
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<welcome-file-list>
<welcome-file>1.html</welcome-file>
</welcome-file-list>
</web-app>
第二步:把web应用发布到tomcat以供用户访问。这里采用server.xml中配置的方式。此种方式需要重启服务器,另外我们顺便把tomcat http连接端口改成80。
server.xml
<Context path="" doBase="D:\apache-tomcat-7.0.73\webapps\mail"/>
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
第三步:启动tomcat,通过浏览器访问。实验中把tomcat端口设置成80,因此浏览器可以不指定端口;把web应用mail设置成缺省web应用,因此可以不指定访问地址;把1.html配置成mail的欢迎页面,因此可以不指定页面。
注意:实验发现tomcat7.0.73版本中如果conf/catalina/localhost目录下面的.xml文件的docBase包含tomcat本身的目录会被忽略掉。
三、UML描述web资源访问过程
这里描述了用户在浏览器地址栏输入网址并按下回车键访问web资源的整个流程,看完下一章节的http协议详解再回来看这个过程会更加理解关于http协议的那部分。(图片看不清可以在新标签页打开)