[深入浅出jetty 02] jetty 8.x 简单试用 -凯发k8网页登录

关注后端架构、中间件、分布式和并发编程

   :: 凯发k8网页登录首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  111 随笔 :: 10 文章 :: 2680 评论 :: 0 trackbacks

运行

安装好了以后,在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>testfilterfilter-name>
    <filter-class>com.acme.testfilterfilter-class>
    <init-param>
      <param-name>remoteparam-name>
      <param-value>trueparam-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
|求贤若渴
posted on 2012-01-29 16:41 imxylz 阅读(7340) 评论(4)  编辑  收藏 所属分类: jetty
# re: [jetty 02] jetty 8.x 简单试用 2012-01-30 02:26
  回复  
  

# re: [jetty 02] jetty 8.x 简单试用[未登录] 2012-01-30 10:55
  回复  
  

# re: [jetty 02] jetty 8.x 简单试用 2012-02-03 10:21
截图简显易懂  回复  
  

# re: [深入浅出jetty 02] jetty 8.x 简单试用[未登录] 2012-06-04 00:17
有点奇怪,我的firefox12和chrome18都无法抓到web socket的包,连charles都不可以。之前我见过的用firefox是可以抓到的,怪异  回复  
  


©2009-2014
网站地图