我以前用过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 是一个开源的、基于组件的 Java Web 开发框架,它提供了一种简单而强大的方式来构建动态、交互性强的Web 应用程序。Wicket 的设计哲学是将Web 页面的视图与业务逻辑解耦,使得开发者可以专注于应用的业务需求...
在当今的 Web 开发领域,Java 框架扮演着举足轻重的角色,其中 Apache Wicket 是一个强大的、面向组件的 Java Web 应用框架,它简化了 Web 应用的开发过程。本文将详细介绍如何在 Eclipse 中使用 Maven 创建一个 ...
2. **组件生命周期**:Wicket组件有三个主要的生命周期阶段:创建、渲染和销毁。在渲染阶段,组件负责生成HTML输出;在创建阶段,可以进行初始化操作;销毁阶段则通常用于释放资源。 **三、模型-视图-控制器(MVC)...
1. **组件生命周期**:Wicket组件有三个主要状态——创建、渲染和服务。创建时,组件实例化;渲染时,组件将自身呈现到页面上;服务时,处理用户交互。了解这些生命周期对于优化性能和管理组件状态至关重要。 2. **...
Wicket是一个流行的Java web应用程序框架,它提供了强大的组件模型和灵活的国际化支持。 **一、Wicket的国际化基础** 1. **什么是国际化(i18n)**:国际化是一种软件设计方法,使得应用程序能够适应不同地区的...
Wicket采用了MVC架构模式,主要包括模型(Model)、视图(View)和控制器(Controller)三部分。 **4.2 MVC结构** - **模型(Model)** 负责管理应用程序的数据和业务逻辑。 - **视图(View)** 负责显示数据给用户。 ...
这个“Wicket的HelloWorld”程序是初学者入门Wicket的典型例子,它展示了如何利用Wicket框架创建一个简单的Web应用。 在Wicket中,组件是构建Web页面的基本单元,可以是HTML元素,如按钮、文本框,也可以是更复杂的...
Wicket采用了一种简洁明了的设计,主要包括模型、视图和控制器三个部分。 **4.2 MVC结构** - **基本结构**:MVC模式是Wicket的核心,它将应用逻辑、用户界面和数据有效分离。 - **View与Control的映射**:Wicket...
#### 三、Wicket 的基本结构 - **MVC 架构:** - **模型 (Model):** 存储数据和业务逻辑。 - **视图 (View):** 显示模型中的数据,通常使用 HTML 和 CSS 实现。 - **控制器 (Controller):** 负责处理用户请求...
三、Wicket自带例子 压缩包中的示例项目通常会涵盖各种Wicket特性,你可以通过这些例子了解Wicket在实际应用中的工作方式。这些例子可能包括: 1. 基本组件展示:如按钮、文本框、标签等组件的使用。 2. 表格和列表...
11. **其他第三方库**:在lib目录下可能还会包含其他的jar包,比如log4j、slf4j等日志框架,或者json、xml解析库等,这些都是为了支持Wicket正常运行或提供额外功能所必需的依赖。 在实际开发中,根据项目的具体...
组件生命周期也是Wicket中的一个重要概念,包括初始化、渲染和移除三个阶段。每个阶段都有相应的钩子方法,允许开发者在组件生命周期的特定点上插入自定义行为。Wicket还支持有状态页面和无状态页面,分别对应于是否...
当用户提交表单时,Wicket会自动检测这个文本框的内容长度是否符合要求。如果不满足条件,表单将不会被提交,并向用户展示错误消息。 #### 三、自定义校验 除了内置的校验方法外,Wicket还支持自定义校验逻辑。这...
- 第三方库:许多社区贡献的组件库扩展了Wicket的功能。 阅读《Wicket开发指南》PDF,你将逐步了解如何搭建Wicket环境,创建第一个应用,使用组件,处理用户输入,以及如何优化和扩展Wicket应用。这份指南对于想要...
Wicket 1.4 是一个基于Java的开源Web应用程序框架,它强调了组件化和页面的可重用性。这个框架允许开发者创建高度交互式的、动态的网页应用,而无需深入学习复杂的JavaScript或HTML。Wicket 1.4 版本是该框架的一个...