春风博客

春天里,百花香...

导航

<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

统计

公告

MAIL: junglesong@gmail.com
MSN: junglesong_5@hotmail.com

Locations of visitors to this page

常用链接

留言簿(11)

随笔分类(224)

随笔档案(126)

个人软件下载

我的其它博客

我的邻居们

最新随笔

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜

我的评论

共6页: 上一页 1 2 3 4 5 6 下一页 
re: 洗涤心灵之纯音乐 sitinspring 2007-10-28 08:54  
不错. 我也推荐几个给你

空灵悠扬的"大烟山"
http://www.xinnight.com/leadbbs/images/upload/2006/12/20/083054.wma

洗涤心灵的歌声 何训田--春歌
http://bbs.foyuan.net/Music/何训田/春歌.mp3

The Mass (魔界传奇)
( 地址用摆渡嗖嗖一下)
re: Time Management for System Administrator(2) sitinspring 2007-10-28 08:41  
挺有价值的.
离成功有多远?
re: 千里之行 始于足下 sitinspring 2007-10-27 19:13  
我经常在半夜醒来苦苦思索未来的路究竟该怎么走?
Sun的思想天下无敌,Sun的产品惨不忍睹.
re: 程序员四大职业发展方向之比较 sitinspring 2007-10-10 16:09  
还有,出国再回来当海龟,凭外汇差价就能过得不错.
re: jdk-6u3 来了 sitinspring 2007-10-07 11:13  
jdk5以来,速度加快好多.
re: [转载]你的四金到底有多少? sitinspring 2007-10-05 22:18  
>>目前个人社保金交得多,只能说明你对国家的贡献大,并不表示你未来会从中获得更多的利益。如果想保证退休后的生活来源,还是要靠自己。

这句话值得再顶一次.
re: jPCT-----Java做3D开发的免费类库 sitinspring 2007-10-05 17:59  
不错.
re: [转载]你的四金到底有多少? sitinspring 2007-10-05 14:22  
好文章.
re: EJB学习日记(15) sitinspring 2007-10-02 21:08  
国庆还在学习啊
re: 密码MD5信息摘要的一点建议 sitinspring 2007-10-02 07:56  
不错
确实漂亮.
re: 简单LRU算法实现缓存-update1 sitinspring 2007-09-30 10:04  
Mark.
re: 用匿名类处理分类汇总的方法 sitinspring 2007-09-28 09:40  
@朱雀

这是个例子.

匿名类相比Strategy的优势在灵活.
re: 用匿名类处理分类汇总的方法 sitinspring 2007-09-28 09:15  
接口容纳不了Student这个成员.
PreparedStatement 能有效防止Sql注入攻击,速度较快,但失于灵活.

Statement灵活性高些.
看看.
re: 很快就十一了 sitinspring 2007-09-22 07:29  
好,届时过来看.
re: Web开发中使用反射为Bean赋值 sitinspring 2007-09-22 07:28  
文章不错,格式可以稍微调整一下.
作个记号,有空细看.
re: 随机数字验证码的生成 sitinspring 2007-09-21 14:06  
作个记号,用到时再来细看.
re: JavaScript是Widgets应用的瓶颈吗? sitinspring 2007-09-20 10:48  
标记一下.
re: 写给我那还没有飘来的技能云 sitinspring 2007-09-19 08:21  
和强人比较会知道自己的不足,去看看.
re: To技能云:还请耐住寂寞 sitinspring 2007-09-19 08:19  
我一直觉得论坛除了开阔眼界外就只有娱乐用途.不必把某些论坛抬得太高.
@Tiger F

以前我也想过用Altlr,但规则好像比较复杂,学习起来也蛮花时间的,想想还不如自己写一个.
作个记号.
re: Spring集成XFire开发WebService sitinspring 2007-09-17 18:29  
代码乱了一些,怎么不试试"插入代码"按钮呢?
re: 程序员四大职业发展方向之比较 sitinspring 2007-09-17 17:54  
@mingj

确实如此,人如果没有一个长期的目标便会陷入盲目中,了解自己很重要.
@惊鸿逝水

谢谢指教.
re: EJB学习日记(7) sitinspring 2007-09-17 11:45  
@惊鸿逝水

是Hibernate,spring先学EJB的好不好?
re: EJB学习日记(7) sitinspring 2007-09-17 10:08  
Hibernate和Spring从EJB中汲取了多少营养啊,哈哈.
@千里冰封

