关于《Jetty6 指南和解析》第3章Jetty构架- jimichan - JavaEye技术网站

写在前面:使用jetty已经很久了,它是一个很出色的web容器和工具,特在此和大家分享jetty6的知识。网络上有一些关于jetty的资料,但过去陈旧且不具有系统性,导致很多人误解jetty的功能,国外目前也没有关于jetty的书籍,所以那些搞翻译的人也没有翻译来源,故决定写一本关于jetty6的书,以推广jetty在国内的使用。记住jetty不仅仅是一个web容器!

版权声明:这一系列章节只在javaeye的博客发表,谢绝任何组织和个人的转载或抄袭!本人保留所有权利!如侵犯本版权则需赔偿人民币5000000圆整,因为劳动是无价的,这算便宜的了!

作者:陈汝烨 ?

?

?

由于这一些系列文章正在编写过程中,写好一章就发一章,难免有很多错误的地方,欢迎哥们指正!

?

在不同应用场合下,你可以使用选择不同Connector实现类以满足你的需求;如果你不得不使用低版本J2SE,那么你可以指定不同ThreadPool实现类,甚至可以自己实现一个线程池;你可以组合多个不同用途的Handler实现来灵活配置Jetty服务器的功能,比如决定是否支持Servlet,是否启用Servlet的Session功能或者配置Session集群实现,更甚至自己实现Hanlder以满足特定的需求,从而不去理会所谓的Servlet规范,离开Servlet规范利用Jetty我们一样可以实现动态内容的javaWeb服务器,当然这虽然不一定是明智的选择。

?

?? ?回答{dy}个问题,需要了解一些基本的网络知识,不过不是本书的重点便不展开说明,请参考其他资料。我们使用TCP/IP协议栈来发送和接受数据。TCP/IP可以保证数据会被正确地在网络上传送到指定的服务器,就好比在客户端和服务器之间建立一个稳定的通道,可以按顺序稳定可靠地传输数据。我们不必关心数据是如何被转换成电信号,以及如何在不同的路由器之间转发、网络错误等等一系列棘手的问题。在Java里面我们通过Socket编程接口来进行TCP/IP协议。
?? ?handle方法的参数列表和Servlet的service方法非常相似,但是必须澄清的是,虽然handle方法列表中采用了Servlet规范中的HttpServletRequest和HttpServletResponse接口,但是不意味着xx实现了Servlet规范所有的特性。例如:如果没有为Jetty配置ContextHandler处理器,那么request的 getContextPath方法会返回null。所以handle方法只是借用了Servlet规范中这两个接口而已,估计这也是为了更方便的实现Servlet规范做好准备吧。
?? ?2. 装饰模式Handler

?? ? ? 该类Handler可以选择在交给另外一个Handler对象调用前或后来处理Request和Response。这些类都继承自HandlerWrapper类,如图2.4中展示的。大家会注意到Server类也是一个装饰模式Handler,其实在Server代理了所有其他的Handler,是所有Handler的入口。HandlerWrapper中的setHandler方法便是用来设定被代理Handler对象的,这个方法在以后大家会经常用到。另外装饰器模式还运行将多个Handler串联起来使用。

?

?? ?3.集合类Handler

?? ? ? ? ? ?该类Handler的作用是讲请求分发给其他Handler处理,分发策略由各自实现类决定。常用集合类Handler有 HandlerCollection、HandlerList、ContextHandlerCollection。?? ?

?

?? ?关于ThreadPool,Jetty为我们提供了两个实现版本:org.mortbay.thread.concurrent.ThreadPool和org.mortbay.thread.QueuedThreadPool。当j2se是1.5以上版本是我们选择ThreadPool的实现。ThreadPool存在的目的是因为线程的创建是非常昂贵的操作,所以使用Pool技术以便重复使用以创建的线程。

ThreadPool的大致工作方式是:如果存在一个空闲线程,则让它去执行请求处理。如果不存在且没有达到设定的{zd0}线程数,那么就新建一个Thread去执行请求处理。如果已经达到{zd0}线程数,那么就将工作任务放到队列里面排队,等到有空闲线程时再执行任务。

?

?

郑重声明:资讯 【关于《Jetty6 指南和解析》第3章Jetty构架- jimichan - JavaEye技术网站】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——