HTML解析:Use javax.swing.text.html package, especially HTMLEditorKit.ParserCallback class.
菜單生成:struts-menu,還有自己做的JavaScript控件.
統(tǒng)計(jì)圖:jfreechart
MVC框架:Mytapestry(每次改個(gè)界面都要重啟服務(wù)器),Webwork,Struts
持久層:hibernate,ibats
XML解析:dom4j比較易用,至少代碼可以比較簡(jiǎn)潔,但是如果要在里面?zhèn)鬏敹M(jìn)制文件的話,就比較麻煩了.網(wǎng)上有兩種方案,一種是將二進(jìn)制流用BASE64編碼成字符串,或者在MINI頭里面?zhèn)鬟f,后者這方式我還不懂要怎么弄,前者那樣的話,除了用Base64以外,直接用十六進(jìn)制轉(zhuǎn)字符串會(huì)更快,不過安全嘛~
日記功能:log4j,其實(shí)Java關(guān)于日記功能的好像就有4種包,但是好像這個(gè)比較好用.另外建議直接用Logger.getLogger()生成log類.
ajax:dwr可以利用JavaScript訪問Java類,它會(huì)自己將Java方法返回的類序列化,轉(zhuǎn)換成JavaScript變量;dojo則是有很多特效
Web service:axis 的Web service不錯(cuò),不過如果排除那些規(guī)范的話,自己做一個(gè)輕量的會(huì)更實(shí)在
工作流:目前尚沒有了解哪項(xiàng)開源的,但是一直想了解
XML封裝:SOAP就是XML的一種協(xié)議,而且利用J2EE提供的api,可以很方便的操作附件,再者,至少規(guī)范的Web service就是用SOAP傳遞消息的.
想要用模板的話:Velocity,至于不明白什么時(shí)候用到這種情況的話,可以參考一下www.blogcn.com中的模板更改就知道了
全文搜索:lucene,它會(huì)把關(guān)鍵字索引存在文件中,而不是數(shù)據(jù)庫(kù),不過想想數(shù)據(jù)庫(kù)不也是把數(shù)據(jù)存在文件中的,lucene的速度比較快,而且易用.剛開始也不明白為什么lucene會(huì)那么快,后面了解到是個(gè)博士做的這個(gè)開源包,呵呵,看來人家是有很精深的算法.
hibernate的session管理:利用線程ID的幫助來管理該線程的Session,好像大家現(xiàn)在也都是這樣子的.
事務(wù)管理:spring有一項(xiàng)好處就是這個(gè)了.而且聽說它的JTA管理也很不錯(cuò)
業(yè)務(wù)層和DAO層的bean管理:spring很好用,不過就是每個(gè)Bean都要寫在配置文件中(當(dāng)然,有人喜歡,有人不喜歡),如果不想寫配置文件中的話,就自己寫工廠管理Bean吧,我相信會(huì)比spring快一點(diǎn),但是spring寫在配置中這樣有點(diǎn)好處就是,如果你想把某個(gè)接口的實(shí)現(xiàn)類換掉的話,改一下配置文件就可以了.
動(dòng)態(tài)bean管理:JMX,其實(shí)自己也可以寫程序來管理內(nèi)存中的bean或者把bean屬性放在配置文件里面的,JMX就是多加了一層規(guī)范.Jboss的JMX機(jī)制很方便,真的就叫熱插拔了.
消息機(jī)制管理:JMS,這項(xiàng)我也只是看了些例子而已,還沒在項(xiàng)目中應(yīng)用過.
任務(wù)調(diào)控:quartz,不明白什么是任務(wù)調(diào)控嗎?你想一想,比如你想在每天的某一個(gè)時(shí)間執(zhí)行一些操作,比如定時(shí)更新數(shù)據(jù)庫(kù)中的某些數(shù)據(jù)啦.當(dāng)然數(shù)據(jù)庫(kù)系統(tǒng)也有這種功能,但是如果想用程序來控制的話,就用它吧.不好的地方就是文檔太少了,上回為了搞明白它怎么用的,源代碼就翻了好久.
重量級(jí)的東西:EJB,這個(gè)嘛,嗯................................電信金融行業(yè)的可能覺得這東西很重要,不過我們嘛,就不說這東西了,沒有發(fā)言權(quán).
現(xiàn)在的框架都有一個(gè)理念,那就是可配置,任何東西都要可配置的.struts的配置啦,hibernate的配置啦,spring的配置啦,ibats的配置啦.但是有個(gè)有東西冒出來了,rails on ruby,它有個(gè)理念,就是"習(xí)慣優(yōu)于配置",你不明白嗎?想想,自己最好什么東西都不用配置,一切根據(jù)用戶的習(xí)慣定制好.當(dāng)然,這樣對(duì)于開發(fā)是非常方便的.而第二個(gè)方便的地方,就是代碼自動(dòng)生成(腦海里突然想起.net了)!
說到代碼自動(dòng)生成的話,提一個(gè)xdoclet:要用這個(gè)的話,得先了解一下ant,xdoclet是個(gè)很有用的東西.不過我比較俗,我就是用它生成一個(gè)業(yè)務(wù)層或DAO的實(shí)現(xiàn)類和接口類代碼.如果Java想要有跟Rails on ruby一樣的東西的話,一定要用到xdoclet來了
其實(shí)現(xiàn)在也有一個(gè)框架,它號(hào)稱是Java中的Rails on Ruby,那就是JdonFramework了,上回看了看,沒啥感覺,沒有Rails on Ruby給的震憾大
驗(yàn)證碼的生成:就是在輸入頁面A中嵌入一個(gè)生成驗(yàn)證碼的頁面B,B里面有Java代碼,生成隨機(jī)字符串,再把字符串存入Session中.
Oracle:一直識(shí)別不了本地服務(wù)。后面才發(fā)現(xiàn),是tnsnames.ora這個(gè)文件中,有的版本不支持SERVER_NAME,而只是支持SERVER。
有想過訪問dll文件嗎?有個(gè)東西叫JDI,步驟麻煩了點(diǎn)的東西
處理圖片:sun公司有個(gè)開源軟件jimi,是個(gè)不錯(cuò)的東西,處理圖片的開源包有很多種,我那時(shí)候?yàn)槭裁催x了jimi也忘了,好像是因?yàn)楦袷街Р恢С值脑虬?

文章來源:
http://blog.csdn.net/Wingel/archive/2006/05/26/756682.aspx