Jetty是一个纯Java实现的开源Servlet容器,Jetty也可以作为HTTP服务器和HTTP客户端,Jetty仪器轻巧,稳定和高性能而著称,完全可以胜任企业级Servlet容器的要求。Jetty允许Apache Licence 2.0或者Eclipse Public License 1.0双重许可。您可以再遵循上述任何一个许可的基础上将Jetty用于各种商业用途。
Jetty 7是Jetty奔向Eclipse后发布的第一个版本,本次的Jetty 7 RC2带给了我们一个十分诱人的新特性-支持跨域名Ajax请求。众所周知因为安全的原因,多数浏览器都限制了Ajax跨域请求和javascript加载的时候只能是与当前域下的应用进行交互。例如 访问 http://webrss.org 页面,那么我们的 Ajax 请求只能与webrss.org下的应用进行交互,端口不同或者二级域名不同的情况下,都是无法进行交互的。
这个问题在一些严重依赖 Ajax 的Web应用(如 Cometd 应用)上时很头疼的问题,这些应用经常需要跟多个域名打交道来,第一是可以将请求分摊到不同的服务器减轻压力提高响应速度,第二是方便将不同的业务逻辑分布到不同的服务器上降低负载。
针对这限制,目前的主流做法是:使用 Bayeux 通讯框架,该框架是基于 JSONP 协议的,通过在 DOM 中注入 script 元素来连接到不同的域名上。当然,这种方式是可行的,但可靠性比起标准的相同域名的 Ajax 调用要差得多。
幸运的是 W3C 的新规范 Cross-Origin Resource Sharing Specification 中对该限制进行了改进。而 FireFox 3.5 已经实现了该规范。FireFox 3.5 中一个最值得0注意的新特性就是支持Ajax 对象进行跨域名的 HTTP 请求,用 Mozilla 的专业术语来说就是 cross-origin请求(跨域名Ajax请求)。
Jetty 7 RC2 中使用一个新的 Filter 类用来实现该 cross-origin规范(跨域名Ajax请求)。
更多关于Jetty 7 cross-origin协议实现filter的信息请访问:
http://wiki.eclipse.org/Jetty/Feature/Cross_Origin_Filter
[ad#468-60]