以前做项目习惯用dom4j了,再之前用jdom.1.5以前的dom或sax没他们俩这么方便,1.5以后就不清楚了.你有什么更好的推荐吗?



re: 程序员四大职业发展方向之比较 sitinspring 2007-09-17 09:52  
@坏男孩

确实,要成就一番事业,非创业不可.
re: 程序员四大职业发展方向之比较 sitinspring 2007-09-17 09:52  
@zht

除了外汇比价比较让人欣慰外,还是打工仔一个.而且外企强制员工成为螺丝钉比较不爽.
re: Flex的工作炙手可热 sitinspring 2007-09-16 18:06  
当年RoR也是雷声大雨点小.
re: 普元常用校验脚本2:check.js sitinspring 2007-09-16 18:03  
不错,可以类化一下.
re: Eclipse中最常用的10个快捷键 sitinspring 2007-09-16 11:43  
Ctrl + D : 删除本行
Ctrl + SHIFT + F : 整形
不一味盯着钱就具备做玩家的基本条件, 值得考虑.
re: 软件开发#前途 sitinspring 2007-09-15 16:36  
有些城市的软件业,外包就是主旋律,无论对日还是对欧美,实际的技术含量并不高, 这样,钟情于技术意义就不大了. 一般来说,要想挣钱多先学好语言,多拍拍领导马屁是"正"道.
很不幸,某些城市中软件外包是永远的主题,架构师的职位很少,即使有也是幌子,实际上还是SSE或者PM.
re: 软件开发#前途 sitinspring 2007-09-15 13:56  
>>有些人可能对软件开发有很大的兴趣,如果想转的话是很舍不得,但是要想明白的一点就是兴趣不能当饭吃,每个人工作的目的就是为了更好的生活。

这个观点很是同意.
myeclipse 大了点,有没小点的?
re: JAVA截屏程序(第四版) sitinspring 2007-09-09 07:31  
>>dist文件夹里面的JAR文件是可以双击执行的

双击执行Jar你是怎么实现的?
re: Web框架找工难易比较 sitinspring 2007-09-09 07:17  
—— 比较JSF、Spring MVC、Stripes、Struts 2、Tapestry和Wicket

【译者按】这是Matt Raible在今年6月24-27号召开的JA-SIG夏季会议上所作的主题演讲,Matt从众多方面对Java Web层框架做了一个全面、深入的比较。笔者认为这是一份及时的文档,它对开发者如何判定一个Web层框架的好坏、如何选择适合自己项目的框架有极大的指导作用。本文是对Matt Raible演讲稿的整理归纳。
【作者介绍】Matt Raible,开源框架AppFuse的发起者、主要开发者;《Professional JSP 2.0》、《Spring Live》等书的作者;众多会议的演讲者,MySQL User Conference, ApacheCon, ApacheCon EU等;现任Raible Designs的CEO。

首先,Matt以自己的实践经验,指出了Java Web层框架——JSF、Spring MVC、Stripes、Struts 2、Tapestry和Wicket他们各自的优、缺点:
JSF
优点:
Java EE标准,这意味着有很大的市场需求和更多的工作机会
上手快速并且相对容易
有大量可用的组件库
缺点:
大量的JSP标签
对REST和安全支持不好
没有一个统一的实现。既有SUN的实现,又有Apache的实现——MyFaces。

Spring MVC
优点:
对覆盖绑定(overriding binding)、验证(validation)等提供生命周期管理
与许多表示层技术/框架无缝集成:JSP/JSTL、Tiles、Velocity、FreeMarker、Excel、XSL、PDF等
便于测试——归功于IoC
缺点:
大量的XML配置文件
太过灵活——没有公共的父控制器
没有内置的Ajax支持

Stripes
优点:
不需要书写XML配置文件
良好的学习文档
社区成员很热心
缺点:
社区比较小
不如其他的项目活跃
ActionBean里面的URL是硬编码的

Struts 2
优点:
架构简单——易于扩展
标记库很容易利用FreeMarker或者Velocity来定制
基于控制器或者基于页面的导航
缺点:
文档组织得很差
对新特征过分关注
通过Google搜索到的大多是Struts 1.x的文档

Tapestry
优点:
一旦学会它,将极大地提高生产率
HTML模板——对页面设计师非常有利
每出一个新版本,都会有大量的创新
缺点:
文档过于概念性,不够实用
学习曲线陡峭
发行周期长——每年都有较大的升级

