基于Java的Web 应用程序是 servlet、JSP 页面、静态页面、类和其他资源的集合,它们可以用标准方式打包,并运行在来自多个供应商的多个容器。Web 应用程序存在于结构化层次结构的目录中,该层次结构是由 Java Servlet 规范定义的。Web 应用程序的根目录包含直接存储或存储在子文件夹中的所有公共资源,比如图像、HTML 页面等。构成:Web应用由Web组件(一组Java类库)、html文件,静态资源文件(如图像)、帮助类和库组成。
tomcat组成:SERVER(服务器)、service(服务)、connector(连接器)、engine(引擎)、host(主机)、context(应用服务)
server:一个服务器是包含所有servlet引擎的容器
service:service是一个集合,包含多个connector(连接)、一个engine(引擎),负责处理所有connector(连接)获取的客户请求
connector:一个connector(连接)在指定的接口上侦听客户的请求,并将客户的请求交给engine(引擎)来进行处理并获得回应返回给客户请求,tomcate有两个典型的connector,Coyote Http/1.1 Connector 在端口8080处侦听来自客户browser的http请求,
Coyote JK2 Connector 在端口8009处侦听来自其它WebServer(Apache)的servlet/jsp代理请求。
engine:一个engine(引擎)下可以配置多个虚拟主机host,每个主机都有一个域名,当engine获得一个请求时,会把这个请求发送的相应的host上,engine有一个默认的虚拟主机,如果没有虚拟主机能够匹配这个请求,那就由这个默认的虚拟主机来进行处理请求
host:代表一个Virtual host,每个虚拟主机都和某个网络域名想匹配,每个虚拟主机下面可以部署一个或者多个web app,每个web对应一个context,有一个context path,当一个host获取请求时,就把该请求匹配到某个context上
context:一个context对应一个web aplication,一个web由一个或多个servlet组成,context在创建的时候将根据配置文件$CATALINA_HOME/conf/web.xml和$WEBAPP_HOME/WEB-INF/web.xml载入servlet类,当context获取请求时,讲在自己的映射表中需找相匹配的servlet类,如果找到,则执行该类,获得请求的回应,并返回
tomcat的结构图