`

2、tomcat的消息传递。

阅读更多
这部分的内容也同上部分,在http://www.huihoo.org/apache/tomcat/和tomcat的文档http://jakata.apache.org/tomcat-docs/上已经讲得很清楚。我主要对其进行理解和消化,并从中总结一些东西来,为我所用。

这部分中最困难的是Pipeline部分,即数据流在各个容器中的传递,依靠的是Pipeline这个东西来来进行消息的传递的实现,这样也可以进行消息传递解偶,而且又可以随时加入Valve,具体即插即用的作用。这个Value有点性Servlet编程中的Filter,也就是类似Filter的功能,可以在需要的时候加入安全控制等功能。

这个Pipeline模式主要由三个接口来实现。Pipeline、Valve、ValveContext。

Pipeline主要实现管道功能,为Value提供运行起点,其invoke方法为管道的起点。

Value主要实现过滤器或拦截器的作用,其实现类也是具体的拦截者,当Valve实现具体的行为后,一般仍会调用Pipeline的invoke方法,将控制流交给Pipeline。

ValveContext主要为Value的正常运行提供一个平台,保存着所有的Value的一个引用,也是决定具体调用哪个Value的决定者,但一般情况下都是按顺序调用Value的invoke()方法。

Pipeline的接口如下:
public interface Pipeline {
    public Valve getBasic();
    public void setBasic(Valve valve);
    public void addValve(Valve valve);
    public Valve[] getValves();
    public void invoke(Request request, Response response)
        throws IOException, ServletException;
    public void removeValve(Valve valve);
}


Value的接口如下:
public interface Valve {
    public String getInfo();
    public void invoke(Request request, Response response,
                       ValveContext context)
        throws IOException, ServletException;
}


ValueContext的接口如下:
public interface ValveContext {
    public String getInfo();
    public void invokeNext(Request request, Response response)
        throws IOException, ServletException;
}
分享到:
评论

相关推荐

    spring jms tomcat 异步消息传递入门实例

    在这个"spring jms tomcat 异步消息传递入门实例"中,我们将探讨如何在Spring框架下利用JMS和Tomcat实现异步消息传递,以提高系统性能和可扩展性。 首先,理解异步消息传递的概念至关重要。在同步通信中,发送方...

    tomcat spring jms 异步消息传递入门实例

    本教程将带你逐步了解如何利用Tomcat、Spring和JMS(Java Message Service)构建一个简单的异步消息传递入门实例。 首先,让我们来理解一下核心组件: 1. **Tomcat**:这是一个流行的开源Java Servlet容器,用于...

    struts2和tomcat使用

    Struts2和Tomcat是Java Web开发中两个关键的组件,它们共同构成了Web应用程序的基础架构。Struts2是一个基于MVC(Model-View-Controller)设计模式的开源框架,主要用于构建企业级的Java Web应用,而Tomcat则是一个...

    Tomcat深入剖析pdf+源码(Tomcat运行原理)

    2. **启动流程**:Tomcat的启动过程涉及服务器配置文件的读取,如server.xml、web.xml等,这些文件定义了服务器的行为和应用的部署信息。Tomcat会根据这些配置启动必要的服务和监听器。 3. **Servlet生命周期**:...

    修改Tomcat默认编码消除get方式传递参数出现中文乱码

    ### 修改Tomcat默认编码以消除GET方式传递参数出现的中文乱码 在处理Web应用程序时,尤其是使用Apache Tomcat作为应用服务器的情况下,遇到中文字符乱码的问题是非常常见的。这一问题通常发生在通过GET方法传递含有...

    ActiveMQ与Tomcat整合

    ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它遵循JMS(Java Message Service)规范,用于处理应用程序之间的异步通信和消息传递。而Tomcat是一款流行的开源Web服务器和Servlet容器,广泛应用于Java Web...

    activemq与tomcat整合

    本篇将详细介绍如何将ActiveMQ与Tomcat进行整合,以便在Web应用程序中利用ActiveMQ的消息传递功能。 首先,我们需要了解ActiveMQ和Tomcat的基本概念。ActiveMQ是Apache软件基金会开发的一款开源JMS(Java Message ...

    apache-tomcat-10.0.20

    4. **NIO2 Connector**: Tomcat 10.0默认使用NIO2连接器,这提供了更好的并发性能和更低的内存消耗,尤其是在高并发场景下。 5. **JAR扫描优化**: 新版本对JAR扫描进行了优化,减少了启动时间和内存占用,特别是在...

    apache-tomcat-7.0.39

    1. **Servlet容器**:Tomcat能够解析HTTP请求并将其传递给对应的Servlet,Servlet是Java编写的小型服务器端程序,负责处理客户端请求并返回响应。 2. **JSP引擎**:Tomcat支持JSP,这是一种动态网页技术,允许...

    TongWeb和Tomcat的区别.doc

    TongWeb是东方通中间件5.0版本,作为SOA实现提供了一个完善的企业级应用服务器,支持面向服务架构的开发和部署,通过可靠消息传递基础架构为业务提供事件平台;而Tomcat则是Apache软件基金会开发的开源Web服务器。 ...

    how tomcat work 中文版

    2. Coyote接收请求,并将其传递给Catalina。 3. Catalina解析请求,查找匹配的Servlet或JSP。 4. 如果是JSP,Jasper将JSP转换为Servlet,然后编译。 5. 创建Servlet实例,调用其service()方法处理请求。 6. Servlet...

    Java-tomcat-axis2开发webservice返回json数据

    Axis2提供了许多高级功能,如模块化架构、消息传递机制和多种传输协议支持。在本场景中,使用Axis2可以帮助开发者快速创建和部署Web服务,并且可以方便地将返回的数据格式设置为JSON。 **返回JSON数据**: JSON...

    IIS整合多个tomcat

    1. 安装ISAPI Filter和ISAPI Extension:如使用JkMount或mod_jk,它们是Apache的Apache Tomcat连接器,负责在IIS和Tomcat之间传递请求。 2. 配置ISAPI Filter和Extension:设置相应的注册表项,以及在IIS中添加过滤...

    androidpn消息推送-tomcat版

    消息的传递以`<stream>`为起始标记,以`</stream>`为结束标记。 #### 四、客户端组件 客户端主要包括以下几个部分: 1. **控制器(XmppManager)**:负责管理连接信息(如XMPP端口、IP地址、用户名和密码),并维护...

    ActiveMQ与Tomcat整合教程

    【ActiveMQ与Tomcat整合教程】是关于如何在Apache Tomcat服务器中集成开源消息中间件ActiveMQ的详细步骤。...通过遵循这些步骤,开发者可以轻松地在Tomcat服务器上构建一个具备消息传递功能的应用。

    tomcat源码

    2. **Catalina组件解析** - **Context**:每个Context对应一个Web应用程序,负责管理Servlet、过滤器和监听器。 - **Host**:Host代表虚拟主机,可以配置多个域名指向同一个Tomcat实例。 - **Engine**:Engine是...

    Tomcat7+Redis+Session 负载之后session 共享 tomcat jar包

    2. **配置Tomcat**: - 修改`$CATALINA_HOME/conf/context.xml`文件,添加一个`Manager`元素来指定使用Redis作为Session的存储介质。例如: ```xml host="localhost" port="6379" database="0" password=...

    tomcat activemq jms所需包

    2. **Java开发环境**:安装JDK,并设置好环境变量,如JAVA_HOME和PATH,使得Tomcat可以找到Java运行时环境。 3. **ActiveMQ**:从Apache官方网站下载ActiveMQ,并解压到合适的位置。配置ActiveMQ的`conf/activemq....

    How Tomcat Works中文

    2. **创建响应对象**:创建`ServletResponse`对象供Servlet使用,用于向客户端返回响应。 3. **调用Servlet的Service方法**:将请求和响应对象传递给相应的Servlet,执行业务逻辑并生成响应内容。 #### 六、...

Global site tag (gtag.js) - Google Analytics