摘要: 今天看了一天原來(lái)他們寫(xiě)的代碼,越看越郁悶,主要是沒(méi)有設(shè)計(jì)文檔,而且里面很多被舍棄的功能,但是代碼沒(méi)有去掉,而且也沒(méi)有寫(xiě)注釋,不知道干什么用的,也許是我太菜了吧?簡(jiǎn)單分析一下這個(gè)模塊的代碼吧模塊名稱叫“信息簡(jiǎn)報(bào) ”,功能包括五個(gè)部分:信息接受,信息發(fā)送,分類管理,組管理,權(quán)限配置。其中用戶部分會(huì)用到公共模塊,日志部分就是直接使用System.out.pring通過(guò)JBOSS輸出...
閱讀全文
摘要: 今天老大給了我一個(gè)任務(wù),要我一個(gè)星期之內(nèi)看懂一個(gè)模塊的代碼。打開(kāi)第一個(gè)類就遇到了JDBC,數(shù)據(jù)庫(kù)還是Oracle,2個(gè)都不懂,只好先學(xué)習(xí)一下JDBC這個(gè)東西JDBCTM 是一種用于執(zhí)行 SQL 語(yǔ)句的 JavaTM API(有意思的是,JDBC 本身是個(gè)商標(biāo)名而不是一個(gè)縮寫(xiě)字;然而,JDBC常被認(rèn)為是代表 “Java ...
閱讀全文
從今天開(kāi)始,我準(zhǔn)備把GOF的23種設(shè)計(jì)模式重新學(xué)習(xí)一下,并且用Java語(yǔ)言全部描述一次。
Abstract Factory(抽象工廠) 對(duì)象創(chuàng)建型模式
提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對(duì)象的接口,而無(wú)需指定它們具體的類。
今天把Structs和EJB稍微了解了一下。
Structs是apache 組織jakarta 項(xiàng)目的一個(gè)子項(xiàng)目,用以改善 web 系統(tǒng)的結(jié)構(gòu),是一個(gè)基于J2EE的Web形式MVC模式實(shí)現(xiàn)。Structs是由一組類、Servlet和Taglib組成。Structs有其自己的控制器(Controller),基本組件是ActionServlet中定義的Servlet,由ActionMapping定義的,ActionMapping類表示的是Action對(duì)象的名字和位置。當(dāng)一個(gè)請(qǐng)求進(jìn)入控制器時(shí),它將請(qǐng)求的路徑映射到Action的位置,并且將請(qǐng)求傳送給Action。Structs另外一個(gè)重要部分是標(biāo)簽(TagLib),主要由頁(yè)面制作人員使用。
EJB(Enterprise JavaBean ) 是設(shè)計(jì)成運(yùn)行在服務(wù)器上,并由客戶機(jī)調(diào)用的非可視遠(yuǎn)程對(duì)象??赏ㄟ^(guò)多個(gè)非可視 JavaBean 構(gòu)建 EJB。它們有一個(gè)部署描述符,其目的與 JavaBean 屬性相同:它是以后可由工具讀取的 bean 的描述。EJB 還獨(dú)立于平臺(tái),一旦編寫(xiě)好,還可以在任何支持 Java 的平臺(tái)(包括客戶機(jī)和服務(wù)器)上使用。
習(xí)歷程/j2ee.png)
如果不使用EJB,在EJB服務(wù)層實(shí)現(xiàn)的業(yè)務(wù)核心將由普通JavaBeans實(shí)現(xiàn),不能很好的保證負(fù)責(zé)MVC的JavaBeans和負(fù)責(zé)業(yè)務(wù)核心的JavaBeans清晰地分開(kāi)。
采用EJB,Web完全只是一個(gè)MVC模式的實(shí)現(xiàn),關(guān)鍵業(yè)務(wù)核心是在EJB的服務(wù)層實(shí)現(xiàn),這樣做的優(yōu)點(diǎn)是,Web只負(fù)責(zé)界面相關(guān)部分,因?yàn)椋绻且粋€(gè)智能客戶端,如Swing或J2ME,在不需要修改任何業(yè)務(wù)核心的情況下能夠方便地更換。同樣,提供Web Services功能,也只是在 Web層修改,不會(huì)涉及EJB方面的修改,同樣保證了系統(tǒng)的穩(wěn)定性,保證了系統(tǒng)升級(jí)和未來(lái)的擴(kuò)展性。
EJB容器(如JBoss)已經(jīng)提供了對(duì)象池和緩存機(jī)制,所以,沒(méi)有事務(wù)機(jī)制的無(wú)狀態(tài)Session Bean的性能肯定要強(qiáng)于普通JavaBeans。EJB容器不但在單機(jī)中提供了對(duì)象池和緩存,而且可以跨服務(wù)器實(shí)現(xiàn)動(dòng)態(tài)負(fù)載平衡,這些都無(wú)需開(kāi)發(fā)者自己開(kāi)發(fā)任何軟件代碼。
EJB提供的事務(wù)機(jī)制非常周全,但事務(wù)機(jī)制帶來(lái)的缺點(diǎn)是性能的降低,在一般企業(yè)應(yīng)用或數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用中,EJB不會(huì)對(duì)你構(gòu)成很重的包袱。
通過(guò)一天的學(xué)習(xí),雖然沒(méi)有寫(xiě)出Structs和EJB的實(shí)現(xiàn)代碼,但是基本上對(duì)這兩個(gè)東西有了初步的了解
為了第一天的上班,提前一個(gè)小時(shí)起床,準(zhǔn)備好了,順便吃了一個(gè)早餐(1年沒(méi)有吃過(guò)早餐了,感覺(jué)不錯(cuò))。左等右等終于等到XX路中巴,一群人擁過(guò)去,只上了2個(gè)人,剩下的都沒(méi)有上起,只能等下一輛,暈死,沒(méi)辦法打的吧

。
好不容易提前一分鐘趕到公司,~_~開(kāi)發(fā)人員才來(lái)2個(gè)人(竊笑,我就喜歡這樣,原來(lái)我老遲到)。辦公室的人叫我等,我就等,誰(shuí)叫我是新來(lái)的呢。不知道什么時(shí)候有個(gè)人搬著一臺(tái)不知道是什么年代的古董顯示器進(jìn)了開(kāi)發(fā)室,

不會(huì)就是我的電腦吧,雖然我不會(huì)JAVA,但是我搞開(kāi)發(fā)也有2年了,蒼天啊

。
大概10點(diǎn)左右,被叫進(jìn)了經(jīng)理室,遞給我一份合同,說(shuō)要簽2年的賣身契。第一反應(yīng)就是這么久啊,我在原來(lái)的公司是一年一年的簽。經(jīng)理稍微解釋了一下,想想也是,無(wú)所謂了,到時(shí)候想跑照樣跑。翻翻合同,一條看起來(lái)不起眼的條款讓我蒙了,星期六居然要上班,我差點(diǎn)就拒絕簽了,經(jīng)理在一邊解釋說(shuō),那個(gè)不是上班,只是技術(shù)交流,有事情可以請(qǐng)假,

欲哭無(wú)淚啊。
出了經(jīng)理室,就感覺(jué)有被賣身的感覺(jué),總不是滋味。辦完相關(guān)手續(xù),把我?guī)У揭浑娔X旁邊,

15的顯示器,我差點(diǎn)就叫起來(lái)了,那人忙解釋一下說(shuō),這個(gè)只是暫時(shí)的,新顯示器下午就到,汗~~~~,瞧瞧配置先,815EP的板子,C1.1G的CPU,512M的內(nèi)存,暈死,難道開(kāi)發(fā)Java這么低的配置也成

?
下午配置了一下開(kāi)發(fā)環(huán)境,看到同事都在用一個(gè)WT P的插件(一個(gè)創(chuàng)建、部署和調(diào)試 Geronimo 應(yīng)用程序的很基本的開(kāi)發(fā)環(huán)境),試試感覺(jué)還不錯(cuò),但是總是出現(xiàn)項(xiàng)目重新部署不上去的問(wèn)題?問(wèn)一同事也解決不了,看來(lái)還得用Lomboz了。剩下的時(shí)間看了一下JavaBean和Session編程
JavaBean其實(shí)就是一些類,把業(yè)務(wù)邏輯從JSP中分離出來(lái)。在JSP中使用一個(gè)標(biāo)簽引用JavaBean,先通過(guò)<%@ page import="mypack.BookDB"%>導(dǎo)入JavaBean類,然后使用標(biāo)簽引用(<jsp:useBean id="bookDB" scope="application" class="mypack.BookDB" />),這個(gè)東西就相當(dāng)于BookDB bookDB = new BookDB,實(shí)例化一個(gè)類而已,在JSP可以直接使用這個(gè)類了(bookDB.Method();),后面的參數(shù)就更簡(jiǎn)單了,scope是范圍,包括:page, request, session, application,默認(rèn)屬性值是page。
Session相對(duì)來(lái)說(shuō)要熟悉一些,是用來(lái)跟蹤用戶狀態(tài)的一個(gè)機(jī)制。在Servlet API中定義了javax.servlet.http.HttpSession接口。當(dāng)一個(gè)Session開(kāi)始時(shí),Servlet容器將創(chuàng)建一個(gè)HttpSession對(duì)象。默認(rèn)情況下,JSP網(wǎng)頁(yè)都是支持Session的,也可以通過(guò)顯示聲明支持Session:(<%@ page session="true"%>),最大的問(wèn)題就是當(dāng)客戶端禁止了Cookie就麻煩一些。需要重寫(xiě)客戶請(qǐng)求的URL,把Session ID添加到URL信息中。HttpServletResponse接口提供了重寫(xiě)URL的方法<a href="<%=response.encodeURL("next.jsp")%>">。Session的持久化我原來(lái)在.Net中沒(méi)有發(fā)現(xiàn)有這個(gè)功能(可能是我菜吧^_^)。需要配置FileStore、JDBCStore,現(xiàn)在暫時(shí)還用不上,以后在研究吧。