关于Wicket的三个问题

阅读更多

我以前用过webwork和sturts,这种基于请求的框架在界面开发上的问题挺多,但是至少还比较成熟,期间也实验过Tapestry和Echo2,感觉Tapestry的体系太乱了,好好一个项目,让开发组搞的乱七八糟,而Echo2的builder用起来很不错,只是收费和session管理的问题觉得不太好,另外就是Echo2的体系太封闭,不容易集成spring和osgi,虽然努力努力也能做到,但毕竟感觉不好。
最近看了版主的wicket开发指南,并实验了一下wicket的例子,觉得wicket是个很有前途的框架,个人觉得真的解决了java web界面开发的大问题。

不过有以下几个问题想请教一下版主:

1、wicket将组件缓冲在session中会不会影响性能?或者导致app server crash?
这点我觉得是个很严重的问题,因为session在server端都是存储在server的JVM进程空间里的,这样长期运行会不会导致server outmemery?楼主遇到过这种情况没有?

2、wicket的性能如何?
用在web站点上首先要关心的就是性能问题了,其他的web框架都可以通过SNA架构来提供简单无限制的集群,而wicket的集群是基于session复制的,不知道性能如何,有没有这方面成功的经验?
或者可以使用apache的striky session来将session限制在单个tomcat上?我在wicket的wiki上没看到类似的说明,理论上应该是可行的,不知道楼主有没有看到过相应的资料?
在大型网站上,一般都不使用session来存储信息,而使用cookie或者是url stricky这两种方法来存储session id,后台使用分布式的cache或者内存数据库做为cache来存储session信息,不知道在wicket中,我是不是可以通过更改一些组件来做到这点?

3、apache的集成问题
在使用apache和servlet容器集成的时候,一般都是按照扩展名来配置转发,比如将资源扩展名为jsp、action、do这样的url访问转发到某个servlet容器上,但是使用了wicket之后,在wicket应用中都是html页面,我看到wicket生成的url也比较灵活,有/people/find/这种目前比较流行的url,也有/wicket?xxx这种url,可是这两种url的扩展名都不固定,在apache里怎么配置转发呢?
wicket的wiki上给出的apache集成方案中,使用了web虚拟机配置,将某个地址的访问全部转发给servlet容器,这样做的问题是如果我的java的应用中有一部分是纯静态html页面,想通过apache来访问这些文件以便提高性能,这种配置方法就不能满足要求了。

最后,真诚的感谢版主介绍了wicket这么好的框架给中国的开发人员,期待版主更多的作品


因为你的问题比较复杂
所以我没有办法在一个简单的帖子里描述清楚
下周我会抽出时间专门写一些文章回答其中的问题

下面是一个简单的回答
1、Wicket的Session是通过ISessionStore来处理的,你可以实现这个接口提供自己的Session处理,也可以编写一种类似于JSP的无状态页面节省内存。
2、至于性能,象Cookie,Wicket也是支持的,而且可以很容易的封装,而Wicket2.0会支持ASP.Net的ViewState方式,即通过隐藏域来传递信息,不知道Wicket1.3是否会支持这种方式。
3、配置转发是属于Servlet规范中的,其实与Apache关系并不大,Apache只能提高静态页面的访问性能。


 呵呵,多谢版主回复,不知道wicket2.0什么时候release啊?
如果能够做到ASP.NET那样,那就省事多了
ISessionStore我在你的文档中看到了,还要多学习^_^

关于第三点,可能我表达的不是很清楚,url转发应该不是servlet的问题吧,apache在前面,必须配置它将相应的url访问转发给Tomcat,一般来说都是Apache的JKMount或ajp来配置,所以我的意思能不能让wicket的url有个明显的标识,好在apache里配置转发,不知道版主和我说的是不是一个事情?或者我理解的有问题?

期待版主的详细的文档,呵呵


Wicket2.0与1.X变化太大,所以顺利的话也要在今年6-7月份吧!毕竟小组的人才是有限,我自己也是做开源软件的,但是有公事的时候,只好把自己的东西放一边了!

2.0看起来真的很象ASP.NET,但是使用Session,还是ViewState,在Wicket邮件组的争论也是比较多,我个人也是犹豫不决,这个还是要具体分析,不同环境下还是有所区别的。

第三点是我理解错了,我以为你说的是WEB-INF中的URL定义呢?我对Apache不太熟悉,这些内容可能需要你去研究了,如果有了心得,千万要告诉我一声啊!

如果有其它的心得或者问题,希望同样与我们分享。

你可能感兴趣的:(wicket,Apache,ASP.net,ASP,Tapestry)