2、tomcat的消息传递。

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

这部分中最困难的是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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值