【TOMCAT】tomcat 类加载及配置文件

************************************************************************ ****原文:blog.csdn.net/clark_xu  徐长亮的专栏 ************************************************************************

tomcat服务器是一种Servlet/jsp容器,更实质性的说是Servlet容器,因为jsp最终还是被编译成servlet来执行的

1. tomcat web.xml

1<welcome-file-list>IIS中的默认文件意思相同

2)报错文件

       如果某文件资源没有找到,服务器要报404错误,按上述配置则会调用/webapps/ROOT/notFileFound.jsp

如果执行的某个JSP文件产生NullPointException,则会调用/webapps/ROOT/null.jsp

3web.xml首先是肯定要包含它的schema.
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
</web-app>

4

<servlet></servlet>用来声明一个servlet的数据,主要有以下子元素:
    <servlet-name></servlet-name>
指定servlet的名称
   
<servlet-class></servlet-class>指定servlet的类名称
    <jsp-file></jsp-file>
指定web站台中的某个JSP网页的完整路径
    <init-param></init-param>
用来定义参数,和前面的<init-param>差不多

5)同样,与<servlet></servlet>一起使用的是<servlet-mapping></servlet-mapping>用来定义servlet所对应的URL,包含两个子元素:
    <servlet-name></servlet-name>
指定servlet的名称
    <url-pattern></url-pattern>
指定servlet所对应的URL

 

2. tomcat 目录

  Bin:

  Conf:server.xml web.xml

  Lib/japser/common:库文件。

  Src:tomcat源代码

  Webapps:web发布目录。

  Work:jsp编译之后产生的class文件。

3. web应用的路径:

/src /class/*.class  /lib/*.jar /image/图片

4. server.xml

Server对象:端口号:

Connector对象:处理线程数:能付查询客户端DNS:请求超时设置。

Context: 网站发布地址和虚拟目录。自动reload程序。

5.工作模式

首先我们需要了解Tomcat在工作时的层次情况,它按照:
<Server>
  <Service>
    <Connector />
    <Engine>
      <Host>
        <Context 1/>
  <Context 2/>
  <Context n
/>
      </Host>
    </Engine>
  </Service>
</Server>
这样的结构表明Tomcat Embeded工作时实例结构情况,一个Server含有1Connector1Engine,其中Engine里含有1Host1Host内可以含有多个ContextContext代表Web应用,即1Host里可以包含多个Web应用。

6. servlet api

servlet容器与servlet之间的接口是由java servlet api定义的,在此api中定义了servlet的各种方法,这些方法在servlet生命周期的不容阶段被servlet容器调用,servlet api还定义了servlet容器传递给servlet的对象类,如请求对象ServletRequest和相应对象ServletResponse

(1)   顶层类元素:
<Server><Service>,他们位于整个配置文件的顶层
<Server>元素代表整个Catalina Servlet容器,它是tomcat实例的顶层元素。<Server>元素当中可包含一个或多个<service>元素。
<service>元素中包含一个<Engine>元素,以及一个或多个<Connector>元素,这些<Connector>元素共享同一个<Engine>元素

(2)    2.连接器类元素:
connector,它代表了介于客户与服务器之间的通信接口,负责将客户的请求发送给服务器,并将服务器的相应结果传递给客户。

(3)    容器类元素:

<engine>接受所有请求。

<host> <Host>组件为特定的虚拟机处理所有客户请求.JVM,包含多个应用。

<context>组件为特定的web应用处理所有客户请求

Context形成一个servletContest对象。为所有组件共享。

common\libserver\libshared\lib这三个目录相信大家都见过吧,但具体是干什么用的呢?
其中server\lib下的jar文件只能被tomcat服务器访问。
shared\lib下的jar文件可以被所有的web应用访问,但不能被tomcat服务器访问。
common\lib目录下的jar文件可以被tomcat服务器和所有的web应用访问

 

7.类加载器:

加载顺序:

·        Bootstrap classes of your JVM

·        System class loader classes

·        /WEB-INF/classes of your web application

·        /WEB-INF/lib/*.jar of your webapplication

·        Common class loader classes

Bootstrap:JVM中的运行时类、$JAVA_HOME/jre/lib/ext中的所有JAR

System: CLASSPATH

Common: $CATALINA_base/lib下面所以jar,class resource.

webappX: /WEB-INF/classes/WEB-INF/lib/*.jar:任何包含ServletAPI classesJAR文件都会被这个类加载器忽略,所以不要在应用程序中包含这类JAR文件(影响性能)

你可能感兴趣的:(tomcat,api,servlet,类加载器)