花了两天时间把JavaWeb基础的结构理顺了……总结一下。
零、JavaWeb后台目录框架组成(以TomCat为例)
画个图如下。
极其简略的目录图
拿实际的文件目录结构举例(主机名为localhost)。

Tomcat中server.xml有关localhost的内容

上图中webapps目录下的webApps们

打开其中名为examples的WebApp

其下的WEB-INF文件夹
看不懂不要紧,我翻译一下。
一、访问网页的流程

访问网页的流程图
当你输入一串网址时,它是进行如下操作的:浏览器通过系统内的HOSTS或者DNS进行域名解析,获取主机对应的IP地址,然后根据查询到的IP连接上服务器,TCP三次握手成功后向服务器某端口发送http请求。服务器对http请求解析要访问的主机名、web应用和web资源,再运行web应用获取相应资源,并通过http协议回传数据。
二、简单剖析流程中的各个元素
1.虚拟主机
一般实体主机会分成多块虚拟主机,每块虚拟主机各自受外界不同的访问。在Tomcat里,虚拟主机可以通过conf下的server.xml,使用Host元素进行配置。其下的name就是虚拟主机名,而appBase对应该虚拟主机管理的文件夹,在appBase下的web应用全部由该虚拟主机管理(比如上图server.xml中localhost设置的webapps目录,那些文件全部是localhost管理的应用)。
2.Servlet
Servlet是众多种webapps中的一种。要想运行Servlet程序,我们需要把程序映射到一个URL地址上。
在webapps-->WEB-INf-->web.xml可以设置对Servlet的映射地址。在web.xml中,<servlet>元素用于设置Servlet的注册名和完整类名,而<servlet-mapping>元素用于设置已注册的Servlet和对外访问地址。

examples下的web.xml部分截图

examples下的web.xml部分截图
如上图,我们想访问examples中的名为HelloWorldExample的Servlet,可以向浏览器输入以下URL:
localhost:8080/examples/servlets/servlet/HelloWorldExample。如果看不懂,也可以看以下链接:Servlet完整执行流程 - 知乎 (zhihu.com)。