首页 > 代码库 > Apache Tomcat 7 读书笔记 - 第一章

Apache Tomcat 7 读书笔记 - 第一章

Apache Tomcat 简介:

  1. 开源框架,下载地址:http://tomcat.apache.org/。可以嵌入独立的web应用,也可作为多个web应用的服务器。
  2. 基于Java的web应用服务器容器,能托管Servlet和Java Server Pages(JSP)的web应用。我们常用的J2EE框架,Spring MVC, Structs等,部署到Tomcat上去后,Tomcat会将其自动解析成Serlvet与JSP。在前后端开发完全分离的情况下(后台只提供接口,前端调用),不推荐使用原有的EL表达式,前端不能出现任何Java代码,可采用AngularJS,Ember.js作为前端技术。

Tomcat各版本与对应的Servlet,JSP版本及其JDK(下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html)如下(安装Tomcat时,JDK版本不要弄错了):

Apache TomcatServlet APIJSP APIJDK
7.03.02.21.6
6.02.52.11.5
5.52.42.01.4
4.12.31.21.3
3.02.21.11.1

The Tomcat Manager Web Application

    Manager Web Application随Tomcat一起发布,并内嵌于Tomcat中。位于%CATALINA_HOME%/webapps/manager下。启动Tomcat后,可在浏览器中进行访问。要使用Manager Web Application管理web应用,需要增加用户,并配置权限为manager-gui。用它,可以管理所有运行在Tomcat上的web应用,安装、删除、启动、停止等。

Specialized Realm Implementations

    Tomcat提供的一种安全机制,能有效保护部署在Tomcat上的web应用和资源。用户可以配置用户及相应的角色、权限,实现基本的安全措施。

Tomcat Valves

     随Tomcat4.X一起发布,只能应用在Tomcat上。它能拦截来自客户端的http请求,处理request,response,实现与Servlet类似的功能。然而,由于其专属于Tomcat,在设计时,就被赋予了比Servlet更好的性能、更健壮。使用它,可以配置针对所有web应用的过滤器。而Servlet的配置只能应用在单一的web应用中,重用性低。

 

Tomcat架构

    一个JVM只能运行一个Tomcat容器。Tomcat的设计者们采用这种方式,一旦JVM崩溃,能保证部署在Tomcat上的应用的安全。以下XML文件及图片是对Tomcat中各个组件、容器的描述。XML文件位于%CATALINA_HOME%/conf/server.xml。

 1 <Server>  2     <Service>  3         <Connector />  4         <Engine>  5         <Host>  6             <Context> </Context>  7         </Host>  8         </Engine>  9     </Service> 10 </Server>
View Code

Tomcat架构图

  • Server:Tomcat中的根级元素,一个Tomcat容器只能拥有一个<Server>元素。一个<Server>元素中可以包含多个<Service>元素。
  • Service:次于<Server>元素,可以配置多个。在一个 <Service>元素中,可以包含多个<Connector>元素,这些<Connector>元素共享一个<Engine>元素。
  • Connector:次于<Service>元素,可以配置多个。能处理来自单个web应用中http请求的request和response。
  • Engine:一个<Service>元素只能拥有一个<Engine>元素。能处理所有request请求,这些请求必须是来自<Connector>的。
  • Context:可以配置多个。在Tomcat中,这是使用最为频繁的元素。一个<Context>元素代表运行在Tomcat上的一个web应用,它必须包含在<Host>中。

Tomcat的安装(Windows,Linux)

    在此不做介绍,下载好Tomcat安装包后,可在%CATALINA_HOME%/webapps/docs/index.html中找到解决方案,包含Windows,Linux两种方式。