Grizzly FIlterchain VS HTTPHandler

时间:2015-06-01 04:29:05

标签: grizzly

我正在努力学习Grizzly,我的基本背景是.NET,当我通过Grizzly阅读教程时,很少有事情让我困惑,如果有人帮助我理解这一点,或者可以指出一些详细描述深入概念的好文档很有帮助。我的困惑与HttpHandler和Filterchain之间的基本区别有关。我理解的是我们可以创建自定义过滤器,它可以根据请求执行操作,然后调用过滤器链中的下一个项目。 它是一种处理传入请求的管道。 HttpHandler也做同样的事情吧?但仅限于http请求?那么这两者结合在一起的基本区别是什么?如果有人指向一个显示网络监听器的图表,过滤链和Httphandler都可以处理请求,那将会很有帮助

1 个答案:

答案 0 :(得分:1)

过滤器 FilterChain 的核心抽象是Grizzly框架,用于实现任何协议,HTTP就是其中之一。 HttpServer HttpHandler 是更高级别的抽象,提供类似Servlet的API来处理HTTP请求。引擎盖下的 HttpServer 构建在 FilterChain 过滤器之上,而 HttpHandler 代表了一条逻辑,处理为特定URL发送的HTTP请求,您在 HttpServer 上注册 HttpHandler 时设置这些请求。

回到 HttpServer vs FilterChain 问题,下面是HttpServer的FilterChain的示例:

  • HTTP协议:TransportFilter< - > HttpCodecFilter< - > HttpServerFilter
  • HTTPS协议:TransportFilter< - > SslFilter< - > HttpCodecFilter< - > HttpServerFilter

有帮助吗?