黎善俊
摘要 長沙職業(yè)技術(shù)學(xué)院畢業(yè)生就業(yè)信息系統(tǒng)的實(shí)現(xiàn)以往都是以人工統(tǒng)計(jì)完成為主,隨著學(xué)院的擴(kuò)招以及信息技術(shù)的發(fā)展,選擇計(jì)算機(jī)技術(shù)平臺(tái)也是必經(jīng)之路。網(wǎng)絡(luò)技術(shù)平臺(tái)和網(wǎng)絡(luò)技術(shù)來實(shí)現(xiàn)我院畢業(yè)生就業(yè)信息管理的電子化管理。我們選擇開發(fā)的模式和開發(fā)的平臺(tái)都是關(guān)系到畢業(yè)生就業(yè)管理系統(tǒng)的關(guān)鍵因素,在此,本章節(jié)將對(duì)于我院的畢業(yè)生就業(yè)信息系統(tǒng)用到的主要開發(fā)軟件進(jìn)行一一的介紹。
關(guān)鍵詞 MVC模式 B/S結(jié)構(gòu) iBATIS框架
一、MVC模式
MVC(Model View Controller)模式國外用得比較多的一種設(shè)計(jì)模式,最早是在Smaltalk中出現(xiàn),MVC包括三類對(duì)象:Model是應(yīng)用對(duì)象、View是它在屏幕上的表示、Controller定義用戶界面對(duì)用戶輸入的響應(yīng)方式。它是基于的Web應(yīng)用的一種最為典型的一種應(yīng)用方式,Struts 1架構(gòu)實(shí)際上是建立在Model2基礎(chǔ)之上的。
畢業(yè)生就業(yè)信息管理系統(tǒng)的大部分內(nèi)容是有關(guān)就業(yè)管理的,其主要是為了學(xué)生的就業(yè)問你,讓學(xué)生了解如何去實(shí)施選擇就業(yè)的這個(gè)過程。對(duì)于就業(yè)管理試行一體化的操作,它涉及的內(nèi)容包括:計(jì)劃管理、簡歷打印、數(shù)據(jù)的整理和數(shù)據(jù)統(tǒng)計(jì)等等。這些內(nèi)容都是招就專干在日常工作中的職責(zé)范圍。而學(xué)校的其他事宜如:學(xué)生管理、教師管理、財(cái)務(wù)等等都不屬于這一范疇。
MVC的處理過程,首先控制器接收用戶的請(qǐng)求,并決定應(yīng)該調(diào)用哪個(gè)模型來進(jìn)行處理,然后模型用業(yè)務(wù)邏輯來處理用戶的請(qǐng)求并返回?cái)?shù)據(jù),最后控制器用相應(yīng)的視圖格式化模型返回的數(shù)據(jù),并通過表示層呈現(xiàn)給用戶。
模型、視圖與控制器是分開的,因此一個(gè)模型是具有很多個(gè)的顯示視圖的。如果用戶在某個(gè)視圖中改變了模型的數(shù)據(jù),那么其他只要是依賴于這些數(shù)據(jù)的視圖都會(huì)馬上有反應(yīng),即刻就會(huì)發(fā)生變化。因此,無論什么時(shí)候什么數(shù)據(jù)都發(fā)生變化,再加上MVC設(shè)計(jì)的局限性,那么控制器都會(huì)將變化的通知視圖,顯示也會(huì)隨之更新。
二、B/S結(jié)構(gòu)簡介
B/S模式是Browser/Server的縮寫,即瀏覽器/服務(wù)器模式。它是基于文本技術(shù)為基礎(chǔ)的一種新型的系統(tǒng)平臺(tái)。包括數(shù)據(jù)服務(wù)器、多應(yīng)用服務(wù)器(一個(gè)或者多個(gè)),如此分解之后便形成了一個(gè)三層結(jié)構(gòu)的客戶服務(wù)體系。它是WEB興起之后形成的一種網(wǎng)絡(luò)結(jié)構(gòu)模式,將復(fù)雜的系統(tǒng)功能簡單化,并且統(tǒng)一了客戶端,這種技術(shù)的運(yùn)用將會(huì)大大的縮小畢業(yè)生在就業(yè)信息查詢時(shí)候所耗費(fèi)的時(shí)間。系統(tǒng)資源被統(tǒng)一的管理和使用是這個(gè)體系結(jié)構(gòu)的一個(gè)重要特點(diǎn),而網(wǎng)絡(luò)資源被透明使用是它另一個(gè)重要特點(diǎn),其主要特點(diǎn)為:
①易系統(tǒng)擴(kuò)展。當(dāng)注冊(cè)的學(xué)生和企業(yè)越來越多的時(shí)候,必然也會(huì)很多的問題會(huì)隨之而來,那么這個(gè)時(shí)候我們可以通過增加中間層的部署服務(wù)器來解決信息管理的相關(guān)問題,這也就是三層或者多層分布的區(qū)別于其他結(jié)構(gòu)的一個(gè)重要的應(yīng)用。為了提高表層客戶的響應(yīng)速度,他對(duì)客戶端都是透明的。
②響應(yīng)速度快。當(dāng)中間層的功能得到充分的發(fā)揮,那么它的效率也會(huì)大大的提升。對(duì)于實(shí)現(xiàn)均衡負(fù)載和數(shù)據(jù)緩存的實(shí)現(xiàn)都是較為容易的。這樣的設(shè)計(jì)效果就是讓客戶端的反應(yīng)速度會(huì)得到大大的提升。
⑨便于升級(jí)維護(hù)。一般業(yè)務(wù)規(guī)則的變化會(huì)引起其他程序的一些變化,但是因?yàn)橛辛藰I(yè)務(wù)邏輯功能的存在,所以我們的系統(tǒng)不會(huì)有變化,這樣對(duì)于系統(tǒng)的升級(jí)和維護(hù)起到了很大的作用。
④穩(wěn)定性好。為什么這種數(shù)據(jù)系統(tǒng)非常的穩(wěn)定,其實(shí)是與它通過使用Client與實(shí)際的數(shù)據(jù)庫相連接分不開的。
⑤安全性好。業(yè)務(wù)服務(wù)中間層的設(shè)計(jì)使用,對(duì)于系統(tǒng)的安全性具有很大的作用,用戶就不能直接訪問數(shù)據(jù)服務(wù)器,通過這樣就可以達(dá)到保護(hù)數(shù)據(jù)庫安全的目的。
三、框架技術(shù)分析
(一)Struts框架
為了減輕企業(yè)在構(gòu)造Web應(yīng)用時(shí)產(chǎn)生的負(fù)擔(dān),所以開發(fā)者在設(shè)計(jì)企業(yè)版Web應(yīng)用時(shí),便基于MVC設(shè)計(jì)模式設(shè)計(jì)開發(fā)了Web應(yīng)用開發(fā)框架。該框架自帶有標(biāo)記庫,大幅度的提高了開發(fā)的效率,并且還提高了系統(tǒng)的可維護(hù)性和可擴(kuò)充性。本文在設(shè)計(jì)畢業(yè)生就業(yè)信息系統(tǒng)時(shí),按照其實(shí)現(xiàn)所需要的幾大模塊,便制定出以下四種功能模式。該統(tǒng)需實(shí)現(xiàn)四大功能:人員管理模塊、單位管理模塊、招生就業(yè)工作模塊和查詢統(tǒng)計(jì)模塊等四個(gè)模塊。
與Struts 1相比,在框架上,Struts 1是一種Action驅(qū)動(dòng)的框架,必須使用ActionForm,而Struts 2是Command模式的一種實(shí)現(xiàn),采用反射機(jī)制,只需要編寫Action就可以。在技術(shù)上,Struts 2的標(biāo)簽結(jié)合ognl語言,能夠方便的在頁面讀取數(shù)值,比EL的功能要強(qiáng)大方便。因此,Struts2是一種非侵入性的框架。
控制器代理負(fù)責(zé)處理用戶請(qǐng)求,處理用戶請(qǐng)求時(shí)回調(diào)業(yè)務(wù)控制器的execute方法,該方法的返回值決定了Struts 2將怎樣的視圖資源呈現(xiàn)給用戶。
實(shí)際上,框架的穩(wěn)定性是整個(gè)系統(tǒng)最為關(guān)注的問題。我們要使用MVC框架,那么就必須了解Struts 2是WebWork的升級(jí),并且Struts 2還吸收了Struts 1和WebWork兩者的優(yōu)勢(shì)。即使他并不是一個(gè)全新的框架,它仍然值得我們運(yùn)用到本校的畢業(yè)生就業(yè)信息系統(tǒng)里,充滿期待。
①Controller:控制器的作用是從客戶端接受請(qǐng)求,并且選擇執(zhí)行相應(yīng)的業(yè)務(wù)邏輯,然后把響應(yīng)結(jié)果送回到客戶端。在Struts中Controller功能由圖1中ActionServlet和Action-Mapping對(duì)象構(gòu)成,核心是一個(gè)Servlet類型的對(duì)象Action-Servlet,它用來接受客戶端的請(qǐng)求。
②Model:Struts為Model部分提供了Action和Action-Form對(duì)象。Action處理器對(duì)象封裝了具體的處理邏輯,它調(diào)用業(yè)務(wù)邏輯模塊,并且把響應(yīng)提交到合適的View組件以產(chǎn)生響應(yīng)。Struts提供的ActionForm組件對(duì)象,可以通過定義屬性描述客戶端表單數(shù)據(jù)。開發(fā)者可以利用它實(shí)現(xiàn)對(duì)客戶端表單數(shù)據(jù)的良好封裝和支持。
總體來看,Struts2是當(dāng)前MVC模式框架精華的集成體,是當(dāng)前的主流使用框架。為了系統(tǒng)的可擴(kuò)展性和開發(fā)的簡單性,系統(tǒng)基于Struts 2框架進(jìn)行設(shè)計(jì)實(shí)現(xiàn)。
(二)iBATIS框架
iBATIS框架是基于Java語言的持久層框架,實(shí)現(xiàn)從數(shù)據(jù)庫表到Java實(shí)體對(duì)象之間的自動(dòng)映射(對(duì)象關(guān)系映射Ob-iect Relational Mapping,ORM)。最大的優(yōu)點(diǎn)是可以有效的控制sql發(fā)送的數(shù)目,提高數(shù)據(jù)層的執(zhí)行效率。阿里巴巴現(xiàn)在也在用是IBATIS;它需要程序員自己去寫sql語句,不像hi-bemate那樣是完全面向?qū)ο蟮?,自?dòng)化的,ibatis是半自動(dòng)化的,通過表和對(duì)象的映射以及手工書寫的sql語句,能夠?qū)崿F(xiàn)比hibernate等更高的查詢效率。
Struts應(yīng)用通過JSP技術(shù)來實(shí)現(xiàn)View部分的功能,它提供了自定義的標(biāo)記庫。它能非常好的和系統(tǒng)的Model部分交互,完全是因?yàn)樗羞@些自定義的標(biāo)記庫,創(chuàng)建JSP表單,去實(shí)現(xiàn)Model部分中的ActionForm的映射,完成對(duì)用戶數(shù)據(jù)的封裝。這些技術(shù)如果運(yùn)用到我院畢業(yè)生就業(yè)信息統(tǒng)計(jì)的話,那么對(duì)于學(xué)生和企業(yè)對(duì)于各種信息的查詢是非常有意義的。因?yàn)閷W(xué)生選擇企業(yè),企業(yè)選擇學(xué)生的這種雙向現(xiàn)則過程就是一個(gè)篩選的過程,一個(gè)相互的映射。
Struts框架和iBATIS框架都是長沙職業(yè)技術(shù)學(xué)院畢業(yè)生就業(yè)信息系統(tǒng)運(yùn)用的最為主要的框架,有了這兩個(gè)技術(shù)的運(yùn)用,將會(huì)大大的減少信息統(tǒng)計(jì)工作的工作量,也會(huì)更快捷的進(jìn)行信息的錄入審核和查詢。各種技術(shù)組件的默契合作,也給本系統(tǒng)的建設(shè)帶來不少便捷之處,為系統(tǒng)的成熟奠定了一定的基礎(chǔ)。
四、小結(jié)
本文分析了長沙職業(yè)技術(shù)學(xué)院特教系畢業(yè)生就業(yè)管理信息系統(tǒng)開發(fā)過程中所用到的框架技術(shù),主要針對(duì)Struts 2、iBATIS框架等進(jìn)行了具體描述,對(duì)工作流程和模塊進(jìn)行了詳細(xì)的介紹,對(duì)相關(guān)的數(shù)據(jù)庫也有一定的說明。當(dāng)然,只有先深入的去了解這些技術(shù),并以此為前提,才能夠?yàn)橄码A段的實(shí)踐做好相應(yīng)的理論準(zhǔn)備,為需求分析做好理論基礎(chǔ)。只有做好了充分的準(zhǔn)備工作,那么盡量做到分析到位,這樣才會(huì)為完成系統(tǒng)開發(fā)奠定了良好的基礎(chǔ)。