版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> SSH的理解及其應(yīng)用實(shí)踐</p><p> 1.SSH是什么3</p><p> 2 Spring 介紹理解:3</p><p><b> 2.1簡(jiǎn)單介紹3</b></p><p><b> 2.2各種特性3</b></p><p>
2、;<b> 2.2.1輕量3</b></p><p> 2.2.2控制反轉(zhuǎn)3</p><p> 2.2.3面向切面4</p><p> 2 .2.4容器4</p><p><b> 2.2.5框架4</b></p><p><b> 2.3總結(jié)
3、4</b></p><p> 3.Hibernate介紹理解:4</p><p><b> 3.1簡(jiǎn)單介紹4</b></p><p><b> 3.2核心接口5</b></p><p> ·3.2.1 Session接口5</p><p&g
4、t; 3.2.2 ·SessionFactory接口5</p><p> 3.2.3·Configuration接口5</p><p> 3.2.4·Transaction接口5</p><p> 3.2.5 Query和Criteria接口5</p><p> 4. Struts6</
5、p><p> 4.1什么是Struts框架6</p><p> 4.2 Struts 概覽6</p><p> 4.2.1Client browser(客戶(hù)瀏覽器)6</p><p> 4.4 Struts中的Controller(控制器) 命令設(shè)計(jì)模式的實(shí)現(xiàn)7</p><p> 4.5
6、在Struts框架中控制器組件的三個(gè)構(gòu)成部分7</p><p> 4.7 Struts中的Model(模型)8</p><p> 5.SSH整合步驟8</p><p> 5.1安裝所需軟件環(huán)境:8</p><p> 5.1.1、首先安裝JDK,配置Java環(huán)境變量8</p><p> 5.1.2安裝
7、MyEelipse8</p><p> 5.1.3 數(shù)據(jù)庫(kù)9</p><p><b> 5.1.4、9</b></p><p> 5.2環(huán)境配置好了就可以做SSH整合的項(xiàng)目9</p><p> 6.搭建框架并簡(jiǎn)單應(yīng)用11</p><p> 6.1準(zhǔn)備工作11</p>
8、;<p> 6.2(建立項(xiàng)目,包結(jié)構(gòu),導(dǎo)入所需jar文件)12</p><p> 6.3撰寫(xiě)資源文件15</p><p> 6.4在com.ssh.util.comm 包下添加下列文件19</p><p> 6.5添加hibernate DAO 模板20</p><p> 6.6以上的工作還不夠,我們還需要進(jìn)行
9、WEB方面的配置20</p><p><b> 7.測(cè)試:23</b></p><p> 7.1.com.ssh.model 包下建立 User.java23</p><p> 7.2 com.ssh.service 包下建立 UserService.java24</p><p> 7.3com.ssh
10、.test 下建立 Test.java25</p><p><b> 7.4結(jié)果26</b></p><p><b> 8.結(jié)束語(yǔ)26</b></p><p><b> 1.SSH是什么</b></p><p> 新的MVC軟件開(kāi)發(fā)模式, SSH(Struts,
11、Spring,Hibernate) Struts進(jìn)行流程控制,Spring進(jìn)行業(yè)務(wù)流轉(zhuǎn),Hibernate進(jìn)行數(shù)據(jù)庫(kù)操作的封裝,這種新的開(kāi)發(fā)模式讓我們的開(kāi)發(fā)更加方便、快捷、思路清晰!</p><p> 2 Spring 介紹理解: </p><p><b> 2.1簡(jiǎn)單介紹</b></p><p> Spring是一個(gè)開(kāi)源框架,
12、它由Rod Johnson創(chuàng)建。它是為了解決企業(yè)應(yīng)用開(kāi)發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來(lái)完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開(kāi)發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。 簡(jiǎn)單來(lái)說(shuō),Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。 </p><p><b>
13、2.2各種特性</b></p><p><b> 2.2.1輕量</b></p><p> 從大小與開(kāi)銷(xiāo)兩方面而言Spring都是輕量的。完整的Spring框架可以在一個(gè)大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開(kāi)銷(xiāo)也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應(yīng)用中的對(duì)象不依賴(lài)于Spring的特定類(lèi)。
14、</p><p><b> 2.2.2控制反轉(zhuǎn)</b></p><p> Spring通過(guò)一種稱(chēng)作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了IoC,一個(gè)對(duì)象依賴(lài)的其它對(duì)象會(huì)通過(guò)被動(dòng)的方式傳遞進(jìn)來(lái),而不是這個(gè)對(duì)象自己創(chuàng)建或者查找依賴(lài)對(duì)象。你可以認(rèn)為IoC與JNDI相反——不是對(duì)象從容器中查找依賴(lài),而是容器在對(duì)象初始化時(shí)不等對(duì)象請(qǐng)求就主動(dòng)將依賴(lài)傳遞給它。 &l
15、t;/p><p><b> 2.2.3面向切面</b></p><p> Spring提供了面向切面編程的豐富支持,允許通過(guò)分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級(jí)服務(wù)(例如審計(jì)(auditing)和事務(wù)(transaction)管理)進(jìn)行內(nèi)聚性的開(kāi)發(fā)。應(yīng)用對(duì)象只實(shí)現(xiàn)它們應(yīng)該做的——完成業(yè)務(wù)邏輯——僅此而已。它們并不負(fù)責(zé)(甚至是意識(shí))其它的系統(tǒng)級(jí)關(guān)注點(diǎn),例如日志或事務(wù)支持。
16、</p><p><b> 2 .2.4容器</b></p><p> Spring包含并管理應(yīng)用對(duì)象的配置和生命周期,在這個(gè)意義上它是一種容器,你可以配置你的每個(gè)bean如何被創(chuàng)建——基于一個(gè)可配置原型(prototype),你的bean可以創(chuàng)建一個(gè)單獨(dú)的實(shí)例或者每次需要時(shí)都生成一個(gè)新的實(shí)例——以及它們是如何相互關(guān)聯(lián)的。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量
17、級(jí)的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用。 </p><p><b> 2.2.5框架</b></p><p> Spring可以將簡(jiǎn)單的組件配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對(duì)象被聲明式地組合,典型地是在一個(gè)XML文件里。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開(kāi)發(fā)留給了你。 </p&
18、gt;<p><b> 2.3總結(jié)</b></p><p> 所有Spring的這些特征使你能夠編寫(xiě)更干凈、更可管理、并且更易于測(cè)試的代碼。它們也為Spring中的各種模塊提供了基礎(chǔ)支持。 </p><p> 3.Hibernate介紹理解: </p><p><b> 3.1簡(jiǎn)單介紹</b>&
19、lt;/p><p> Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。 Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶(hù)端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。
20、 </p><p><b> 3.2核心接口</b></p><p> Hibernate的核心接口一共有5個(gè),分別為:Session、SessionFactory、Transaction、Query和Configuration。這5個(gè)核心接口在任何開(kāi)發(fā)中都會(huì)用到。通過(guò)這些接口,不僅可以對(duì)持久化對(duì)象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。下面對(duì)這五個(gè)核心接口分別加以介紹
21、。 </p><p> ·3.2.1 Session接口</p><p> Session接口負(fù)責(zé)執(zhí)行被持久化對(duì)象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫(kù)的交流,包含了很多常見(jiàn)的SQL語(yǔ)句。)。但需要注意的是Session對(duì)象是非線程安全的。同時(shí),Hibernate的session不同于JSP應(yīng)用中的HttpSession。這里當(dāng)使用session這個(gè)術(shù)語(yǔ)時(shí),其實(shí)指的
22、是Hibernate中的session,而以后會(huì)將HttpSesion對(duì)象稱(chēng)為用戶(hù)session。 </p><p> 3.2.2 ·SessionFactory接口</p><p> SessionFactory接口負(fù)責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,并負(fù)責(zé)創(chuàng)建Session對(duì)象。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級(jí)
23、的,因?yàn)橐话闱闆r下,一個(gè)項(xiàng)目通常只需要一個(gè)SessionFactory就夠,當(dāng)需要操作多個(gè)數(shù)據(jù)庫(kù)時(shí),可以為每個(gè)數(shù)據(jù)庫(kù)指定一個(gè)SessionFactory。 </p><p> 3.2.3·Configuration接口</p><p> Configuration接口負(fù)責(zé)配置并啟動(dòng)Hibernate,創(chuàng)建SessionFactory對(duì)象。在Hibernate的啟動(dòng)的過(guò)程中
24、,Configuration類(lèi)的實(shí)例首先定位映射文檔位置、讀取配置,然后創(chuàng)建SessionFactory對(duì)象。 </p><p> 3.2.4·Transaction接口</p><p> Transaction接口負(fù)責(zé)事務(wù)相關(guān)的操作。它是可選的,開(kāi)發(fā)人員也可以設(shè)計(jì)編寫(xiě)自己的底層事務(wù)處理代碼。 </p><p> 3.2.5 Query和Cr
25、iteria接口</p><p> Query和Criteria接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫(kù)查詢(xún)。它可以使用HQL語(yǔ)言或SQL語(yǔ)句兩種表達(dá)方式。</p><p><b> 4. Struts</b></p><p> 4.1什么是Struts框架 </p><p> Struts 是一組相互協(xié)作的類(lèi)、serv
26、let 和 JSP 標(biāo)記組成的一個(gè)可重用的 MVC 2 設(shè)計(jì)。 這個(gè)定義表示 Struts 是一個(gè)框架,而不是一個(gè)庫(kù),但 Struts 也包含了豐富的標(biāo)記庫(kù)和獨(dú)立于該框架工作的實(shí)用程序類(lèi)。</p><p> 4.2 Struts 概覽</p><p> 4.2.1Client browser(客戶(hù)瀏覽器) </p><p>
27、 來(lái)自客戶(hù)瀏覽器的每個(gè) HTTP 請(qǐng)求創(chuàng)建一個(gè)事件。Web 容器將用一個(gè) HTTP 響應(yīng)作出響應(yīng)。 4.2.2 Controller(控制器) </p><p> 控制器接收來(lái)自瀏覽器的請(qǐng)求,并決定將這個(gè)請(qǐng)求發(fā)往何處。就 Struts 而言,控制器是以 servlet 實(shí)現(xiàn)的一個(gè)命令設(shè)計(jì)模式。 struts-config.xml 文件配置控制器命令。 4
28、.3.3 業(yè)務(wù)邏輯 </p><p> 業(yè)務(wù)邏輯更新模型的狀態(tài),并幫助控制應(yīng)用程序的流程。 就 Struts 而言,這是通過(guò)作為實(shí)際業(yè)務(wù)邏輯“瘦”包裝的 Action 類(lèi)完成的。 4.3.4 Model(模型)的狀態(tài) </p><p> 模型表示應(yīng)用程序的狀態(tài)。業(yè)務(wù)對(duì)象更新應(yīng)用程序的狀態(tài)。Action
29、Form bean 在會(huì)話級(jí)或請(qǐng)求級(jí)表示模型的狀態(tài),而不是在持久級(jí) JSP 文件使用 JSP 標(biāo)記讀取來(lái)ActionForm bean 的信息。 4.3. 5 View(視圖) </p><p> 視圖就是一個(gè) JSP 文件。其中沒(méi)有流程邏輯,沒(méi)有業(yè)務(wù)邏輯,也沒(méi)有模型信息 -- 只有標(biāo)記。 標(biāo)記是使 Struts
30、有別于其他框架(如 Velocity)的因素之一。</p><p> 4.4 Struts中的Controller(控制器) 命令設(shè)計(jì)模式的實(shí)現(xiàn)</p><p> Struts 的控制器將事件(事件通常是 HTTP post)映射到類(lèi)的一個(gè) servlet. ActionServlet (Command) 創(chuàng)建并使用 Action 、 ActionForm 和Ac
31、tionForward . 通過(guò)struts-config.xml 文件配置該 Command.從而擴(kuò)展 Action 和 ActionForm 來(lái)解決特定的問(wèn)題。 可以通過(guò)擴(kuò)展 ActionServlet 來(lái)添加 Command 功能。 </p><p> 4.5 在Struts框架中控制器組件的三個(gè)構(gòu)成部
32、分</p><p> 1,消息控制模塊;用戶(hù)所有的提交請(qǐng)求都發(fā)往消息控制模塊,在由消息總線模塊根據(jù)視圖映射模塊找到消息處理模塊來(lái)執(zhí)行處理邏輯。消息控制模塊接收所有用戶(hù)的請(qǐng)求,并根據(jù)請(qǐng)求視圖找到處理。Strtus中通過(guò)ActionServlet和RequestProcessor類(lèi)來(lái)完成。 </p><p> 2,消息處理模塊:該模塊執(zhí)行該消息的邏輯處理,因此通常
33、由用戶(hù)擴(kuò)展實(shí)現(xiàn)。Struts中通過(guò)Action類(lèi)來(lái)實(shí)現(xiàn)。 </p><p> 3,視圖映射模塊; 控制器邏輯和視圖邏輯之間的結(jié)合是通過(guò)配置模塊和配置文件建立其的鏈接。Struts中配置模塊通過(guò)ModuleConfig類(lèi)來(lái)完成,而配置文件由struts-config.xml文件提供?! ?.6 Struts中的View(視圖)視圖組件通過(guò)JSP組件的實(shí)現(xiàn)機(jī)制。</p>&l
34、t;p> Struts框架對(duì)視圖組件進(jìn)行了擴(kuò)展和封裝。 Struts對(duì)視圖的擴(kuò)展提供了一組擴(kuò)展服務(wù)器標(biāo)簽用來(lái)提供視圖顯示以及傳遞數(shù)據(jù)到處理緩沖,而處理緩沖由ActionForm的擴(kuò)展類(lèi)來(lái)實(shí)現(xiàn)。 Struts框架利用ActionForm Bean來(lái)實(shí)現(xiàn)視圖與控制器之間的數(shù)據(jù)的交互,維持會(huì)話級(jí)或請(qǐng)求級(jí)的模型的狀態(tài)。服務(wù)器標(biāo)簽主要包括: Html視圖標(biāo)簽; Logic邏輯流程控制標(biāo)簽;&
35、#160;Bean數(shù)據(jù)緩沖讀取標(biāo)簽; </p><p> 4.7 Struts中的Model(模型) </p><p> 1,Struts框架中并沒(méi)有定義特定的模型組件,而是希望由用戶(hù)自己決定選擇合理的模型組件。J2EE中可用的模型組件包括: JavaBean 用戶(hù)定義組件; EJB 組件,由EJB容器實(shí)現(xiàn)組件; JDO 未來(lái)J2EE數(shù)據(jù)
36、訪問(wèn)模型;一些擴(kuò)展框架如:Hibernate;</p><p> 2,模型中狀態(tài)的級(jí)別 會(huì)話級(jí)或請(qǐng)求級(jí):ActionForm bean來(lái)維持 ; 持久級(jí):模型組件來(lái)維持;</p><p><b> 5.SSH整合步驟</b></p><p> 5.1安裝所需軟件環(huán)境:</p>
37、<p> 5.1.1、首先安裝JDK,配置Java環(huán)境變量</p><p> 右鍵我的電腦->屬性->高級(jí)->環(huán)境變量 【JAVA_HOME】“F:\Java\jdk1.6.0_12”jdk1.6.0_12是我裝的版本,你看你自己的版本然后改下名字; 【Path】“%JAVA_HOME%\bin;”注意,這個(gè)要添加到系統(tǒng)原來(lái)的PATH前面,要像有些人說(shuō)的加后面可能會(huì)不能編譯
38、。 【Classpath】“.;%JAVA_HOME%\lib\tools.jar” 然后就是試下看是否配置成功了 關(guān)于設(shè)置JAVA HOME的必要性:你若裝TOMCAT或ORACLE等都會(huì)改變你的環(huán)境設(shè)置,總是改path,classpath容易出錯(cuò)也不方便,所以JAVA HOME就有了統(tǒng)一指向性,方便不易出錯(cuò) 開(kāi)始-運(yùn)行-CMD然后“javac”會(huì)出現(xiàn)很多操作說(shuō)明,也可以“java -version”查看版本信息。再就是自己編
39、個(gè)簡(jiǎn)單的JAVA文件試下了 </p><p> 5.1.2安裝MyEelipse 。注:修改Content Assist為Ctrl+Enter,可以修改提示快捷鍵</p><p><b> 5.1.3 數(shù)據(jù)庫(kù)</b></p><p> 5.1.4、安裝tomcat,并將tomcat加載到MyElipse中的服務(wù)器中。具體步驟為:Windo
40、w ——>Preferences ——> MyEclipse Enterprise Workbench ——> Servers ——>Tomcat ——>Tomat6X——>選擇"Enable",下面三個(gè)空指向tomcat的安裝路徑,如:D:\Tomcat 6.0。</p><p> 5.2環(huán)境配置好了就可以做SSH整合的項(xiàng)目</p><
41、;p> 1、先引入Struts,然后是Spring,最后是Hibernate(AOP Librarian,Core Libraries,JDBC LIbrarian,WebS Librarian)。</p><p> 2、在Database Driver中先創(chuàng)建數(shù)據(jù)庫(kù)</p><p> 3、在struts—config.xml中配置</p><p>
42、<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"></p><p> <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"
43、/></p><p> </plug-in></p><p> 這樣就把Struts中的ActionSevlet加到Spring中了。</p><p> 4、寫(xiě)帶有Form表單的頁(yè)面</p><p> 5、寫(xiě)對(duì)應(yīng)的ActionForm,并在struts-config.xml中注冊(cè)<form-bean>。&
44、lt;/p><p> 6、寫(xiě)對(duì)應(yīng)于數(shù)據(jù)庫(kù)的持久化類(lèi),如emp.hbm.xml,注其頭部為:</p><p> <?xml version='1.0' encoding='UTF-8'?></p><p> <!DOCTYPE hibernate-mapping PUBLIC</p><p>
45、 "-//Hibernate/Hibernate Mapping DTD 3.0//EN"</p><p> "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"></p><p><b> 內(nèi)容格式為:</b></p><p&g
46、t; <class table="ssh_dept" name="com.ibm.vo.Dept">//注:name為與數(shù)據(jù)庫(kù)表字段相對(duì)應(yīng)的類(lèi)</p><p> <id name="deptno" column="deptno" type="java.lang.Integer"><
47、/p><p> <generator class="assigned"></generator>//說(shuō)明主鍵類(lèi)型</p><p><b> </id></b></p><p> <property name="dname" column="dname&
48、quot; type="java.lang.String"></property></p><p> <property name="ioc" column="ioc" type="java.lang.String"></property></p><p> <
49、;set name="emp"></p><p> <key column="deptno"></key></p><p> <one-to-many class="com.ibm.vo.Emp"/></p><p><b> </set>
50、;</b></p><p><b> </class></b></p><p> 然后將其在applicationContext.xml中配置:</p><p> <property name="mappingResources"></p><p><b
51、> <list></b></p><p> <value>xml/User.hbm.xml</value></p><p><b> </list></b></p><p> </property></p><p> 7、寫(xiě)DAO層的
52、接口,并寫(xiě)實(shí)現(xiàn)該接口的類(lèi),該類(lèi)還要繼承HibernateDaoSupport,且bean注入時(shí)要記得屬性sessionFactory的注入。</p><p> 8、寫(xiě)Service層的接口,并寫(xiě)實(shí)現(xiàn)該接口的類(lèi),在該類(lèi)中要定義一個(gè)EmpDAO 類(lèi)型的屬性,并寫(xiě)其get和set方法。在此類(lèi)的方法中調(diào)用DAO層中的方法。</p><p> 9、寫(xiě)Action類(lèi),繼承Action,在該類(lèi)中定義
53、一個(gè)EmpService類(lèi)型的屬性,并寫(xiě)其set方法,然后在execute方法中進(jìn)行操作。</p><p> 10、將DAO、Service中所有的類(lèi)和Action類(lèi)注入到applicationContext.xml的Bean中,而且有屬性的一定要配置屬性,然后在Struts-config.xml中寫(xiě) :</p><p> <action path="/addEmp&q
54、uot; //注:此處的path應(yīng)與applicationContext.xml中 的name一致,Action注入bean時(shí)應(yīng)用name而不用id</p><p> name="addEmpForm"</p><p> attribute="addEmpForm"</p><p> scope="re
55、quest"</p><p> input="/addEmp.jsp" type="org.springframework.web.struts.DelegatingActionProxy">//代理</p><p> <forward name="success" path=&qu
56、ot;/addSuccess.jsp"></forward> </p><p><b> </action></b></p><p> 11、在applicationContext中配置事物:</p><p> <!-- 進(jìn)行事務(wù)處理 --></p><
57、p> <bean id="transactionManager"</p><p> class="org.springframework.orm.hibernate3.HibernateTransactionManager"></p><p> <property name="sessionFactory&qu
58、ot;></p><p> <ref local="sessionFactory"/></p><p> </property> </p><p><b> </bean></b></p><p> <!-- 進(jìn)行DAO代理 -->
59、</p><p> <bean id="userDaoProxy"</p><p> class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"></p><p> <property name=&quo
60、t;transactionManager"></p><p> <ref local="transactionManager"/></p><p> </property></p><p> <property name="target"></p><
61、;p> <ref local="deptDAOImpl"/></p><p> </property></p><p> <!-- 如果沒(méi)有事務(wù)就新建一個(gè)事務(wù) --></p><p> <property name="transactionAttributes">&
62、lt;/p><p><b> <props></b></p><p> <prop key="*">PROPAGATION_REQUIRED</prop> </p><p><b> </props></b></p><p>
63、</property></p><p><b> </bean></b></p><p> 12、若使用驗(yàn)證框架,則需先在sturts-config.xml中配置插件:</p><p> <plug-in className="org.apache.struts.validator.Validato
64、rPlugIn"></p><p> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/></p><p> </plug-in></p><p&
65、gt; 13、在/WEB-INF下建立validation.xml,其頭部為:</p><p> <!DOCTYPE form-validation PUBLIC</p><p> "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"</
66、p><p> "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">注:tomcat的lib包里要包含objdbc14.jar的jar包。</p><p> 6.搭建框架并簡(jiǎn)單應(yīng)用(搭建過(guò)程是在網(wǎng)上找的,我照著流程自己也做了,但是可能是版本的問(wèn)題有些地方還是有問(wèn)題,但大體框架搭建好了)</p
67、><p><b> 6.1準(zhǔn)備工作</b></p><p> MyEclipse 6.5</p><p><b> Tomcat5.5</b></p><p> 所需jar文件:(所有jar文件已整理ssh_jars文件夾)注意:ssh_test項(xiàng)目中采用的是MySql 數(shù)據(jù)庫(kù)。</p&g
68、t;<p> 而本文檔中配置的是Oracle數(shù)據(jù)庫(kù),注意其中配置的不同之處哦(在相應(yīng)的地方有注明)</p><p> 6.2(建立項(xiàng)目,包結(jié)構(gòu),導(dǎo)入所需jar文件)</p><p> 新建一個(gè)web project:</p><p><b> 建立包結(jié)構(gòu)如下:</b></p><p><b&g
69、t; 各包功能說(shuō)明:</b></p><p> com.ssh.config : 配置文件(*.properties),如數(shù)據(jù)庫(kù)配置信息</p><p> com.ssh.resource : 資源文件 </p><p> com.ssh.util.comm : 公共工具(util)包</p><p> com.ss
70、h.util.orm.hibernate : hibernate DAO 模板</p><p> com.ssh.model : 各實(shí)體類(lèi)文件</p><p> com.ssh.service : 業(yè)務(wù)邏輯包 相當(dāng)于biz </p><p> com.ssh..test : 測(cè)試包 </p><p> com.ssh.action
71、 : struts Action </p><p> 包結(jié)構(gòu)可以根據(jù)自己需要自行劃分</p><p><b> 導(dǎo)入jar文件: </b></p><p> 新建一個(gè)User Library: sshJars</p><p><b> 添加jar文件:</b></p><
72、p> 將新建的User Library: sshJars加入到項(xiàng)目中:</p><p><b> 6.3撰寫(xiě)資源文件</b></p><p> jdbc.properties</p><p> 在jdbc.properties 里寫(xiě)上連接數(shù)據(jù)庫(kù)的配置信息,此文件的配置信息用于在spring的配置文件中使用,數(shù)據(jù)庫(kù)的配置信息也可以寫(xiě)
73、到Spring 的配置文件中,這在一個(gè)jdbc.properties文件中是為了方便更改.</p><p> 在com.ssh.resource包中新建下列文件:</p><p> 各文件詳細(xì)內(nèi)容及說(shuō)明如下:</p><p> -------------------------------------------------------------------
74、----------------------------------------------------------------------</p><p> applicationContext.xml:</p><p> <?xml version="1.0" encoding="UTF-8"?></p><p
75、> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</p><p> xmlns:jee="http://www.springframework.org/schema/je
76、e" xmlns:tx="http://www.springframework.org/schema/tx"</p><p> xmlns:context="http://www.springframework.org/schema/context"</p><p> xsi:schemaLocation="http://ww
77、w.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springfra
78、mework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"</p><p
79、> default-lazy-init="true"></p><p> <description>Spring公共配置文件</description></p><p> <!-- 屬性文件讀入 --></p><p> <bean id="propertyConfigure
80、r" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"></p><p> <property name="locations"></p><p><b> <list></b>
81、</p><p> <value>classpath*:com/ssh/config/jdbc.properties</value></p><p><b> </list></b></p><p> </property></p><p><b> &l
82、t;/bean></b></p><p> <!-- 數(shù)據(jù)源配置,主要用于開(kāi)發(fā)測(cè)試環(huán)境 --></p><p> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"></p
83、><p> <property name="driverClassName" value="${jdbc.driverClassName}" /></p><p> <property name="url" value="${jdbc.url}" /></p><p&
84、gt; <property name="username" value="${jdbc.username}" /></p><p> <property name="password" value="${jdbc.password}" /></p><p><b> &l
85、t;/bean></b></p><p> <!-- 數(shù)據(jù)源配置,在生產(chǎn)環(huán)境使用應(yīng)用服務(wù)器的數(shù)據(jù)庫(kù)連接池 --></p><p> <!-- <jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/store" />-->&
86、lt;/p><p> <!-- Hibernate配置 --></p><p> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"><!—此處hibern
87、ate 的映射采用的是.xml 配置則應(yīng)設(shè)置為:class=”org.springframework.orm.hibernate3.LocalSessionFactoryBean”--></p><p> <property name="dataSource" ref="dataSource" /></p><p> <p
88、roperty name="hibernateProperties"></p><p><b> <props></b></p><p> <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
89、;</p><p> <prop key="hibernate.show_sql">true</prop></p><p> <prop key="hibernate.cache.use_query_cache">true</prop></p><p> <prop
90、key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop></p><p> <prop key="hibernate.cache.provider_configuration_file_resource_path">/ehcache-hibe
91、rnate.xml</prop></p><p><b> </props></b></p><p> </property></p><p> <property name="annotatedClasses"> <!—此處hibernate 的映射采用的是.xm
92、l 配置同則應(yīng)設(shè)置name=”mappingResource”--></p><p><b> <list></b></p><p> <value>com.ssh.model.User</value><!—此處hibernate 的映射采用的是.xml 配置同則應(yīng)設(shè)置<value>具體配置文件名(*.h
93、bm.xml)</value>--></p><p><b> </list></b></p><p> </property></p><p><b> </bean></b></p><p> <!-- 事務(wù)配置 -->&
94、lt;/p><p> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"></p><p> <property name="sessionFactory" ref
95、="sessionFactory" /></p><p><b> </bean></b></p><p><b> <!--</b></p><p> JTA環(huán)境的事務(wù)配置 <bean id="transactionManager" class=
96、"org.springframework.transaction.jta.JtaTransactionManager or</p><p> WebLogicJtaTransactionManager"/></p><p><b> --></b></p><p> <!-- 使用annotation
97、定義事務(wù) --></p><p> <tx:annotation-driven transaction-manager="transactionManager" /></p><p> <!-- 保證POJO中標(biāo)注@Required的屬性被注入 --></p><p> <bean class="
98、;org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor" /></p><p><b> </beans></b></p><p> ------------------------------------------------
99、-----------------------------------------------------------------------------------------</p><p> applicationContext-security.xml:</p><p> <?xml version="1.0" encoding="UTF-8
100、"?></p><p> <beans:beans xmlns="http://www.springframework.org/schema/security"</p><p> xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="
101、;http://www.w3.org/2001/XMLSchema-instance"</p><p> xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd</p><
102、p> http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.xsd"</p><p> default-autowire="byType" default-lazy-init="true&qu
103、ot;></p><p> </beans:beans></p><p> 此文件用于AOP的安全驗(yàn)證,也可不添加</p><p> ---------------------------------------------------------------------------------------------------------
104、--------------------------------</p><p> applicationContext-service.xml</p><p> <?xml version="1.0" encoding="UTF-8"?></p><p> <beans xmlns="htt
105、p://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</p><p> xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springf
106、ramework.org/schema/beans/spring-beans-2.5.xsd"</p><p> default-autowire="byType" default-lazy-init="true"></p><p> <bean name="userService" class=&quo
107、t;com.ssh.service.UserService"></bean></p><p> <bean name="/hello" class="com.ssh.action.HelloAction"></bean></p><p><b> </beans></
108、b></p><p> Service(業(yè)務(wù)邏輯類(lèi))的注入</p><p> -----------------------------------------------------------------------------------------------------------------------------------------</p><
109、;p> ehcache-hibernate.xml:</p><p><b> <ehcache></b></p><p> <diskStore path="d:\cache" /></p><p> <!-- Object cache --></p><
110、;p> <!-- 特別設(shè)定User類(lèi)的Cache,內(nèi)存中最多只保存5000個(gè)User實(shí)例,而且idle 600秒過(guò)期</p><p> 而Role類(lèi)沒(méi)有設(shè)置,則使用defaultCache中的默認(rèn)設(shè)定 --></p><p> <cache name="com.ssh.model.User" maxElementsInMemory=&quo
111、t;4" eternal="false" overflowToDisk="true" timeToIdleSeconds="600" /></p><p> <defaultCache maxElementsInMemory="100000" eternal="true" overflowT
112、oDisk="true" /></p><p> </ehcache></p><p> Hibernate 緩存的配置(可以不做配置,如果需要才使用緩存才做配置,建議配置上)</p><p> ----------------------------------------------------------------
113、-------------------------------------------------------------------------</p><p> 6.4在com.ssh.util.comm 包下添加下列文件</p><p> 此包為hibernate DAO模板中用到的各種工具類(lèi),各文件可以在打包的ssh_test項(xiàng)目中找到.</p><p>
114、; 6.5添加hibernate DAO 模板</p><p> 此包為hibernate DAO模板,SimpleHibernateTemplate.java 中包含了對(duì)各實(shí)體(增,刪,改,查,分頁(yè)查等)的泛形方法。各文件可以在打包的ssh_test項(xiàng)目中找到.。</p><p> 6.6以上的工作還不夠,我們還需要進(jìn)行WEB方面的配置</p><p>
115、配置web.xml , struts-config.xml , action-servlet.xml</p><p><b> 各文件內(nèi)容如下:</b></p><p> -------------------------------------------------------------------------------------------------
116、----------------------------------------</p><p> <?xml version="1.0" encoding="UTF-8"?></p><p> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&
117、quot;</p><p> xmlns="http://java.sun.com/xml/ns/javaee"</p><p> xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"</p><p> xsi:schemaLocation="
118、;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"</p><p> id="WebApp_ID" version="2.5"></p><p> <!-- Spring start--></p
119、><p> <listener></p><p> <listener-class></p><p> org.springframework.web.context.ContextLoaderListener</p><p> </listener-class></p><p>
120、; </listener></p><p> <context-param></p><p> <param-name>contextConfigLocation</param-name></p><p> <param-value></p><p> classpath:
121、com/ssh/resource/applicationContext*.xml</p><p> </param-value></p><p> </context-param></p><p> <!-- Spring end --></p><p> <!-- Struts Action
122、 Mapping--></p><p><b> <servlet></b></p><p> <servlet-name>action</servlet-name></p><p> <servlet-class></p><p> org.apache.s
123、truts.action.ActionServlet</p><p> </servlet-class></p><p> <init-param></p><p> <param-name>config</param-name></p><p> <param-value>
124、/WEB-INF/struts-config.xml</param-value></p><p> </init-param></p><p> <load-on-startup>1</load-on-startup></p><p> </servlet></p><p>
125、 <servlet-mapping></p><p> <servlet-name>action</servlet-name></p><p> <url-pattern>*.do</url-pattern></p><p> </servlet-mapping></p>&
126、lt;p> <!-- session超時(shí)定義,單位為分鐘 --></p><p> <session-config></p><p> <session-timeout>20</session-timeout></p><p> </session-config></p><
127、;p> <welcome-file-list></p><p> <welcome-file>index.jsp</welcome-file></p><p> </welcome-file-list></p><p> </web-app></p><p> ---
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- tekla實(shí)例教程
- ida實(shí)例教程
- pyrosim實(shí)例教程
- photoshop實(shí)例教程(ps教程實(shí)例)給長(zhǎng)
- tfc膜系設(shè)計(jì)實(shí)例教程
- ug鈑金件實(shí)例教程
- photoshop實(shí)例教程照片漫畫(huà)插畫(huà)效果的制作-photoshop實(shí)例教程
- word基礎(chǔ)實(shí)例教程
- matlab 簡(jiǎn)明實(shí)例教程
- kisssys入門(mén)實(shí)例教程
- flash實(shí)例教程100例
- c++基礎(chǔ)實(shí)例教程
- 曲面擬合實(shí)例教程總結(jié)
- html100實(shí)例教程
- flash實(shí)例教程100例
- 使用myeclipse工具搭建ssh框架
- 拖拖我的家 實(shí)例教程
- vb6.0圖文實(shí)例教程
- photoshop摳圖實(shí)例教程抽出
- photoshop實(shí)例教程制作環(huán)保袋
評(píng)論
0/150
提交評(píng)論