Wicket
优点:
对Java开发者有利(不是Web开发者)
页面和显示绑定紧密
社区活跃——有来自创建者的支持
缺点:
HTML模板和Java代码紧挨着
需要对OO有较好的理解
Wicket逻辑——什么都用Java搞定

接着,Matt通过采访这些框架的作者,与他们讨论各种开源的Java Web框架,并且突出各个框架的长处、听取框架作者对其他框架的看法,希望借此了解这些框架的未来发展方向。

下列是一些被采访者:
JSF, Jacob Hookom
RIFE, Geert Bevin
Seam, Gavin King
Spring MVC, Rob Harrop
Spring Web Flow, Rob Harrop and Keith Donald
Stripes, Tim Fennell
Struts 1, Don Brown
Tapestry, Howard Lewis Ship
Trails, Chris Nelson
Struts 2, Patrick Lightbody
Wicket, Eelco Hillenius

Matt对采访做了如下总结:
JSF:
如果你想让web应用具有类似桌面程序的功能性,那么JSF的标准规范和大量第三方组件库的支持值得你 信赖。
Spring MVC:
综合了许多不同的技术,这使得它可以被广泛地应用到不同类型的项目中去;它可以被当作web应用开发的一个基础平台。
Stripes:
可以被应用到存在大量复杂数据交互的程序中;有强大的类型转换、绑定和验证功能;可以使管理大的复杂表单以及直接映射它们到域对象变得简单……
Tapestry:
在中到大型项目中,表现突出(当然,你也可以只把它应用到单个页面上),在这些项目中,你可以通过简单地创建新的组件起到杠杆作用。
Struts 2:
通常更适合于那些希望可以真正开始做事并且愿意花费大量时间来学习他们使用的开源工具的小项目组。Struts 2的目标不是那些更喜欢拖放式开发的“扶手椅程序员”。
Wicket:
非常适合于这样的内/外部网应用:UI很复杂并且你希望可以充分利用你的开发者资源。

上面的总结,基本是突出了各个框架的长处。然而,哪些又是他们不好的地方呢?
Matt提出了评价一个框架好坏与否的标准:
Ajax支持
是不是内置了?是否便于使用?
书签能力
用户能否将某个页面收藏起来并且可以方便地返回到该页面?
验证
使用是否简单?是否支持客户端(JavaScript)验证?
可测试性
脱离容器测试控制器,是否足够简单?
提交和重定向
框架如何处理重复提交问题?
国际化
如何支持国际化?控制器利用国际化信息,是否容易?
页面修饰
框架支持哪种类型的页面修饰/组成机制?
社区和技术支持
提出问题,能否被快速地、恭敬地回答?
开发工具
是否有支持这个框架的好的工具,尤其是IDE?
市场需求
学习了这个框架,它能否帮你找到份工作?
岗位数量
在dice.com和indeed.com上,对这个框架技能的需求如何?

笔者认为这个评价标准,值得大家借鉴。

然后,Matt按照这些评价标准,对各个框架做了以下阐述:
Ajax支持
JSF:没有内置的Ajax支持,需要使用ICEfaces和Ajax4JSF
Stripes:没有对应的类库,支持流输出
Struts 2:内置Dojo,有用于GWT和JSON的插件
Spring MVC:没有对应的类库,需要使用DWR和Spring MVC扩展
Tapestry:Tapestry 4.1中,有内置的Dojo
Wicket:有Dojo和Script.aculo.us支持

书签能力
JSF:可以任意提交——URL甚至不被考虑
Stripes:使用约定,但是你可以不加理会
Struts 2:有命名空间的概念,这使得收藏某个页面并返回变得容易
Spring MVC:允许完全的URL控制
Tapestry:依然存在一些丑陋的URL
Wicket:允许装配(mount)页面/URL

验证
JSF:默认的国际化信息丑陋,但是配置简单
Stripes和Wicket:用Java类进行验证——不支持客户端验证
Struts 2:使用OGNL完成强大的表达式验证功能;只有在Action上指定了规则,才支持客户端验证。
Spring MVC:允许你使用公共验证器——这是一种成熟的解决方案
Tapestry:有健壮的验证功能——不需自定义就有漂亮的国际化信息

可测试性
Spring MVC和Struts 2:允许利用mocks(例如EasyMock、jMock和Spring Mocks)简单地进行测试
Tapestry:测试困难,因为页面类被抽象、具体类被简化
JSF:页面类可以方便地被测试,实际上很像Struts 2 中的actions
Wicket:有WicketTester——一个强大的解决方案
Stripes:有Servlet API Mocks和MockRoundtrip

