从零开始深入学习Tomcat

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012557538/article/details/79296572

1:Tomcat工作原理

      当客户请求某个资源时,Servlet 容器使用 ServletRequest 对象把客户的请求信息封装起 来,然后调用 Java Servlet API 中定义的 Servlet 的一些生命周期方法,完成 Servlet 的执行, 接着把 Servlet 执行的要返回给客户的结果封装到 ServletResponse 对象中,最后 Servlet 容 器把客户的请求发送给客户,完成为客户的一次服务过程

2:Tomcat工作模式

(1):独立的Servlet容器(默认)(2)进程内的Servlet容器(基于JNI)(3)进程外的Servlet容器(基于IPC)

  JNI:Java Native Interface,本地通信接口,通过这个接口,Java 程序可以和其他语言编写的本地程序进行通信。

  IPC:Inter Process Communication,进程间通信 

  Tomcat既可以作为独立的容器,又可以和其他Web服务器集成(例如IIS,Apache)作为进程内、进程间Servlet容器

  Servlet容器分为:

  1.Web服务器插件:在其他的WEB服务器内部地址空间打开一个JVM,Java容器在这个开辟的JVM上运行Servlet

  2.Java容器

3:Tomcat组织结构

最基本的配置:

<Server>顶层类元素,可包含多个 Service
  <Service>顶层类元素,可包含一个 Engine 和多个 Connector,本身并不能处理客户请求
   <Connector/>连接器元素,代表通信接口,本身并不能处理客户请求
   <Engine>容器元素,为 Service 处理客户请求,可包含多个 Host
       <Host>容器元素,为 Host 处理客户请求,可包含多个 Context
       <Context/>容器元素,为 Web 应用处理客户请求
     </Host>
   </Engine>
</Service></Server>

Connector 通过这个客户求,其他容器组件,后再服务客户。 

容器类元素
上面介绍的 3 个组件:server,service,connector本身并不能处理客户请求,也不能生成响应。在 Tomcat 中只有 3 个组件是可以处理客户请求并生成响应的,这 3 个组件分别是 Engine、Host 和 Context。这 3 个组件分别代表了不同的服务范围,通过嵌套关系可以知道 3 个组件的范围有如下的关 系:Engine>Host>Context。
Engine 组件下可以包含多个 Host 组件,它为特定的 Service 组件处理所有客户请求。
一个 Host 组件代表一个虚拟主机,一个虚拟主机中可以包含多个 Web 应用(Context 组件)。

Context 组件代表一个 Web 应用。

WEB服务器种类:

Java Web 服务按照依次有:JSWDKJServResinTomcatJRunJBossWebLogicWebSphere JSWDKJServResinTomcatJRunJBoss 完全免费件。 

4:JVM性能设置

堆大小
堆大小也可以提高性能,JDK1.3.1 允许堆大小大于 2GB,默认堆大小为 64MB,但是 大部分的服务器增加堆大小后性能会提高,设置参数为-Xms256m -Xmx256m,Xms 代表最 大大小,Xmx 代表默认启动大小,m 代表 MB,g 代表 GB。
垃圾回收

如果堆设置过大,也许服务器会在无端的情况下奇怪终止。这是因为垃圾回收器(GC, garbage collector)仅仅在内存被耗尽后在整个系统中启动垃圾回收任务,也意味着需要花 费一定的时间来检查 2G 以上的内存。如果堆过大,扫描内存的时间过长,就会导致系统 终止。不过有办法可以解决,添加命令参数-Xincgc,使垃圾回收器运行在 incremental 模式, 它会经常运行检查小数量的内存。还有一种解决办法,设置参数-Xms256m -Xmx256m -XX:NewSize=128m -XX:MaxNewSize=128m,NewSize 是新建对象的大小,MaxNewSize 是新建堆运行增长的最大值,它决定了何时将新的对象置为旧的对象。

5:Tomcat目录

Tomcat 根目Tomcat $CATALINA_HOME ,即安装目录。

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"  xmlValidation="false" xmlNamespaceAware="false">

<Context path="/aa" reloadable="true"docBase="D:\bb\aa" workDir="webapps/axis/work"/> 

 </Host>

其中属性 path 代表网络访问的上下文路 径,reloadable 表示可以在运行时在 classes 与 lib 文件夹下自动加载类包,docBase 属性表 示应用程序的路径,如 docBase="D:\bb\aa",workDir 表示缓存文件的放置地点,可以方 便跨平台移植时不用重编译。

service.bat Tomcat 服务

service.bat Tomcat 安装bin 文件,用理文件来安装、删除 Tomcat服务比较便:下载时要下载

Tomcat5 服务:service install;
删除 Tomcat5 服务:service remove;
MyTomcatService 服务:service install MyTomcatService; 删除名MyTomcatService 服务:service remove MyTomcatService。 


猜你喜欢

转载自blog.csdn.net/u012557538/article/details/79296572