申報技師的技術(shù)論文(2)
申報技師的技術(shù)論文篇二
科技申報系統(tǒng)設(shè)計的關(guān)鍵技術(shù)分析
[摘 要] 計算機和互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,使得包括科技申報在內(nèi)的各種網(wǎng)上辦公活動成為現(xiàn)實。發(fā)達國家已率先使用科技申報系統(tǒng)進行科技申報管理活動,2000年以來,科技申報系統(tǒng)在我國的部分省市開始使用,發(fā)揮了積極作用。Struts技、Hibernate、Spring技術(shù),整合出科技申報系統(tǒng)的應(yīng)用框架,提供了表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層的相關(guān)基類。實現(xiàn)了編程接口的統(tǒng)一、事務(wù)自動處理。
[關(guān)鍵詞] 科技申報 MVCStruts Spring
一、JSP技術(shù)
JSP(Java Server Pages)技術(shù)是由Sun公司發(fā)布的用于開發(fā)動態(tài)Web應(yīng)用的一項技術(shù)。它以其簡單易學、跨平臺的特性,在眾多動態(tài)Web應(yīng)用程序設(shè)計語言中異軍突起,在短短幾年中已經(jīng)形成了一套完整的規(guī)范,并廣泛地應(yīng)用于電子商務(wù)等各個領(lǐng)域中。
JSP規(guī)范是Web服務(wù)器、應(yīng)用服務(wù)器、交易系統(tǒng)以及開發(fā)工具供應(yīng)商間廣泛合作的結(jié)果。Sun開發(fā)出這個規(guī)范來整合和平衡已經(jīng)存在的對Java編程環(huán)境(例如,Java Servlet和JavaBeans)進行支持的技術(shù)和工具。其結(jié)果是產(chǎn)生了一種新的、開發(fā)基于Web應(yīng)用程序的方法,給予使用基于組件應(yīng)用邏輯的頁面設(shè)計者以強大的功能
二、 Struts2技術(shù)
Struts2并不是一個陌生的web框架,它是以Webwork的設(shè)計思想為核心,吸收struts1的優(yōu)點,可以說Struts2是struts1和Webwork結(jié)合的產(chǎn)物。它的工作原理如下:
一個請求在Struts2框架中的處理可分為如下7個步驟:
(1)客戶端發(fā)出一個指向servlet容器的請求(tomcat);
(2)這個請求會經(jīng)過圖中的幾個過濾器,最后會到達FilterDispatcher過濾器。
(3)過濾器FilterDispatcher是struts2框架的心臟,在處理用戶請求時,它和請求一起相
三、Hibernate技術(shù):
Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。 Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。
Hibernate的核心接口一共有5個,分別為:Session、SessionFactory、Transaction、Query和Configuration。這5個核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務(wù)控制。下面對這五個核心接口分別加以介紹。
Session接口:Session接口負責執(zhí)行被持久化對象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫的交流,包含了很多常見的SQL語句。)。但需要注意的是Session對象是非線程安全的。同時,Hibernate的session不同于JSP應(yīng)用中的Http Session。這里當使用session這個術(shù)語時,其實指的是Hibernate中的session,而以后會將Http Sesion對象稱為用戶session。
Session Factory接口:Session Factory接口負責初始化Hibernate。它充當數(shù)據(jù)存儲源的代理,并負責創(chuàng)建Session對象。這里用到了工廠模式。需要注意的是Session Factory并不是輕量級的,因為一般情況下,一個項目通常只需要一個Session Factory就夠,當需要操作多個數(shù)據(jù)庫時,可以為每個數(shù)據(jù)庫指定一個Session Factory。
Configuration接口:Configuration接口負責配置并啟動Hibernate,創(chuàng)建Session Factory對象。在Hibernate的啟動的過程中,Configuration類的實例首先定位映射文檔位置、讀取配置,然后創(chuàng)建Session Factory對象。
Transaction接口:Transaction接口負責事務(wù)相關(guān)的操作。它是可選的,開發(fā)人員也可以設(shè)計編寫自己的底層事務(wù)處理代碼。
Query和Criteria接口:Query和Criteria接口負責執(zhí)行各種數(shù)據(jù)庫查詢。它可以使用HQL語言或SQL語句兩種表達方式。
四、 Spring技術(shù)
Spring是一個開源框架,它由Rod Johnson創(chuàng)建。它是為了解決企業(yè)應(yīng)用開發(fā)的復雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。它能解決企業(yè)應(yīng)用開發(fā)的復雜性,使用基本的JavaBean代替EJB,并提供了更多的企業(yè)應(yīng)用功能。Spring有如下特點:
a.輕量――從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應(yīng)用中的對象不依賴于Spring的特定類。
b.控制反轉(zhuǎn)――Spring通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進了松耦合。當應(yīng)用了IoC,一個對象依賴的其它對象會通過被動的方式傳遞進來,而不是這個對象自己創(chuàng)建或者查找依賴對象。你可以認為IoC與JNDI相反――不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。
c.面向切面――Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級服務(wù)(例如審計(auditing)和事務(wù)(transaction)管理)進行內(nèi)聚性的開發(fā)。應(yīng)用對象只實現(xiàn)它們應(yīng)該做的――完成業(yè)務(wù)邏輯――僅此而已。它們并不負責(甚至是意識)其它的系統(tǒng)級關(guān)注點,例如日志或事務(wù)支持。
d.容器――Spring包含并管理應(yīng)用對象的配置和生命周期,在這個意義上它是一種容器,你可以配置你的每個bean如何被創(chuàng)建――基于一個可配置原型(prototype),你的bean可以創(chuàng)建一個單獨的實例或者每次需要時都生成一個新的實例――以及它們是如何相互關(guān)聯(lián)的。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用。
e.框架――Spring可以將簡單的組件配置、組合成為復雜的應(yīng)用。在Spring中,應(yīng)用對象被聲明式地組合,典型地是在一個XML文件里。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你。所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測試的代碼它們也為Spring中的各種模塊提供了基礎(chǔ)支持。
五、MVC技術(shù)
MVC是一個設(shè)計模式,它強制性的使應(yīng)用程序的輸入、處理和輸出分開。使用MVC應(yīng)用程序被分成三個核心部件:模型、視圖、控制器。它們各自處理自己的任務(wù)。
1.視圖
視圖是用戶看到并與之交互的界面。對老式的Web應(yīng)用程序來說,視圖就是由JSP元素組成的界面,在新式的Web應(yīng)用程序中,JSP依舊在視圖中扮演著重要的角色,但一些新的技術(shù)已層出不窮,它們包括Macromedia Flash和象XJSP,XML/XSL,WML等一些標識語言和Web services.
如何處理應(yīng)用程序的界面變得越來越有挑戰(zhàn)性。MVC一個大的好處是它能為你的應(yīng)用程序處理很多不同的視圖。在視圖中其實沒有真正的處理發(fā)生,不管這些數(shù)據(jù)是聯(lián)機存儲的還是一個雇員列表,作為視圖來講,它只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式。
2.模型
模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在MVC的三個部件中,模型擁有最多的處理任務(wù)。例如它可能用象EJBs和ColdFusion Components這樣的構(gòu)件對象來處理數(shù)據(jù)庫。被模型返回的數(shù)據(jù)是中立的,就是說模型與數(shù)據(jù)格式無關(guān),這樣一個模型能為多個視圖提供數(shù)據(jù)。由于應(yīng)用于模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重復性。
3.控制器
控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。所以當單擊Web頁面中的超鏈接和發(fā)送JSP表單時,控制器本身不輸出任何東西和做任何處理。它只是接收請求并決定調(diào)用哪個模型構(gòu)件去處理請求,然后確定用哪個視圖來顯示模型處理返回的數(shù)據(jù)。
現(xiàn)在我們總結(jié)MVC的處理過程,首先控制器接收用戶的請求,并決定應(yīng)該調(diào)用哪個模型來進行處理,然后模型用業(yè)務(wù)邏輯來處理用戶的請求并返回數(shù)據(jù),最后控制器用相應(yīng)的視圖格式化模型返回的數(shù)據(jù),并通過表示層呈現(xiàn)給用戶。
參考文獻:
[1]張海蕃:軟件工程導論[M].北京:清華大學出版社, 2005 , 160-171
[2] Ian Somerville. Software engineering[M].北京:機械工業(yè)出版社,2004,73-84
看了“申報技師的技術(shù)論文”的人還看: