今天把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ì)象。可通過多個(gè)非可視 JavaBean 構(gòu)建 EJB。它們有一個(gè)部署描述符,其目的與 JavaBean 屬性相同:它是以后可由工具讀取的 bean 的描述。EJB 還獨(dú)立于平臺(tái),一旦編寫好,還可以在任何支持 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清晰地分開。
采用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í)和未來的擴(kuò)展性。
EJB容器(如JBoss)已經(jīng)提供了對(duì)象池和緩存機(jī)制,所以,沒有事務(wù)機(jī)制的無狀態(tài)Session Bean的性能肯定要強(qiáng)于普通JavaBeans。EJB容器不但在單機(jī)中提供了對(duì)象池和緩存,而且可以跨服務(wù)器實(shí)現(xiàn)動(dòng)態(tài)負(fù)載平衡,這些都無需開發(fā)者自己開發(fā)任何軟件代碼。
EJB提供的事務(wù)機(jī)制非常周全,但事務(wù)機(jī)制帶來的缺點(diǎn)是性能的降低,在一般企業(yè)應(yīng)用或數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用中,EJB不會(huì)對(duì)你構(gòu)成很重的包袱。
通過一天的學(xué)習(xí),雖然沒有寫出Structs和EJB的實(shí)現(xiàn)代碼,但是基本上對(duì)這兩個(gè)東西有了初步的了解