提交和重定向
解决重复提交问题的最简单方法是:在提交后重定向
Spring MVC:允许你将参数加到重定向URL上
Stripes、Tapestry和Wicket:有“flash式”的支持
Struts 2:需要一个自定义的解决方案
JSF:需要一个自定义的解决方案,国际化信息很难加入到页面bean中

国际化
JSTL的<fmt:message>标签使国际化变得简单;如何将国际化信息放到控制器类中,还没有一个统一的标准。
Stripes、Spring MVC和JSF:每个地区使用一个资源绑定文件
Struts 2、Tapestry和Wicket:提倡把每个页面/action用到的资源文件分开
JSF:需要在每个页面上定义资源绑定信息
Tapestry:<span key="key.name">标签比较可怕

页面修饰
Tiles能够用于Struts 2、Spring MVC和JSF中;需要对每个页面进行配置。
SiteMesh能够用于所有的这些框架中(不推荐在JSF、Tapestry或者Wicket中使用);在设置完成后, 只需要很少的维护。

开发工具
Spring MVC:Spring IDE,但是只做XML校验,不是一个UI/web工具
Struts 2:Eclipse
Tapestry:Spindle,对编码者非常有利
JSF:众多IDE支持,并且做得越来越好
Stripes和Wicket:没有任何官方工具
NetBeans目前支持Struts *、JSF(+Facelets)、Tapestry和Wicket,尚不支持Stripes和Spring MVC


市场需求
Struts 1:需求依然很大并且被广泛使用
Spring MVC:越来越受关注,但大部分是因为Spring框架的一些其他特征
JSF:很快地变得流行起来
Struts 2:正在获得地盘,但是相关的工作机会很少
Tapestry:在过去的数年里,受欢迎程度不断增加
Wicket和Stripes:还是未知数

通过以上的比较,我想大家对在自己的项目中应该选择哪种Web层框架,应该有了更清醒的认识。

最后,Matt列出了一些相关资源,也供读者参考。
Struts - http://struts.apache.org
StrutsTestCase: http://strutstestcase.sf.net
Spring MVC - http://www.springframework.org
Spring IDE: http://www.springide.org
Gaijin Studio: http://gaijin-studio.sf.net
Struts 2 - http://opensymphony.org/webwork
Eclipse Plugin: http://sf.net/projects/eclipsework
IDEA Plugin: http://wiki.opensymphony.com/display/WW/IDEA+Plugin
Tapestry - http://tapestry.apache.org
http://spindle.sourceforge.net
JSF - http://java.sun.com/j2ee/javaserverfaces and http://myfaces.apache.org
Java Studio Creator: http://sun.com/software/products/jscreator
MyEclipse: http://myeclipseide.com
IDEA: http://www.jetbrains.com/idea
SiteMesh: http://opensymphony.com/sitemesh
Testing Frameworks
JUnit: http://junit.org
EasyMock: http://easymock.org
jMock: http://jmock.org
jWebUnit: http://jwebunit.sourceforge.net
Canoo WebTest: http://webtest.canoo.com
Tapestry Test Assist: http://howardlewisship.com/blog/2004/05/tapestry-test-assist.html
AppFuse - http://appfuse.org

演讲的最后,Matt以一句“If it works, use it!”作为结尾,可谓精辟!

通过此文,相信大家可以拨开当前Java Web层框架选用上的“迷雾”,见得“月明”了。
原演讲稿请参见:http://raibledesigns.com/rd/entry/ja_sig_comparing_java_web





re: JAVA代理机制初探 sitinspring 2007-09-09 07:07  
真是不错,这个方式用对地方了能有很大作为.每天看看Blogjava的首页更新都能有所收获,有时还有意外惊喜.
把限制输入文字部分和字符位数抽象出来,让它们可以在外头设定,MyJTextField也许能更通用一些
比如:
MyJTextField textField1 = new MyJTextField(MyJTextField.Letter,8);
....

MyJTextField textField2 = new MyJTextField(MyJTextField.Number,10);
....
MyJTextField textField2 = new MyJTextField(MyJTextField.Letter+MyJTextField.Number,12);

共6页: 上一页 1 2 3 4 5 6 下一页 
sitinspring(http://www.blogjava.net)原创,转载请注明出处.