摘 要: 將軟件工程課件放到網(wǎng)上讓學(xué)生通過計(jì)算機(jī)來學(xué)習(xí),可以使學(xué)生更好地理解軟件工程這門課程的真諦,以此培養(yǎng)學(xué)生開發(fā)計(jì)算機(jī)應(yīng)用系統(tǒng)的實(shí)際能力。為此設(shè)計(jì)了一個(gè)軟件工程課程實(shí)踐教學(xué)互動(dòng)平臺(tái),給出了其各功能的詳細(xì)設(shè)計(jì)。該平臺(tái)結(jié)合了Java、HTML語言與Struts2框架,提供了一種軟件工程新的學(xué)習(xí)方法。案例提供者將案例傳到網(wǎng)上,學(xué)生即可對(duì)其進(jìn)行模擬實(shí)踐,并對(duì)實(shí)踐的分析結(jié)果進(jìn)行記錄,以便再次學(xué)習(xí)或者提供給他人學(xué)習(xí)。學(xué)生還可以在平臺(tái)上互相交流,互相幫助。
關(guān)鍵詞: Web; Struts 2; Java; HTML; 軟件工程; 模擬實(shí)踐
中圖分類號(hào):TP311.1 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2013)12-35-03
Implementation of software engineering practice teaching interaction platform based on Web
Gu Liang1, Chen Jinyuan2, Xu Jincai2, Yan Meng2
(1. Hangzhou Dianzi University, Hangzhou, Zhejiang 310018, China; 2. Zhejiang Topcheer Information Technology Co.,Ltd)
Abstract: It is necessary to make a reform of the teaching ways in order to achieve the higher efficiency. Putting the materials of software engineering on the website and letting students learn on computers will make students have a better understanding of the course and a stronger skill of developing the computer applications. In this paper, a software engineering practice teaching interaction platform is designed, which combines the language of Java and HTML with the framework of Struts2 well. When case providers submit cases to the websites, students can make a simulative practice of the cases and note down the analysis results of practice. All these records can be studied again as well as be offered for others. Students can also communicate with each other on the websites. All the functions of this system are so simple and developed in detail that students can study it easily.
Key words: Web; Struts 2; Java; HTML; software engineering; simulation practice
0 引言
軟件工程是計(jì)算機(jī)專業(yè)一門重要的專業(yè)核心課程,對(duì)學(xué)生今后從事計(jì)算機(jī)軟件相關(guān)工作崗位具有很強(qiáng)的實(shí)踐性。該課程著眼于從全局角度出發(fā)分析和解決問題,對(duì)于培養(yǎng)學(xué)生的工程能力、系統(tǒng)能力、實(shí)踐創(chuàng)新能力、規(guī)范化工作能力、溝通能力、表達(dá)與文檔能力、自我學(xué)習(xí)能力有著極其重要的意義。
目前,國(guó)內(nèi)高校對(duì)于該類課程的傳統(tǒng)做法是以教師課堂授課為主,學(xué)生被動(dòng)地聽課,教學(xué)內(nèi)容一般是重理論而輕實(shí)踐[1]。即使配備課程實(shí)驗(yàn),學(xué)生也只是編寫一些規(guī)定的文檔,其開發(fā)方式和手段基本上與軟件工程的要求脫節(jié)。很多學(xué)生在學(xué)習(xí)該課程時(shí),感到內(nèi)容抽象枯燥,常常是似懂非懂,甚至覺得本課程沒什么實(shí)用價(jià)值,不太喜歡學(xué)。因此必須對(duì)該課程進(jìn)行改革。采用案例教學(xué)和研究性教學(xué)模式,能突出實(shí)踐環(huán)節(jié),培養(yǎng)學(xué)生開發(fā)計(jì)算機(jī)應(yīng)用系統(tǒng)的實(shí)際能力[2]。本文設(shè)計(jì)了一個(gè)基于Web開發(fā)的軟件工程課程實(shí)踐教學(xué)互動(dòng)平臺(tái),將教學(xué)與實(shí)踐很好地結(jié)合起來,并增加了互動(dòng)交流的環(huán)節(jié)。學(xué)生將通過軟件開發(fā)實(shí)踐實(shí)驗(yàn)真實(shí)地體會(huì)到軟件開發(fā)的整個(gè)過程,通過貼近自己的命題更能夠激發(fā)興趣,同時(shí)可以增強(qiáng)團(tuán)隊(duì)意識(shí),提高交流及溝通能力。通過項(xiàng)目管理意識(shí)和內(nèi)容的引入,可以使學(xué)生真正感受到軟件開發(fā)的復(fù)雜性和所需要的嚴(yán)謹(jǐn)思維及態(tài)度。
1 技術(shù)簡(jiǎn)介
1.1 JSP技術(shù)
JSP(Java Server Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)[3]。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。用JSP開發(fā)的Web應(yīng)用是跨平臺(tái)的,既能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。
1.2 JavaScript技術(shù)
Javascript是一種由Netscape的LiveScript發(fā)展而來的面向?qū)ο蟮目蛻舳四_本語言,主要目的是為了解決服務(wù)器端語言所遺留的速度問題,為客戶提供更流暢的瀏覽效果。
1.3 XML技術(shù)
XML(Extensible Markup Language)即可擴(kuò)展標(biāo)記語言,它與HTML一樣,都是SGML(Standard Generalized Markup Language,標(biāo)準(zhǔn)通用標(biāo)記語言)。Xml是Internet環(huán)境中跨平臺(tái)的,依賴于內(nèi)容的技術(shù),是當(dāng)前處理結(jié)構(gòu)化文檔信息的有力工具。XML是一種簡(jiǎn)單的數(shù)據(jù)存儲(chǔ)語言,使用一系列簡(jiǎn)單的標(biāo)記描述數(shù)據(jù),而這些標(biāo)記可以用方便的方式建立。雖然XML比二進(jìn)制數(shù)據(jù)要占用更多的空間,但XML極其簡(jiǎn)單,易于掌握和使用。XML與HTML的設(shè)計(jì)區(qū)別是:XML是用來存儲(chǔ)數(shù)據(jù)的,重在數(shù)據(jù)本身;而HTML是用來定義數(shù)據(jù)的,重在數(shù)據(jù)的顯示模式。
1.4 Struts2框架
Struts 2是一個(gè)成熟的支持MVC模式的Web應(yīng)用程序開發(fā)工具,利用它開發(fā)MVC模式的Web應(yīng)用時(shí)可以大大降低開發(fā)難度,加快開發(fā)速度[4]。同時(shí),Struts也是一個(gè)可重用、易擴(kuò)展、成熟的軟件開發(fā)框架。它的優(yōu)點(diǎn)主要體現(xiàn)在兩個(gè)方面:TagLib和頁面導(dǎo)航。TagLib是Struts的標(biāo)簽庫,其目的是簡(jiǎn)化JSP表現(xiàn)層代碼,提高表現(xiàn)層的開發(fā)效率;頁面導(dǎo)航是Struts的核心思想,它使得Web應(yīng)用系統(tǒng)的脈絡(luò)更加清晰(通過一個(gè)配置文件,即可把握整個(gè)系統(tǒng)各部分之間的聯(lián)系),這正是MVC模式的體現(xiàn)形式。Struts 2的體系結(jié)構(gòu)如圖1所示。
圖1 Struts 2的體系結(jié)構(gòu)圖
1.5 JQuery技術(shù)
JQuery[5]是繼prototype之后又一個(gè)優(yōu)秀的Javascript框架。它是輕量級(jí)的js庫(壓縮后只有21k),它兼容CSS3,還兼容各種瀏覽器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。JQuery使用戶能更方便地處理HTML documents、events,實(shí)現(xiàn)動(dòng)畫效果,并且方便地為網(wǎng)站提供AJAX交互。JQuery還有一個(gè)比較大的優(yōu)勢(shì)是,它的文檔說明很全,而且各種應(yīng)用也說得很詳細(xì),同時(shí)還有許多成熟的插件可供選擇。JQuery能夠使用戶的html頁保持代碼與html內(nèi)容分離。
1.6 Mybatis框架
MyBatis是支持普通SQL查詢、存儲(chǔ)過程和高級(jí)映射的優(yōu)秀持久層框架。MyBatis消除了幾乎所有的JDBC代碼和參數(shù)的手工設(shè)置以及結(jié)果集的檢索。MyBatis使用簡(jiǎn)單的XML或注解用于配置和原始映射,將接口和Java的POJOs(Plain Old Java Objects,普通的Java對(duì)象)映射成數(shù)據(jù)庫中的記錄。
2 軟件工程課程實(shí)踐教學(xué)互動(dòng)平臺(tái)的設(shè)計(jì)
2.1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
MySQL教學(xué)互動(dòng)平臺(tái)基本可分為案例學(xué)習(xí)模塊,F(xiàn)AQ模塊,角色扮演模塊,上傳資料模塊,師生交互模塊和登錄、退出等七大塊功能。上傳資料模塊可以進(jìn)行資料上傳;角色扮演模塊可以讓學(xué)生扮作各種身份,如工程師、架構(gòu)師等;網(wǎng)上評(píng)審模塊學(xué)生以所扮演的身份對(duì)他人的實(shí)踐進(jìn)行評(píng)審;案例學(xué)習(xí)的六塊功能是對(duì)案例進(jìn)行的操作;添加問題與添加回復(fù)分別是實(shí)現(xiàn)提問與回答的功能;師生交流能讓學(xué)生和教師在平臺(tái)上進(jìn)行交流,與提問、回答類似。
2.2 系統(tǒng)架構(gòu)設(shè)計(jì)
2.2.1 系統(tǒng)總體架構(gòu)設(shè)計(jì)
本系統(tǒng)采用MVC模式,分為模型(Model)層、視圖(View)層和控制(Controller)層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問等工作放在中間層處理,客戶端不直接與數(shù)據(jù)庫交互,而是通過控制層與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。以下就是MVC的三層結(jié)構(gòu):
⑴ 模型層
模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。被模型返回的數(shù)據(jù)是中立的,就是說模型與數(shù)據(jù)格式無關(guān),這樣的模型能為多個(gè)視圖提供數(shù)據(jù)。由于應(yīng)用于模型的代碼只需寫一次就可以被多個(gè)視圖重用,所以減少了代碼的重復(fù)性。具體包括PO(persistant object,持久對(duì)象),DAO(存放方法的接口與實(shí)現(xiàn)該接口的實(shí)現(xiàn)類)。
本系統(tǒng)中,包括6個(gè)PO包與6個(gè)DAO包,分別為學(xué)生、問題、回答、項(xiàng)目、實(shí)踐、個(gè)性思考。PO包中存放兩個(gè)文件:一個(gè)是*.java的持久化對(duì)象類,即與表中字段名字相同的變量以及它們的get()、set()方法;另一個(gè)是*.xml的這些變量的映射文件,映射文件會(huì)加載持久化對(duì)象類。DAO中存放*DAO.interface的接口與*DAOImpl.java的實(shí)現(xiàn)類,接口中寫需要用到的方法,實(shí)現(xiàn)類則實(shí)現(xiàn)接口中的方法。
⑵ 視圖層
視圖是用戶看到并與之交互的、由HTML元素組成的界面,通俗地說,就是能在瀏覽器上看到的,本系統(tǒng)中用到的是JSP文件。由于功能的需要,本系統(tǒng)設(shè)計(jì)的頁面相對(duì)來說不多,主要包括登陸界面和主界面。其中有一個(gè)公共頁面即導(dǎo)航欄,需要包含在各個(gè)頁面中,讓它在每個(gè)頁面中存在,以方便點(diǎn)擊鏈接。
⑶ 控制層
控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。所以當(dāng)單擊Web頁面中的超鏈接和發(fā)送HTML表單時(shí),控制器本身不輸出任何東西,不做任何處理。它只是接收請(qǐng)求并決定調(diào)用哪個(gè)模型構(gòu)件去處理請(qǐng)求,然后再確定用哪個(gè)視圖來顯示返回的數(shù)據(jù)。
本系統(tǒng)中,控制層為struts.xml與action包里的action類,根據(jù)不同的功能寫不同的action方法,有些為了方便起見,比如,一個(gè)鏈接要實(shí)現(xiàn)多個(gè)功能,那么會(huì)將多個(gè)功能寫在一個(gè)action方法中,但是一般而言,為了看得明白,一個(gè)action方法對(duì)應(yīng)一個(gè)功能。
2.2.2 系統(tǒng)總體流程
本系統(tǒng)中,通過使用Struts 2,提供了良好的MVC模式,所有的用戶請(qǐng)求都由Struts 2的Action負(fù)責(zé)攔截,進(jìn)入相應(yīng)的Action類中的方法,在該方法內(nèi)實(shí)例化DAO接口中某個(gè)實(shí)現(xiàn)類,實(shí)現(xiàn)類中通過session工廠加載Mybatis配置文件,然后再用之前實(shí)例化的那個(gè)對(duì)象調(diào)用實(shí)現(xiàn)類對(duì)應(yīng)的方法,再調(diào)用相應(yīng)的增、刪、改、查語句,進(jìn)入數(shù)據(jù)庫進(jìn)行操作,最后通過Action返回給頁面。
2.3 數(shù)據(jù)庫設(shè)計(jì)
2.3.1 E-R圖設(shè)計(jì)
通過分析本系統(tǒng)所涉及到的主體主要為學(xué)生信息、教師信息、問題信息、案例信息,分析這些實(shí)體之間的關(guān)系和聯(lián)系,得出系統(tǒng)的簡(jiǎn)易E-R圖,如圖2所示。
[回答][老師] [提問][問題][學(xué)生] [操作][名字][密碼][案例][需求][技術(shù)][步驟][名字][密碼][主題][內(nèi)容] [m][n][m][n] [l][n]
圖2 E-R圖
圖2中的矩形表示實(shí)體,橢圓表示該實(shí)體所具有的屬性,如一個(gè)問題信息應(yīng)具有主題、內(nèi)容等屬性,菱形表示實(shí)體之間的關(guān)系,而用夾著數(shù)字的實(shí)線表示它們之間的對(duì)應(yīng)關(guān)系。
2.3.2 數(shù)據(jù)庫物理結(jié)構(gòu)
對(duì)上面的E-R進(jìn)行詳細(xì)的分析,尤其是對(duì)每個(gè)實(shí)體的屬性進(jìn)行合理的設(shè)置,得到簡(jiǎn)單的表結(jié)構(gòu),然后對(duì)各個(gè)表之間的依賴關(guān)系進(jìn)行分析。
表里面的字段代表E-R圖里面的屬性,表中的帶實(shí)線的箭頭代表表之間的依賴。
2.3.3 數(shù)據(jù)庫表結(jié)構(gòu)
⑴ 學(xué)生表字段名包括:studentid、studentname、studentpsw、studentbirth、college和major,相應(yīng)的字段描述為:學(xué)生id、姓名、密碼、生日、學(xué)院和專業(yè)。其中主鍵為studentid。
⑵ 問題表字段名包括:questionid、qtitle、qcontent、qdate和studentname,相應(yīng)的字段描述為:?jiǎn)栴}id、標(biāo)題、內(nèi)容、提問日期和提問者。其中主鍵為questiontid。
⑶ 案例表字段名包括:projectid、xuqiufenxi、process、head、introduction、goal和technical,相應(yīng)的字段描述為:案例id、需求分析、開發(fā)步驟、標(biāo)題、引言、系統(tǒng)目標(biāo)和設(shè)計(jì)技術(shù)。其中主鍵為projecttid。
⑷ 需求分析表字段名包括:xuqiufenxiid、projectid、xstep1和xdetail1,相應(yīng)的字段描述為:需求id、案例id、步驟一和詳細(xì)一。其中主鍵為xuqiufenxiid。
3 軟件工程課程實(shí)踐教學(xué)互動(dòng)平臺(tái)的實(shí)現(xiàn)
3.1 系統(tǒng)框架搭建
⑴ 搭建struts框架
創(chuàng)建一個(gè)Web Project之后在Web.xml中會(huì)自動(dòng)生成Struts2的配置信息。
在scr目錄下,會(huì)生成Struts.xml的配置文件,定義攔截器,攔截器就好像一個(gè)過濾器,可以把不想要或不想顯示的內(nèi)容過濾掉,可以減輕代碼冗余,提高重用率。設(shè)置內(nèi)容如下:
Struts.xml會(huì)加載com.pub.InstanceInterceptor類中的intercept方法,該方法的作用是生成實(shí)現(xiàn)類對(duì)象、銷毀實(shí)現(xiàn)類對(duì)象。
⑵ 設(shè)置數(shù)據(jù)庫連接文件
創(chuàng)建datebase.properties國(guó)際資源化文件,加入如下代碼:
driver=oracle.jdbc.OracleDriver url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
username=rwb password=rwb
添加oracle的驅(qū)動(dòng)與url以及自己數(shù)據(jù)庫用戶名和密碼,連接到Oracle數(shù)據(jù)庫。
⑶ 設(shè)置Mybatis框架
創(chuàng)建mybatisconfig.xml的配置文件,在文件中加入Mybatis的頭元素,這樣就可以進(jìn)行Mybatis的配置了,代碼如下:
<!DOCTYPE configuration PUBLIC
\"-//mybatis.org//DTD Config 3.0//EN\"
\"http://mybatis.org/dtd/mybatis-3-config.dtd\">
之后添加配置信息,在properties中加載數(shù)據(jù)庫連接文件;添加數(shù)據(jù)源,就是把database.properties的值傳進(jìn)來,driver,url,username,password分別對(duì)應(yīng)database.properties中的數(shù)據(jù);mappers用來加載po的映射文件,映射文件必須放入mappers中才能被系統(tǒng)讀取。
⑷ 創(chuàng)建InstanceInterceptor類
在Src目錄下創(chuàng)建一個(gè)包c(diǎn)om.pub,創(chuàng)建一個(gè)InstanceInterceptor.java的類,進(jìn)行攔截器的配置,該類的方法在加載struts.xml文件的時(shí)候會(huì)被執(zhí)行。首先在開頭創(chuàng)建一個(gè)接口的對(duì)象,如LoginDAO ldao。
該類中有三個(gè)方法:destory()方法用于銷毀這個(gè)對(duì)象 ldao=1;init()方法用于實(shí)例化該對(duì)象ldao=LoginDAOImpl();intercept()方法用于設(shè)置request來進(jìn)行傳值,如request.setAttribute(\"ldao\",ldao);第二個(gè)參數(shù)為之前實(shí)例化的對(duì)象,第一個(gè)參數(shù)用來調(diào)用第二個(gè)參數(shù)。
創(chuàng)建MybatisSQLSessionFactory類。
在com.pub包中創(chuàng)建MybatisSQLSessionFactory.java,該類用于加載Mybatisconfig.xml文件。
這樣,兩個(gè)框架跟數(shù)據(jù)庫的配置都基本完成了。
3.2 功能實(shí)現(xiàn)
3.2.1 登陸模塊
啟動(dòng)系統(tǒng)程序后,首先進(jìn)入系統(tǒng)登錄界面。
在登錄平臺(tái)的時(shí)候,系統(tǒng)會(huì)要求用戶輸入賬號(hào)密碼及身份作為驗(yàn)證信息,這是為了防止非法用戶輸入正常信息后便可以使用本系統(tǒng),若用戶輸入有誤,將提示錯(cuò)誤信息。
3.2.2 導(dǎo)航欄
導(dǎo)航欄顯示了整個(gè)系統(tǒng)具有的功能模塊,并有各功能的鏈接。
3.2.3 各功能模塊
⑴ 添加案例:案例添加共分為六個(gè)部分,分別為:標(biāo)題、引言、系統(tǒng)目標(biāo)、需求分析、開發(fā)步驟、涉及技術(shù),分別填寫其內(nèi)容。重置鍵將清空所用內(nèi)容,所以應(yīng)謹(jǐn)慎使用。
⑵ 顯示案例:顯示系統(tǒng)中自帶的案例,可以點(diǎn)擊詳情查看具體信息,通過foreach顯示所有案例。
⑶ 查看案例:點(diǎn)擊案例后面的“詳細(xì)”,即可查看案例的詳細(xì)內(nèi)容。
⑷ 案例分解:在案例詳細(xì)內(nèi)容的界面中,點(diǎn)擊“項(xiàng)目分解”,即可對(duì)案例進(jìn)行分解,就能查看各部分內(nèi)容。進(jìn)入頁面時(shí)所有內(nèi)容都是隱藏的,點(diǎn)擊“詳細(xì)”才能看到該部分的詳細(xì)內(nèi)容,這樣以便清楚觀察每個(gè)步驟。詳細(xì)內(nèi)容后面點(diǎn)擊“細(xì)節(jié)分析”可以查看作者對(duì)該步驟的細(xì)節(jié)分析。繼續(xù)點(diǎn)擊“實(shí)踐”,則觀察者可對(duì)該步驟進(jìn)行實(shí)踐。
⑸ 模擬實(shí)踐:點(diǎn)擊“實(shí)踐”,會(huì)彈出一個(gè)小窗口,該窗口用JQuery實(shí)現(xiàn),學(xué)生可對(duì)該步驟進(jìn)行模擬實(shí)踐。
⑹ FAQ:點(diǎn)擊導(dǎo)航欄中的知識(shí)管理庫-->FAQ,可進(jìn)入FAQ庫,里面羅列了所有的問題,在下面的文本框中,可以添加所需要的問題,實(shí)現(xiàn)方法跟案例的顯示一樣。點(diǎn)擊“詳細(xì)”,可進(jìn)入查看問題的詳細(xì)信息以及該問題對(duì)應(yīng)的回答,下面的文本框可對(duì)該問題進(jìn)行回答。
⑺ 資料庫:資料庫中存放著一些文件,學(xué)生可以對(duì)其進(jìn)行下載。
4 結(jié)束語
本文設(shè)計(jì)實(shí)現(xiàn)了一個(gè)基于Web開發(fā)的軟件工程課程實(shí)踐教學(xué)互動(dòng)平臺(tái)。通過該平臺(tái)學(xué)習(xí),學(xué)生將能夠較好地理解并掌握軟件工程項(xiàng)目的開發(fā)理論和方法。通過參與完成一個(gè)具體的工程項(xiàng)目,將極大地激發(fā)學(xué)生的學(xué)習(xí)興趣,提高學(xué)習(xí)的主動(dòng)性,使得從事軟件項(xiàng)目開發(fā)的專業(yè)能力得到增強(qiáng)。該系統(tǒng)將教學(xué)與實(shí)踐很好地結(jié)合起來,并增加了互動(dòng)交流的環(huán)節(jié)。學(xué)生通過軟件開發(fā)實(shí)踐實(shí)驗(yàn)真實(shí)的體會(huì)到軟件開發(fā)的整個(gè)過程;通過貼近自己的命題激發(fā)學(xué)習(xí)興趣,增強(qiáng)團(tuán)隊(duì)意識(shí),提高交流及溝通能力;通過項(xiàng)目管理意識(shí)和內(nèi)容的引入使學(xué)生真正感受到軟件開發(fā)的復(fù)雜性和所需要的嚴(yán)謹(jǐn)思維和態(tài)度。
參考文獻(xiàn):
[1] 白小軍,史璇,羅鈞妟.基于Web的學(xué)校網(wǎng)絡(luò)管理平臺(tái)設(shè)計(jì)[J].教學(xué)與
管理(理論版),2007.
[2] 邢東山,沈鈞毅,原野.基于Web使用挖掘技術(shù)的個(gè)性化教育網(wǎng)站構(gòu)
筑[J].計(jì)算機(jī)應(yīng)用與軟件,2002.8.
[3] 張波,張福炎.基于JSP技術(shù)的Web應(yīng)用程序的開發(fā)[J].計(jì)算機(jī)應(yīng)用
研究,2001.18(5):99-101
[4] 劉斌,王最.Struts,Spring,Hibernate框架在OA開發(fā)中的應(yīng)用[J].計(jì)
算機(jī)技術(shù)與發(fā)展,2010.20(1):151-154
[5] 李峰,劉彥隆.基于SSH框架與jQuery技術(shù)的JavaWeb開發(fā)應(yīng)用[J].
科技情報(bào)開發(fā)與經(jīng)濟(jì),2010.6:106-108