tomcat组件
组件原理图如下:
任何tomcat实例就是一个server,而一个server内部要想能够解析jsp页面转义编译serlet程序,要靠其引擎来实现而引擎才是真正意义上执行jsp代码的容器,都是tomcat用类来描述这些组件的,同时,为了接受用户的请求,需要基于connector组件,所谓监听的套接字的程序,能够接手用户的请求,被称为连接器,一个server内部可以完全运行N个引擎,无非就是运行多个虚拟机而已。
war包:
可直接将web项目生成的war包放入tomcat的webapp目录中运行,tomcat会自动解压读取该war包,从而部署该web项目,而这是部署本身需要完成的工作,在实现web站点的时候,在出程序之下有目录比如/web/htdoc,而在其目录下有一子目录/web/htdoc/bbs 而在其下有个论坛程序,这个目录程序跟其他程序可能不在同一组,而新加的子目录则需要重新部署,因为其属于独立的应用程序,因为每个独立程序都需要独立部署。
对于tomcat来讲要想记录日志的话,因此这些都需要使用特殊接口来实现,所以,任何一个需要操作硬件资源的进程,资源都有一个类在实现我们的需求,tomcat也一样。
常见组件:
1.服务器(server)
实例,通常一个jvm只能包含一个实例,一般情况下,一个物理服务器可以启动多个jvm,从而启动多个实例,但一般不这么做(一个服务器)。
2.服务(service)
一个服务组件通常包含一个引擎和此引擎相关联的一个或多个链接服务器(服务器中的一个项目或者服务)。
3.连接器(connectors)
一个引擎能配置多个连接器 但是每个连接器的端口不能冲突,同时,tomcat也支持AJP JSERV和JK2连接器,实现让apache反向代理到后端服务器的非常高效的传输协议(端口启动服务,不同端口的连接器)。
容器类组件:
4.引擎
可以自己接收用户的http请求,并构建响应报文,返回到java项目中。
5.主机
6.上下文
被嵌套类组件:
7.阀门
能够过滤也可以做访问控制
8.日志记录器
9.领域(Realm)
用来实现用户的认证和授权
对tomcat来讲,每种模型上的实现必须开发一种程序,才能完成相应组件的功能,而java中任何程序都是一个类