首页 [原创]Wicket 1.4 开发手记(一) helloworld与环境配置

[原创]Wicket 1.4 开发手记(一) helloworld与环境配置

举报
开通vip

[原创]Wicket 1.4 开发手记(一) helloworld与环境配置 Steel.Ma技术笔记                                                                                                          wicket 1.4开发手记(一)  1            Wicket 1.4 开发手记(一) helloworld 与环境配置   作者:Steel.Ma Mail: steel.ma@139.com steel.ma...

[原创]Wicket 1.4 开发手记(一) helloworld与环境配置
Steel.Ma技术笔记                                                                                                          wicket 1.4开发手记(一)  1            Wicket 1.4 开发手记(一) helloworld 与环境配置   作者:Steel.Ma Mail: steel.ma@139.com steel.ma@tom.com MSN: Motorola_8088@hotmail.com Blog: http://hi.csdn.net/iamsteelma http://blog.sina.com.cn/steelma Steel.Ma技术笔记                                                                                                          wicket 1.4开发手记(一)  2    一、 Without SSH  所谓的 SSH 是指当前最热门的 3大开源框架:Struts、Spring 和 Hibernat, 现在最流行的就是 SSH 的开发模式,现在大部分的做 java 开发,言必称“SSH”、 “框架”等等,好像我们这些老开发要是不会 SSH,出门都不好意思跟人打招呼 似的。但事实真的如此吗?作为 10 年以上的老开发者,本人认为 SSH 固然有它 的优势所在,但在各个方面均存在着很多的问题,目前 SSH 的流行就跟帝都、魔 都的房价一样,是一个肥皂泡,无非是大小问题,SSH 充其量只是适合小型的, 低负载项目,对于复杂的、带有巨大变数的、高负载、高容量的项目,还是必须 依靠传统的开发模式和管理方式。 这 3大框架的功能和优缺点本文不再赘述,本节主要讨论 SSH 开发模式的缺 陷。 采用 SSH 开发的主要需求点是避开笨重的 EJB,同时能够帮助开发者更快、 更方便灵活地对系统进行配置式开发,降低开发的门槛,但凡事都有 2面性,本 人认为,目前 SSH 开发模式主要存在问题: 1、整合复杂,除错困难 3 个框架涉及了 B/S 开发的大部分主要环节,而整个系统一般要涉及 web 容器、中间件、数据库、其他框架或软件(如表单、工作流、报表等等), 需要有 1堆软件产品,需要开发人员再在上面框架叠框架,产品堆产品,整 合起来实在之复杂,这都给调试、测试、部署等带来了极大的困扰,例如, 出现某个页面打开很慢的情况的话,要找问题点的话,那要花得功夫,可就 不是一点半点了。 2、配置文件过多 自 SSH 开始流行后,java 开发就出来了一个很不好的风气,那就是对 XML 配置文件的无限制使用,本人并不是说 XML 不好,但凡事总有个度,过度就 不对了,XML 配置文件严重影响了代码的可读性和连贯性,将很多应该由代 码完成的工作割裂开来,这对类似本人这种老开发来说,就好像是吃饭吃的 Steel.Ma技术笔记                                                                                                          wicket 1.4开发手记(一)  3    正爽,突然要跑到边上去开会,开了一会儿,又要去吃饭。此外,过多,过 于复杂的 xml 文件会让整个系统的可维护性和组织度下降。 本来 SSH 的配置文件之多,之复杂,已经是让人欲哭无泪了,再加上其 他的框架所用到的配置文件,那已经到了令人发指的地步了,最雷人的是, 本人曾经对 tapestry 颇有好感,因为它能真正分离界面与代码(下面会介 绍这种模式),但稍微摸了 1 把就赶紧扔掉,这玩意儿,每个页面都至少有 一个 XML 文件,为嘛捏?!为嘛捏?!这下把本人雷得个外焦里嫩的,瀑布 汗。 本人一直觉得为什么要这么多 xml 呢?每个框架一个不好吗?往 web.xml 或者一个公用的 xml 里面写不好吗?多用“规则”来默认不好吗? xml 文件不是兜里的人民币越多越好的。 3、Hibernaet 对系统优化的破坏 讲到 hibernat,我是又爱又恨,它原来的目标是代替 EJB 的实体 bean, 它的优点在于对象化,但它缺点亦在此。 如果你是做小的 demo 系统、小型应用系统或者数据负载很小的系统,用 hibernat 是一个很好的选择,但问题是,如果需要对你的 SQL 语句调优了, 那就抓瞎廖,本人在此强烈建议,如果你的系统数据比较多,比较复杂,而 且预计会跑上 3年,那就尽量别用 hibernat。 其实,本人觉得,用连接池技术,再加上良好的数据结构设计和对数据 字典的良好管理,对开发团队来说足够了。 4、对 view 方面的支持很差, 按理说,struts 是 MVC 的先行者,本人原以为,它在 view 方面应该有 很多的支持的,但除了 taglib 之外,并见到其他什么东西,本人等到 struts 2 后,依然没有发现新意,实在失望啊。 本人一直觉得,java b/s 开发最累人的,并不是 SSH 所关注的那些,而 是画面与代码没有分离,造成 view 层面的异常混乱,设想一下,一个 jsp 里面可能有 html 代码、java 代码、js 代码、CSS 代码,还有 struts 的 tablib Steel.Ma技术笔记                                                                                                          wicket 1.4开发手记(一)  4    或者其他的什么 tag 等等,这是何等狗血和逆天的场景阿! 二、 理想的开发模式设想  本人认为,理想的 java b/s 开发模式应该有如下特征: 1、简洁 不要有太多的 xml,不要有 1陀陀的配置文件、属性文件,用公用的 xml 或者规则默认最好,部署的 package 不要太复杂,尤其是,尽可能 不要破坏代码的连续性和可读性。 还有 1 句:如果可能,堆叠的框架尽量不要超过 2 个,否则,随着 项目的逐步开展,随之而来的将是噩梦。 2、自由 本人认为,J2EE 开发模式的最大优势是自由,我们可以随意选用我 们认为合适的架构,或者在现有的架构中加入新的内容,选用的内容可 以进行任意组合,这些都给开发者带来了巨大的自由度。 3、简单 我们采用框架的目的是为了减少工作量,让开发更简单,这是框架 最根本的任务,因此,简单是必须的,因此,简单的开发方式,简单的 部署方式,简单的 coding 方式,这些都是必不可少的。 4、集成 随着 ajax 等新技术,新模式的积极发展,目前已经成了 b/s 开发中 必不可少的元素了,而基于简单的原则,在基础框架中集成 ajax 技术是 一个良好的选择。 5、页面与代码分离 Steel.Ma技术笔记                                                                                                          wicket 1.4开发手记(一)  5    如前文所述,本人一直认为 b/s 开发最大的困难在于,画面/页面与 代码没有真正的分离,使得 view 层面的过于混乱和复杂,虽然有诸如 velocity 之类的模板框架能辅助减少其中的困扰,但这个问题一直没有 得到彻底的解决,本人设想的基础框架应重点解决这个最大的问题。 根据上述的论述,本人认为采用 wicket+ejb3 的开发模式是一个比较好的方 式,其中ejb3只选用 sessionbean,甚至只选用无状态的sessionbean,而 wicket 支持页面与代码的彻底分析、集成了 ajax、并且采用了规则默认的方式,避免 了过度使用 xml 配置文件。 本文将主要介绍 wicket 的开发方式。   三、 Wicket环境准备  环境方面,我们选用 tomcat 6 为服务器,以 MyEclipse 为开发环境,所需 的 J2SDK 和 Wicket 可自行下载,本文所用的是 JDK 1.5,Wicket 是 1.4.6 Tomcat 与 MyEclipse 的配置请参见本人所写的其他开发笔记,本文不再重复。     四、 HelloWorld制作  1、首先在 MyEclipse 中创建一个 project: Steel.Ma技术笔记                                                                                                          wicket 1.4开发手记(一)  6    如图所示,我们创建一个名为 wickettest 的 web project。 2、引入相关的 LIB(重点) 右击项目名->属性->java build path->libraries,打开如下画面 我们首先把 wicket 1.4.6 的核心 jar 包 wicket-1.4.6.jar 引入: 点击 Add External JARs,将释放出来的 wicket 1.4.6 下的 lib 下的 wickret-1.4.6.jar 引入。如下图所示: Steel.Ma技术笔记                                                                                                          wicket 1.4开发手记(一)  7    需要 说明 关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书 的是,本范例只需要用到 wicket 的核心 jar 即可。 接下来是非常重要的一步。 在 wicket 1.4.6 , 必 须 要 引 入 另 外 2 个 附 加 的 jar , 请 去 http://www.slf4j.org/download.html 下 载 SLF4J , 这 里 我 们 下 载 slf4j-1.5.10.zip , 下 载 解 压 , 然 后 把 slf4j-nop-1.5.10.jar 和 slf4j-api-1.5.10.jar 这 2 个 jar 引入,最终应如下: 以上完成了库的引入。 Steel.Ma技术笔记                                                                                                          wicket 1.4开发手记(一)  8    3、我们为 helloworld 建立一个 package,名为 com.steelma.wicket.helloworld 4、先创建页面模板 – helloworld.html,代码如下: Wicket Examples - helloworld wicket的内容输出在这里 注意,wicket 的内容输出在这里表示这 里会有一个 ID 为 sayhello 的标签由 wicket 代码来处理。 5、创建wicket处理程序 – 与页面模板文件同名的java文件 helloworld.java, 代码如下: package com.steelma.wicket.helloworld; import org.apache.wicket.model.IModel; import org.apache.wicket.util.string.Strings; Steel.Ma技术笔记                                                                                                          wicket 1.4开发手记(一)  9    import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; public class helloworld extends WebPage { /** * Constructor */ private static final long serialVersionUID = 1L; public helloworld() { add(new Label("sayhello", "Hello World! By Steel.Ma @2010 -- 测 试wicket")); } } 其中,最后那句代码的意思是,在模板中 wicket:id 为 sayhello 的标签出, 加入一个 label 组件,显示的 text 为“Hello World! By Steel.Ma @2010 -- 测 试 wicket”。 6、最后,创建接口 – wicket称为application (helloworldapplication.java) package com.steelma.wicket.helloworld; import org.apache.wicket.protocol.http.WebApplication; import com.steelma.wicket.helloworld.helloworld; public class helloworldapplication extends WebApplication { Steel.Ma技术笔记                                                                                                          wicket 1.4开发手记(一)  10    public Class getHomePage() { return helloworld.class; } } 以上就完成了一个 wicket 的 helloworld 的编码工作,可以看到,过程非常 简洁、而且页面与代码分离的很彻底,接下去我们将这个范例进行部署和配置。   五、 部署、配置  Wicket 的部署与配置非常简单,从根本上说,其实和申明一个 servlet 相差 无几,只需在 web.xml 中进行相应配置即可。我们打开 web.xml,将其修改为如 下: Wicket helloworldapplication org.apache.wicket.protocol.http.WicketServlet applicationClassName com.steelma.wicket.helloworld.helloworldapplication< Steel.Ma技术笔记                                                                                                          wicket 1.4开发手记(一)  11    /param-value> helloworldapplication /helloworld/* 以上就完成了部署配置。 六、 测试  用 MyEclipse 的工具发布到 tomcat 6,并启动 tomcat 后,直接访问: http://localhost:8080/wickettest/helloworld/  
本文档为【[原创]Wicket 1.4 开发手记(一) helloworld与环境配置】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_193127
暂无简介~
格式:pdf
大小:413KB
软件:PDF阅读器
页数:11
分类:互联网
上传时间:2010-02-20
浏览量:46