解析Hibernate+Struts結(jié)合開(kāi)發(fā)_JSP教程
推薦:解析Struts配置教程Struts框架是目前流行的JSP開(kāi)發(fā)框架,本文就其進(jìn)行了基礎(chǔ)講解。 首先下載Struts軟件包,到http://struts.apache.org/下載Struts,Struts各版本的差異很大,這里已Struts1.2.9版本為例,解壓縮包內(nèi)容如下: 1、在tomcat安裝目錄下的webapps目錄中建立一個(gè)webj
隨著Java技術(shù)的逐漸成熟與完善,作為建立企業(yè)級(jí)應(yīng)用的標(biāo)準(zhǔn)平臺(tái),J2EE平臺(tái)得到了長(zhǎng)足的發(fā)展。借助于J2EE規(guī)范中包含的多項(xiàng)技術(shù):Enterprise JavaBean(EJB)、Java Servlets(Servlet)、Java Server Pages(JSP)、Java Message Service(JMS)等,開(kāi)發(fā)出了許多應(yīng)用系統(tǒng)。但是,在傳統(tǒng)J2EE應(yīng)用的開(kāi)發(fā)過(guò)程中也出現(xiàn)了一些問(wèn)題:
1)數(shù)據(jù)模型和邏輯模型之間的矛盾。目前使用的數(shù)據(jù)庫(kù)基本上都是關(guān)系型數(shù)據(jù)庫(kù),而Java本質(zhì)上是一種面向?qū)ο蟮恼Z(yǔ)言,對(duì)象在存儲(chǔ)和讀取時(shí)使用SQL和JDBC進(jìn)行數(shù)據(jù)庫(kù)操作,降低了編程的效率以及系統(tǒng)的可維護(hù)性;
2)傳統(tǒng)的J2EE應(yīng)用多采用基于EJB的重量級(jí)框架,這種框架適合于開(kāi)發(fā)大型企業(yè)應(yīng)用,但是使用EJB容器進(jìn)行開(kāi)發(fā)和調(diào)試需要耗費(fèi)大量時(shí)間。
為了降低代碼的耦合性,提高系統(tǒng)的開(kāi)發(fā)效率,本文提出了一種基于Struts框架和Hibernate框架的J2EE應(yīng)用開(kāi)發(fā)策略。
數(shù)據(jù)持久層及Hibernate
Hibernate是一個(gè)數(shù)據(jù)持久層框架,是一種實(shí)現(xiàn)對(duì)象和關(guān)系之間映射(O/R Mapping)的工具,它對(duì)JDBC進(jìn)行了輕量級(jí)的對(duì)象封裝,使程序員可以使用對(duì)象編程思想來(lái)操作數(shù)據(jù)庫(kù)。它不僅提供了從Java類到數(shù)據(jù)表的映射,也提供了數(shù)據(jù)查詢和恢復(fù)機(jī)制。相對(duì)于使用JDBC和SQL來(lái)操作數(shù)據(jù)庫(kù),使用Hibernate能大大的提高實(shí)現(xiàn)的效率。Hibernate框架用配置文件的形式來(lái)定義Java對(duì)象和數(shù)據(jù)表之間的映射關(guān)系,同時(shí)在更深的層面將數(shù)據(jù)表之間的關(guān)系解釋為Java對(duì)象之間的繼承及包含等關(guān)系。通過(guò)使用HQL語(yǔ)句將復(fù)雜的關(guān)系算法用對(duì)象的方式描述,在很大程度上簡(jiǎn)化了對(duì)數(shù)據(jù)的查詢,加快了開(kāi)發(fā)的效率。在Hibernate中有一個(gè)簡(jiǎn)單而直觀的API,用于對(duì)數(shù)據(jù)庫(kù)所表示的對(duì)象執(zhí)行查詢。要?jiǎng)?chuàng)建或修改這些對(duì)象,只需在程序中與它們進(jìn)行交互,然后告訴Hibernate保存即可。這樣,大量封裝持久化操作的業(yè)務(wù)邏輯不再需要編寫煩瑣的JDBC語(yǔ)句,從而使數(shù)據(jù)持久層得到了極大的簡(jiǎn)化。
用Struts實(shí)現(xiàn)MVC架構(gòu)
MVC(Model-View-Controller)由Trygve Reenskaug提出,首先被應(yīng)用在SmallTalk-80環(huán)境中,是許多交互和界面系統(tǒng)的構(gòu)成基礎(chǔ)。根據(jù)界面設(shè)計(jì)可變性的需求,MVC把交互系統(tǒng)的組成分解成模型、視圖、控制器三部分。
模型(Model)是軟件所處理問(wèn)題邏輯在獨(dú)立于外在顯示內(nèi)容和形式情況下的內(nèi)在抽象,封裝了問(wèn)題的核心數(shù)據(jù)、邏輯和功能的計(jì)算關(guān)系,獨(dú)立于具體的界面表達(dá)和I/O操作。視圖(View)把表示模型數(shù)據(jù)及邏輯關(guān)系和狀態(tài)的信息及特定形式展示給用戶。它從模型獲得顯示信息,對(duì)于相同的信息可以有多個(gè)不同的顯示形式或視圖。控制器(Controller)是處理用戶與軟件的交互操作的,其職責(zé)是控制提供模型中任何變化的傳播,確保用戶界面于模型間的對(duì)應(yīng)聯(lián)系;它接受用戶的輸入,將輸入反饋給模型,進(jìn)而實(shí)現(xiàn)對(duì)模型的計(jì)算控制,是使模型和視圖協(xié)調(diào)工作的部件。通常一個(gè)視圖對(duì)應(yīng)一個(gè)控制器。模型、視圖與控制器的分離,使得一個(gè)模型可以具有多個(gè)顯示視圖。如果用戶通過(guò)某個(gè)視圖的控制器改變了模型的數(shù)據(jù),所有其它依賴于這些數(shù)據(jù)的視圖都應(yīng)反映到這些變化。因此,無(wú)論何時(shí)發(fā)生了何種數(shù)據(jù)變化,控制器都會(huì)將變化通知所有的視圖,導(dǎo)致顯示的更新。這實(shí)際上是一種模型的變化-傳播機(jī)制。
Struts框架最早是作為Apache Jakarta項(xiàng)目的組成部分問(wèn)世運(yùn)做,它繼承了MVC的各項(xiàng)特性,并根據(jù)J2EE的特點(diǎn),做了相應(yīng)的變化與擴(kuò)展。Struts框架很好的結(jié)合了Jsp,Java Servlet,Java Bean,Taglib等技術(shù)。在Struts中,承擔(dān)MVC中控制器角色的是ActionServlet。ActionServlet是一個(gè)通用的控制組件。這個(gè)控制組件提供了處理所有發(fā)送到Struts的HTTP請(qǐng)求的入口點(diǎn)。它截取和分發(fā)這些請(qǐng)求到相應(yīng)的動(dòng)作類(這些動(dòng)作類都是Action類的子類)。另外控制組件也負(fù)責(zé)用相應(yīng)的請(qǐng)求參數(shù)填充Action Form(FromBean),并傳給動(dòng)作類(ActionBean)。動(dòng)作類訪問(wèn)核心商業(yè)邏輯,即訪問(wèn)Java Bean或調(diào)用EJB。最后動(dòng)作類把控制權(quán)傳給后續(xù)的JSP文件,由JSP文件生成視圖。所有這些控制邏輯利用Struts-config.xml文件來(lái)配置。在Struts框架中,視圖主要由JSP生成頁(yè)面完成,Struts提供豐富的JSP標(biāo)簽庫(kù),這有利于分開(kāi)表現(xiàn)邏輯和程序邏輯。模型以一個(gè)或多個(gè)Java Bean的形式存在。在Struts中,主要存在三種Bean,分別是:Action,ActionForm,EJB或者Java Bean。
分享:解析簡(jiǎn)單計(jì)數(shù)器的并發(fā)問(wèn)題%@pagelanguage=javacontentType=text/html;charset=UTF-8 pageEncoding=UTF-8% EhtmlPUBLIC-//W3C//DTDHTML4.01TR/html4/loose.dtd html head metahttp-equiv=Content-Typecontent=text/html;charse
- jsp response.sendRedirect不跳轉(zhuǎn)的原因分析及解決
- JSP指令元素(page指令/include指令/taglib指令)復(fù)習(xí)整理
- JSP腳本元素和注釋復(fù)習(xí)總結(jié)示例
- JSP FusionCharts Free顯示圖表 具體實(shí)現(xiàn)
- 網(wǎng)頁(yè)模板:關(guān)于jsp頁(yè)面使用jstl的異常分析
- JSP頁(yè)面中文傳遞參數(shù)使用escape編碼
- 基于jsp:included的使用與jsp:param亂碼的解決方法
- Java Web項(xiàng)目中連接Access數(shù)據(jù)庫(kù)的配置方法
- JDBC連接Access數(shù)據(jù)庫(kù)的幾種方式介紹
- 網(wǎng)站圖片路徑的問(wèn)題:絕對(duì)路徑/虛擬路徑
- (jsp/html)網(wǎng)頁(yè)上嵌入播放器(常用播放器代碼整理)
- jsp下顯示中文文件名及絕對(duì)路徑下的圖片解決方法
JSP教程Rss訂閱編程教程搜索
JSP教程推薦
猜你也喜歡看這些
- 如何將java源碼打成文檔?
- jsp response.sendRedirect不跳轉(zhuǎn)的原因分析及解決
- json實(shí)現(xiàn)jsp分頁(yè)實(shí)例介紹(附效果圖)
- 解析關(guān)于jsp和servlet中的亂碼問(wèn)題
- 實(shí)例講解在JSP開(kāi)發(fā)中的對(duì)象和范圍屬性
- jsp中session過(guò)期設(shè)置及web.xml配置學(xué)習(xí)
- JSP中如何發(fā)送一個(gè)動(dòng)態(tài)圖像
- J2ME與MIDP開(kāi)發(fā)1
- jsp連接oracle 數(shù)據(jù)庫(kù)示例
- 解答JavaMail的安裝和配置問(wèn)題
- 相關(guān)鏈接:
- 教程說(shuō)明:
JSP教程-解析Hibernate+Struts結(jié)合開(kāi)發(fā)。