摘要:該文以蘇州農(nóng)業(yè)職業(yè)技術(shù)學(xué)院為例,基于MVC架構(gòu)對高職院校畢業(yè)生管理系統(tǒng)的設(shè)計和實現(xiàn)進行了探討,主要內(nèi)容如下:1)設(shè)計了利用JAVA Web技術(shù)搭建信息管理平臺的方式來解決畢業(yè)生信息網(wǎng)絡(luò)化管理問題。2)研究了系統(tǒng)實現(xiàn)的關(guān)鍵技術(shù),包括MVC設(shè)計模式,Hibernate數(shù)據(jù)持久化,Struts 2 框架,JSP視圖層開發(fā)。3)利用MyEclipse、Tomcat、SQL Server等工具了完成了原型系統(tǒng)的開發(fā)。該文所設(shè)計的系統(tǒng)已經(jīng)為蘇州農(nóng)業(yè)職業(yè)技術(shù)學(xué)院的畢業(yè)生信息管理提供了有效的借鑒。
關(guān)鍵詞:畢業(yè)生信息管理;MVC設(shè)計模式;Struts 2框架;Hibernate框架
中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2013)12-2807-03
隨著現(xiàn)代網(wǎng)絡(luò)技術(shù)和高校校園網(wǎng)的建設(shè)與發(fā)展,基于校園內(nèi)局域網(wǎng)和Internet的應(yīng)用系統(tǒng)開發(fā)正蓬勃發(fā)展,高校管理工作的信息化、數(shù)字化研究與實踐越來越受到重視。畢業(yè)生信息管理工作是高職院校教育教學(xué)管理的重要組成部分,隨著國內(nèi)各高校辦學(xué)規(guī)模的不斷擴大,高校畢業(yè)生數(shù)量大量增加,建立高校畢業(yè)生信息管理系統(tǒng)日趨重要和必要。
在上述應(yīng)用需求背景下,本研究對蘇州農(nóng)業(yè)職業(yè)技術(shù)學(xué)院畢業(yè)生信息管理現(xiàn)狀進行了較為深入的調(diào)研和分析,在參考業(yè)內(nèi)各種就業(yè)平臺設(shè)計基礎(chǔ)上,給出了基于MVC的高職畢業(yè)生信息管理系統(tǒng)的設(shè)計與實現(xiàn)。
1 MVC設(shè)計模式的應(yīng)用
MVC是三個單詞的縮寫,分別為: 模型(Model),視圖(View)和控制器(Controller)。其架構(gòu)如圖1所示。
模型(Model):表示數(shù)據(jù)和業(yè)務(wù)處理。由于應(yīng)用于模型的代碼只需要寫一次就可以被多個視圖重用,所以減少了代碼的重復(fù)性。對應(yīng)的組件是JavcBean(Java類)。視圖(View):是用戶看到并與之交互的界面。MVC一個大的好處是它能為應(yīng)用程序處理很多不同的視圖。對應(yīng)的組件是JSP或HTML文件??刂破鳎–ontroller):接受用戶的輸入并調(diào)用模型和視圖區(qū)完成用戶的請求。對應(yīng)的組件是Servlet。
本文在系統(tǒng)設(shè)計開發(fā)中采用JavaBean和Hibernate實現(xiàn)模型層開發(fā),采用Struts 2實現(xiàn)控制層開發(fā),采用JSP技術(shù)實現(xiàn)視圖層開發(fā)。
2 基于Hibernate實現(xiàn)模型層開發(fā)和數(shù)據(jù)持久化
Hibernate是一個優(yōu)秀的Java持久化方案,是當(dāng)今主流的對象——關(guān)系映射工具。該文在數(shù)據(jù)持久化方面就是使用Hibernate技術(shù)的。
2.1 使用HQL實現(xiàn)數(shù)據(jù)庫的基本操作
HQL(Hibernate Query Languge,Hibernate 查詢語言)查詢:是一種面向?qū)ο蟮牟樵冋Z言,其中沒有表和字段的概念,只有類、對象和屬性的概念。
下面是使用HQL來根據(jù)屬性查詢學(xué)生信息的方法代碼:
public List findStudentsByProperty(String p,Object value){
List l = null;
try {
String queryString = "from Student s where s." + p + "= ?";
Query queryObject = getSession().createQuery(queryString);
queryObject.setParameter(0, value);
l = queryObject.list();
} catch (RuntimeException re) {
throw re;
} finally{
closeSession();
}return l;
}
2.2 Hibernate高級技術(shù)應(yīng)用
Hibernate提供了多種功能強大的技術(shù),該文在系統(tǒng)設(shè)計開發(fā)過程中主要用到了數(shù)據(jù)延遲加載方式和Criteria 查詢技術(shù)。
Hibernate提供多種數(shù)據(jù)加載策略,常用的有:立即加載、延遲加載。該文在設(shè)計過程中分別采用了這兩種方式進行了運行測試,發(fā)現(xiàn)使用延遲加載方法可以有效的提高系統(tǒng)運行效率,因為數(shù)據(jù)的即時加載需要進行數(shù)據(jù)庫對象的讀取,需要一定的系統(tǒng)性能開銷。該文在實際應(yīng)用時采用了數(shù)據(jù)的延遲加載策略。
Criteria 查詢采用面向?qū)ο蠓绞椒庋b查詢條件,又稱為對象查詢。它能夠?qū)QL 語句進行封裝,采用對象的方式來組合各種查詢條件。Criteria由Hibernate Session進行創(chuàng)建,由Hibernate 自動產(chǎn)生SQL 查詢語句。下面展示了本文所采用Criteria 查詢來進行用戶登錄操作的典型代碼片段:
SessionFactory sessionFactory = new Configuration().configure()
.buildSessionFactory();
Session session = sessionFactory.openSession();
Criteria criteria = session.createCriteria(User.class);
List result = criteria.list();
Iterator it = result.iterator();
while (it.hasNext()) {
User user = (User) it.next();
}session.close();
sessionFactory.close();
return user;
3 基于Struts2實現(xiàn)控制層開發(fā)
Struts 2是一款優(yōu)雅的、可擴展性很強的框架,是在 struts 和WebWork的技術(shù)基礎(chǔ)上進行了合并的全新的Struts 2框架。
本文所使用Struts 2 開發(fā)系統(tǒng)的基本步驟分為以下6步:1)加載Struts2 類庫;2)配置web.xml;3)開發(fā)視圖層頁面;4)開發(fā)控制層Action;5)配置Struts 2的配置文件(struts.xml);6)部署、運行項目。其中,配置web.xml,開發(fā)Action是Struts 2使用過程中的重點,下面具體闡述一下本文在系統(tǒng)設(shè)計過程中這兩個步驟的具體實現(xiàn)。
3.1 配置web.xml
org.apache.struts2.dispatcher.ng.filter.
StrutsPrepareAndExecuteFilter
Struts2不同版本的核心控制器是不同的,該文在系統(tǒng)設(shè)計開發(fā)過程中都采用Struts 2.0版本,配置為FilterDispatcher。
3.2 開發(fā)Action
Struts 2中的Action類通常都實現(xiàn)com.opensymphony.xwork2.Action接口,并實現(xiàn)該接口中的execute()方法;所有的Action必須返回一個字符串類型的結(jié)果代碼,以標(biāo)識要呈現(xiàn)給用戶的結(jié)果。在Struts2中,可以直接使用Action類的屬性來接收用戶的輸入。不過,Struts2框架支持普通的Java類作為Action,只需要該類具有約定的處理請求的方法(返回類型為String的無參數(shù)的pubic方法)即可。
4 基于JSP技術(shù)開發(fā)View層
JSP(Java Server Pages)是指:在HTML中嵌入Java腳本語言,由應(yīng)用服務(wù)器中的JSP引擎來編譯和執(zhí)行嵌入的Java腳本語言命令,然后將生成的整個頁面信息返回給客戶端。該文在系統(tǒng)設(shè)計開發(fā)過程中采用Tomcat 6.0作為Web容器。
在JSP頁面中使用模型層的JavaBean存在兩個局限:獲取JavaBean屬性必須要實例化;獲取數(shù)據(jù)必須強制類型轉(zhuǎn)換。為了避免這個缺點,簡化代碼的復(fù)雜度,提高系統(tǒng)代碼的效率,我們在JSP頁面中使用EL表達式來處理。EL的語法是:${EL exprission}、${bean.name} 或${bean['name']}。當(dāng)然在使用EL表達式時需要注意其作用域,常見的作用域有四個page、request、session、application
雖然EL表達式可以訪問JavaBean的屬性,但是并不能實現(xiàn)在JSP中進行邏輯判斷,因而要結(jié)合使用JSTL(JavaServerPages Standard Tag Library,JSP標(biāo)準(zhǔn)標(biāo)簽庫)。
一般使用JSTL的步驟分為以下三步:1、創(chuàng)建Web工程,選擇JSTL1.1;2、在JSP頁面添加taglib指令:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>;3、使用JSTL標(biāo)簽:JSTL標(biāo)準(zhǔn)標(biāo)簽庫分為三種,通用標(biāo)簽、條件標(biāo)簽、迭代標(biāo)簽。
5 原型系統(tǒng)實現(xiàn)
本文針對MVC設(shè)計模式的高職院校畢業(yè)生信息管理系統(tǒng)的設(shè)計和實現(xiàn)進行了研究,利用MyEclipse8.5、Tomcat6.0、SQL Server 2008等工具了完成了原型系統(tǒng)的開發(fā)。圖2、圖3、圖4、圖5分別展示了原型系統(tǒng)的典型頁面。下一步將在改進系統(tǒng)框架、完善數(shù)據(jù)設(shè)計、提高系統(tǒng)安全性、提高系統(tǒng)性能四個方面展開進一步研究。
校畢業(yè)生信息管理系統(tǒng)的設(shè)計與實現(xiàn)-229\image3.jpeg>
校畢業(yè)生信息管理系統(tǒng)的設(shè)計與實現(xiàn)-229\image5.png>
參考文獻:
[1] 劉濤.畢業(yè)生信息管理系統(tǒng)的研究與開發(fā)[D].呼和浩特:內(nèi)蒙古大學(xué),2011.
[2] 孫佳帝.基于JSP技術(shù)的畢業(yè)生信息管理系統(tǒng)的設(shè)計與實現(xiàn)[D].長春:吉林大學(xué),2009.
[3] 盧俊瑋,常琳,陳昀錕.MVC模式與ASP.NET MVC框架的技術(shù)研究[J].電腦知識與技術(shù),2010(19).
[4] 楊曉軍. MVC Web開發(fā)學(xué)習(xí)實錄[M].北京:清華大學(xué)出版社,2011.