摘要: 經(jīng)過(guò)一段時(shí)間的學(xué)習(xí),對(duì)jsf的認(rèn)識(shí)也逐漸清晰。總結(jié)了一下jsf和structs的區(qū)別,首先在于分離了請(qǐng)求的處理。使用事件處理機(jī)制來(lái)代替原有的request分發(fā)。其次在頁(yè)面的展示上,采用組件的概念,而不是到處散落的html標(biāo)記。再有,jsf對(duì)于請(qǐng)求的生命周期重新進(jìn)行了劃分,對(duì)于每個(gè)階段都可以派遣事件,這使得整個(gè)請(qǐng)求的處理比較的清晰。最后,jsf對(duì)于頁(yè)面的流轉(zhuǎn)使用Navigation系統(tǒng)來(lái)處理,這一點(diǎn)感覺(jué)和structs還是比較類似的,只是換了一個(gè)概念。
閱讀全文
摘要: 用泛型時(shí)遇到的尷尬問(wèn)題,關(guān)于java.beans的相同方法名稱問(wèn)題
閱讀全文
摘要: 在eclipse中使用jetty是非常簡(jiǎn)單的,對(duì)于其他的ide配置基本上都一致。以前如果想調(diào)試web服務(wù),必須要在龐大的開(kāi)發(fā)插件下進(jìn)行,如 myeclipse,其實(shí)只是需要簡(jiǎn)單的功能,然而卻不得不接受許多不常用的功能。沒(méi)有辦法,現(xiàn)在有了jetty,如果你只想調(diào)試web服務(wù)而已,那么請(qǐng)離開(kāi)那些龐大的開(kāi)發(fā)插件。簡(jiǎn)單的事情,用簡(jiǎn)單的方式處理。
閱讀全文
摘要: 一直以來(lái)使用jetty作為我的web開(kāi)發(fā)配置服務(wù)器,開(kāi)始的時(shí)候和所有的初學(xué)者一樣使用tomcat作為開(kāi)發(fā)服務(wù)器,可用著用著,感覺(jué)tomcat越來(lái)越繁瑣以及龐大。后來(lái),用了jboss,知道jboss使用jetty作為其web應(yīng)用服務(wù)器,所以就開(kāi)始試著使用jetty。從那開(kāi)始后,jetty就成為我的開(kāi)發(fā)配置服務(wù)器了,從最初的4.0,到現(xiàn)在的6.0一直在使用著。
閱讀全文
摘要: web 開(kāi)發(fā)很多年了,從單純的jsp 到struts,再到webwork,接著就是spring 的mvc。感覺(jué)jsp 的封裝性,實(shí)在不怎么樣。于是乎想到了組件化,以前的時(shí)候用過(guò)echo,現(xiàn)在是echo2,不可否認(rèn),echo的設(shè)計(jì)結(jié)構(gòu)比較的不錯(cuò),完全的面向?qū)ο蠡_(kāi)發(fā),也沒(méi)有了那些令人討厭的jsp。不過(guò)實(shí)在受不了的就是echo的速度,echo2據(jù)說(shuō)已經(jīng)大幅改進(jìn),而且完全的實(shí)現(xiàn)了ajax。不過(guò)echo2畢竟受關(guān)注度不是很廣,還是決定放棄使用。
閱讀全文
摘要: ehcache的默認(rèn)配置文件名為ehcache.xml,也可以自己指定。配置文件比較的簡(jiǎn)單,基本上也就是常用的幾個(gè)元素。
閱讀全文
摘要: 一直以來(lái)懶得配置緩存,基本的緩存也就是orm層,基本上都交給hibernate去配置了。這段時(shí)間,感覺(jué)頁(yè)面速度太慢了,還是需要使用緩存。現(xiàn)在的緩存工具也挺多的,較不錯(cuò)的屬ehcache和oscache了。決定分別研究一下。
閱讀全文
摘要: jibx又一個(gè)不錯(cuò)的xml綁定工具,隨著這段時(shí)間的使用,感覺(jué)越來(lái)越隨心應(yīng)手了。和jaxb一樣,都是屬于xml綁定工具。不同于jaxb,jibx使用java字節(jié)碼enhance技術(shù),而jaxb更多在于源代碼生成技術(shù)。
閱讀全文
摘要: 關(guān)于java字節(jié)碼的處理,目前有很多工具,如bcel,asm。不過(guò)這些都需要直接跟虛擬機(jī)指令打交道。如果你不想了解虛擬機(jī)指令,可以采用 javassist。javassist是jboss的一個(gè)子項(xiàng)目,其主要的優(yōu)點(diǎn),在于簡(jiǎn)單,而且快速。直接使用java編碼的形式,而不需要了解虛擬機(jī)指令,就能動(dòng)態(tài)改變類的結(jié)構(gòu),或者動(dòng)態(tài)生成類。
閱讀全文
摘要: 在java中,類裝載異常雖然不是很常見(jiàn),可如果發(fā)生異常,其處理還是比較麻煩的。
下面的幾種異常是比較常見(jiàn)的:
閱讀全文
摘要: 使用maven2的另外一個(gè)好處,就是有了統(tǒng)一的入口,用于察看項(xiàng)目的進(jìn)展情況。這主要包括了項(xiàng)目的介紹,成員介紹,以及相關(guān)的項(xiàng)目的文檔,當(dāng)然也包括項(xiàng)目的所有進(jìn)展報(bào)表。
下面,通過(guò)實(shí)例來(lái)介紹如何配置maven,來(lái)產(chǎn)生項(xiàng)目站點(diǎn)。
閱讀全文
摘要: 這幾天,看了jpa(java 持久性 api)的規(guī)范,作為ejb3的重要組成部分,jpa 還是值得關(guān)注的。看完規(guī)范,感覺(jué)jpa還是比較的單一的,
其目標(biāo)就是實(shí)現(xiàn)java 持久性的通用。jpa采用純pojo的方式實(shí)現(xiàn),更多的是采用java 5注釋。jpa 的優(yōu)勢(shì)是多供應(yīng)商的支持,可以運(yùn)行在容器
閱讀全文
摘要: hibernate 的強(qiáng)大在于完全的對(duì)象化,對(duì)于對(duì)象之間的關(guān)系解決的比較好,如1對(duì)1,1對(duì)多,多對(duì)1,以及多對(duì)多。當(dāng)然也包括繼承關(guān)系。
而ibatis這方面就比較遜色了,不過(guò)對(duì)于也支持簡(jiǎn)單的關(guān)連查詢,如1對(duì)1,和1對(duì)多。對(duì)于一般的情況來(lái)說(shuō),這兩種已經(jīng)足夠了,當(dāng)然不能層疊更新是一個(gè)缺陷,看了半天文檔,也沒(méi)有找到對(duì)象之間的層疊更新,估計(jì)是不支持。
閱讀全文
摘要: 不過(guò)在spring 中已經(jīng)提供了很好的實(shí)現(xiàn),所以這又省去了很多的功夫,接下來(lái)看看ibatis是如何支持clob和blob的。
ibatis提供了TypeHandler接口,用于處理數(shù)據(jù)類型,基本的實(shí)現(xiàn)類為BaseTypeHandler
在spring 中,提供了AbstractLobTypeHandler作為基礎(chǔ)類,并且提供了相應(yīng)的模版方法,所有的工作由LobHandler處理。
BlobByteArrayTypeHandler 主要用于處理blob類型數(shù)據(jù),使用byte[]來(lái)映射相應(yīng)的blob
ClobStringTypeHandler 用于處理clob類型數(shù)據(jù),使用字符串來(lái)映射Clob
閱讀全文
摘要: 用了很久hibernate ,突然想換個(gè)別的orm 工具,當(dāng)然在orm領(lǐng)域中,hibernate是老大。看了一下ibatis,發(fā)現(xiàn)如果對(duì)于crud操作不是很多的系統(tǒng)來(lái)說(shuō),是個(gè)不錯(cuò)的選擇,尤其是適合那些對(duì)sql和性能熱衷的開(kāi)發(fā)者。綜合來(lái)說(shuō)ibatis不能算orm工具,只能算個(gè)半成品。不過(guò)比起直接用jdbc寫,那還是方便多了。主要的好處是分離了sql和代碼,如果你想追求性能,那么sql是你很好的利器,當(dāng)然ibatis的緩存也不錯(cuò)。比起hibernate,ibatis就簡(jiǎn)單多了,估計(jì)也就3天能夠基本掌握了,這大大減少了學(xué)習(xí)成本。
閱讀全文