Tomcat简介
概要
- 什么是tomcat?
- tomcat作用
- Servlet由来?做什么的?
- Servlet是如何工作的?
- Tomcat的组成
- tomcat组件功能介绍
tomcat介绍
1.什么是tomcat?
Tomcat是Servlet的运行环境,可以称之为容器,Tomcat是运行在JVM上的应用服务器
2.tomcat作用
- 接受请求并解析请求
- 处理请求
- 返回响应
3.Servlet由来?做什么的?
Servlet是SUN为了让Java能实现动态的可交互的网页,从而进入web编程的领域而定义的一套标准.
这套标准是这么说的: 你想用Java开发动态网页, 可以定义一个自己的”Servlet”,但一定要实现HTTPServlet接口,然后重载doGet(),doPost()方法.用户从流浪器GET的时候,调用doGet方法,从流浪器向服务器发送表单数据的时候,调用doPost方法,如果你想访问用户从浏览器传递过来的参数,用HttpServletRequest对象就好了,里面有getParameter,getQueryString方法,如果你处理完了,想向浏览器返回数据,用HttpServletResponse对象调用getPrintWriter方法就可以输出数据了.
如果你想实现一个购物车,需要session,很简单,从HttpServletRequest调用getSession方法就可以了.
4.Servlet是如何工作的?
- 由servlet容器创建一个实现ServletRequest或HttpServletRequest的实例,该request中包含请求类型,URL,协议,参数,Cookies等
- 由servlet容器创建一个实现ServletReponse或HttpServletReponse的实例,用来向Web客户端发送响应。
- 调用Servlet的service方法,将request对象和response对象作为参数传入。Servlet从request对象中读取信息,并通过response对象发送响应信息.
5.Tomcat的组成
Server(服务器)和Service(服务)
Connector(连接器)
- HTTP
- Nio
- Apr
- AJP(apache私有协议,用于tomcat和apache静态服务器通信)
- HTTP
Container(容器)
- Engine
- Host
- Context
- Wrapper
Component(组件)
- Manager(管理器)
- logger(日志管理)
- loader(载入器)
- pipeline(管道)
- valve(管道中的阀)
tomca组件功能
1.Server
Server为定义的接口,默认实现是StandardServer,主要作用有
- 定义了 Servlet 容器的相关配置,即
server.xml
中的配置 - 启动
Server
将启动所有的Tomcat组件,关闭Server
将关闭所有组件
Server接口中重要的方法如下:
1 | public interface Server extends Lifecycle { |
2.Service
Service为定义的接口,默认实现是StandardService,主要作用有
- 逻辑上包含Connector和Container
- Mapper:它封装了请求资源URI与每个相对应的处理wrapper容器的映射关系
Service接口中重要的方法如下:
1 | public interface Service extends Lifecycle { |
3.Connector
Connector为定义的连接器类,默认实现的协议有http、https、AJP,主要作用有
- 根据不同的协议解析客户端的请求
- 将解析完的请求转发给Connector关联的Engine容器处理
Connector默认支持的协议如下:
1 | /** |
4.Engine
Engine为定义的接口,默认实现是StandardEngine,主要有以下模块:
- Cluster:实现tomcat管理
- Realm:实现用户权限管理模块
- Pipeline和Valve:处理Pipeline上的各个Valve,是一种责任链模式。只是简单的将Connector传过来的变量传给Host容器
5.Host
Host为定义的接口,默认实现是StandardHost,主要有以下模块:
- Cluster:实现tomcat管理
- Realm:实现用户权限管理模块
- Pipeline和Valve:处理Pipeline上的各个Valve,是一种责任链模式
6.Context
Context为定义的接口,默认实现是StandardContext,主要有以下模块:
- Realm:实现用户权限管理模块
- Pipeline和Valve:处理Pipeline上的各个Valve,是一种责任链模式
- Manager: 它主要是应用的session管理模块
- Resources: 它是每个web app对应的部署结构的封装
- Loader:它是对每个web app的自有的classloader的封装
7.Wrapper
Wrapper为定义的接口,默认实现是StandardWrapper,主要有以下模块:
- Pipeline和Valve:处理Pipeline上的各个Valve,是一种责任链模式
- Servlet和Servlet Stack:保存Wrapper包装的Servlet