Jetty 8.x 簡單試用
運行
安裝好了以后,在jetty的主目錄下,運行起來。
java -jar start.jar
如果仔細看的話還有一個start.ini,這是典型的eclipse啟動方式。事實上jetty8是按照eclipse的OSGI啟動模型來運行的。
遠程訪問
默認情況下jetty使用8080端口,訪問下看看。
http://adyliu-pc:8080
出現了點問題。啟動后居然是jetty7后的描述信息。看來jetty8發布的時候比較粗糙,這些細節都沒有處理好。事實上,官方站點上的文章都是和jetty7.x有關的,沒有更新到8.x版本。

好在有一行提示說,如果要遠程訪問的話,需要開啟一個設置。好吧,按照說明,將默認test.war的遠程訪問模式打開。 修改文件$JETTY_HOME/contexts/test.d/override-web.xml中的如下部分
<filter>
<filter-name>TestFilter</filter-name>
<filter-class>com.acme.TestFilter</filter-class>
<init-param>
<param-name>remote</param-name>
<param-value>true</param-value>
</init-param>
</filter>
這里已經將默認remote的屬性值false改為了true。然后再試試。
顯然,這樣就已經支持遠程訪問了。
Servlet訪問
test.war模塊里面有一個dump的Servlet,它可以查看當前請求的Request/Session/Cookie信息。我們簡單看一下Request請求。
這里面的信息非常豐富,這為以后調試當前請求信息提供了很方便的樣例。
Comet模型
Jetty8.x里面有兩種comet模型,一種是常見的長連接(Long Polling), 另一種就是HTML5支持的WebSocket模型。
我們先來簡單看一下Long Polling模型。在這種方式下,瀏覽器定時發起一個長連接,等待服務器返回。一次請求完了以后仍然會發起一個新的請求,總是有一個連接保持雙方的通訊。 下圖描述了此效果。

而WebSocket模型顯然不是所有瀏覽器都支持的。高版本的Chrome就支持,比如我的chrome 18.0的開發版本就能很好的支持WebSocket。

有意思的是,這里的請求頭和響應頭有一些特殊的標識。以后涉及到websocket的時候再來研究。

經測試,我機器上的chrome 18.0,firefox 8.0都支持websocket的,而IE9仍然不支持。

©2009-2014 IMXYLZ
|求賢若渴