tomcat8源码教程之Server接口_IT学习者—关注程序员的就业、工作和生活 

您现在的位置:主页 > 源码解读 > >

tomcat8源码教程之Server接口



时间: 2015-06-14 00:23     来源 : IT学习者      点击:

关键词: tomcat8    tomcat8源码    tomcat8教程   


目录页:《tomcat8源码分析


上一篇讲解了tomcat中的顶级接口Lifecycle之后,今天再来介绍一下Server。 内容来自www.itxxz.com




通过tomcat的源码可以看到,server继承了Lifecycle
Server表示整个的Catalina Servlet容器。Tomcat提供了Server接口的一个默认实现,这通常不需要用户自己去实现。在Server容器中,可以包含一个或多个Service组件。
通常来说,实现了server这个接口的组件,都会实现Lifecycle这个接口。也就是说一旦调用了start或者stop方法后,所有组件也都会调用start或stop方法。
在两者之间,会启用一个socket服务,一旦有链接介入,便会读取第一行所定义的shutdown命令,如何命令相符,那么这个服务的shutdown命令便会初始化开始执行。
需要注意的是,每一个具体的server实现类都会通过ServerFactory启用一个单例来进行构造。

本文来自www.itxxz.com


上面说的都是一些关于server的概念,可能比较抽象,下面就说一些实在的。

server继承于Lifecycle接口,也就相应的拥有以下13个事件:

AFTER_DESTROY_EVENT,
AFTER_INIT_EVENT,
AFTER_START_EVENT,
AFTER_STOP_EVENT,
BEFORE_DESTROY_EVENT,
BEFORE_INIT_EVENT,
BEFORE_START_EVENT,
BEFORE_STOP_EVENT,
CONFIGURE_START_EVENT,
CONFIGURE_STOP_EVENT,
PERIODIC_EVENT,
START_EVENT,
STOP_EVENT


通过官方的API可知提供了以下几个接口:
  itxxz.com

  • getGlobalNamingResources

    NamingResourcesImpl getGlobalNamingResources() IT学习者(www.itxxz.com) 
    Return the global naming resources.

本文来自www.itxxz.com

  • setGlobalNamingResources

    void setGlobalNamingResources(NamingResourcesImpl globalNamingResources) IT学习者(www.itxxz.com) 
    Set the global naming resources.
    Parameters:
    globalNamingResources - The new global naming resources

itxxz.com

  • getGlobalNamingContext

    Context getGlobalNamingContext() 

    itxxz.com

    Return the global naming resources context.

本文来自www.itxxz.com

  • getPort

    int getPort() 官网:http://www.itxxz.com 
    Return the port number we listen to for shutdown commands.

本文来自www.itxxz.com

  • setPort

    void setPort(int port) 

    IT学习者(www.itxxz.com)

    Set the port number we listen to for shutdown commands.
    Parameters:
    port - The new port number

本文来自www.itxxz.com

  • getAddress

    String getAddress() copyright www.itxxz.com 
    Return the address on which we listen to for shutdown commands.

内容来自www.itxxz.com

  • setAddress

    void setAddress(String address) 

    IT学习者(www.itxxz.com)

    Set the address on which we listen to for shutdown commands.
    Parameters:
    address - The new address

官网:http://www.itxxz.com

  • getShutdown

    String getShutdown() itxxz.com 
    Return the shutdown command string we are waiting for.

本文来自www.itxxz.com

  • setShutdown

    void setShutdown(String shutdown) 官网:http://www.itxxz.com 
    Set the shutdown command we are waiting for.
    Parameters:
    shutdown - The new shutdown command

copyright www.itxxz.com

  • getParentClassLoader

    ClassLoader getParentClassLoader() itxxz.com 
    Return the parent class loader for this component. If not set, return getCatalina() Catalina.getParentClassLoader(). If catalina has not been set, return the system class loader.

本文来自www.itxxz.com

  • setParentClassLoader

    void setParentClassLoader(ClassLoader parent) 本文来自www.itxxz.com 
    Set the parent class loader for this server.
    Parameters:
    parent - The new parent class loader

本文来自www.itxxz.com

  • getCatalina

    Catalina getCatalina() itxxz.com 
    Return the outer Catalina startup/shutdown component if present.

本文来自www.itxxz.com

  • setCatalina

    void setCatalina(Catalina catalina) IT学习者(www.itxxz.com) 
    Set the outer Catalina startup/shutdown component if present.

copyright www.itxxz.com

  • getCatalinaBase

    File getCatalinaBase() 

    官网:http://www.itxxz.com

    Obtain the configured base (instance) directory. Note that home and base may be the same (and are by default). If this is not set the value returned by getCatalinaHome() will be used.

itxxz.com

  • setCatalinaBase

    void setCatalinaBase(File catalinaBase) 内容来自www.itxxz.com 
    Set the configured base (instance) directory. Note that home and base may be the same (and are by default).

本文来自www.itxxz.com

  • getCatalinaHome

    File getCatalinaHome() itxxz.com 
    Obtain the configured home (binary) directory. Note that home and base may be the same (and are by default).

itxxz.com

  • setCatalinaHome

    void setCatalinaHome(File catalinaHome) 
    本文来自www.itxxz.com
    Set the configured home (binary) directory. Note that home and base may be the same (and are by default).

内容来自www.itxxz.com

  • addService

    void addService(Service service) 
    itxxz.com
    Add a new Service to the set of defined Services.
    Parameters:
    service - The Service to be added

本文来自www.itxxz.com

  • await

    void await() 
    IT学习者(www.itxxz.com)
    Wait until a proper shutdown command is received, then return.

itxxz.com

  • findService

    Service findService(String name) 

    itxxz.com

    Return the specified Service (if it exists); otherwise return null.
    Parameters:
    name - Name of the Service to be returned

itxxz.com

  • findServices

    Service[] findServices() 

    itxxz.com

    Return the set of Services defined within this Server.

内容来自www.itxxz.com

  • removeService

    void removeService(Service service) 本文来自www.itxxz.com 
    Remove the specified Service from the set associated from this Server.
    Parameters:
    service - The Service to be removed

copyright www.itxxz.com

  • getNamingToken

    Object getNamingToken() 

    itxxz.com

    Obtain the token necessary for operations on the associated JNDI naming context.

毕竟server接口大多都是由tomcat自动调用的,此处只需要简单了解,对上述接口可以简单的归一下类:

1、servlet相关:就是启动(start)或停止(stop)一个Catalina servlet容器的相关操作
2、service相关:添加、获取service等操作
3、获取server的端口地址等
4、获取资源文件内容,比如JNDI等


以上就是对server的简单介绍,看起来也不算复杂,下一篇开始介绍下server的子类StandardServer,也就是在《tomcat8源码教程之启动一个tomcat服务》提到的内容。

内容来自www.itxxz.com

 

copyright www.itxxz.com






文章除注明转载外,均为IT学习者原创或编译
欢迎任何形式的转载,但务必请以超链接形式注明出处
本文出自:IT学习者
链接地址:http://www.itxxz.com/a/code/2015/0613/812.html



微信公众号:喝咖啡的螃蟹

喝咖啡的螃蟹
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-->