999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

J2EE基于Struts和Hibernate框架的新聞發布系統分析與設計

2012-01-15 06:02:48邵春暉
電子設計工程 2012年15期
關鍵詞:頁面數據庫模型

崔 荔, 邵春暉, 崔 磊

(1.長安大學 信息工程學院,陜西 西安 710064;2.西北大學 信息學院,陜西 西安 710064)

隨著計算機技術、網絡技術、通信技術的迅速發展和人們生活水平及需求的不斷提高,目前,網絡正以一種前所未有的沖擊力在影響著人類的活動,包括人類的生產和日常生活。網絡的快速發展,顛覆了傳統的信息傳播方式,沖破了傳統的時間,空間的局限性。極大的改變了人類的物質文化生活水品。新聞發布系統由此應運而生,更大加快了人們信息的接收速度。

針對新聞發布系統的發展現狀,文中提出了一種基于J2EE平臺的新聞發布系統,在本系統中,利用MVC設計模式,采用struts框架和hibernate框架的整合來進行軟件開發,通過兩個框架的整合設計,可以給程序帶來開發靈活、層次清晰、低耦合、后期易維護的好處。

1 系統相關技術介紹

1.1 J2EE的概念

J2EE是Java2平臺企業版,它的核心是一組技術規范與指南,其中所包含的各類組件、服務架構及技術層次,均有共同的標準及規格,讓各種依循J2EE架構的不同平臺之間,存在良好的兼容性,解決過去企業后端使用的信息產品彼此之間無法兼容,企業內部或外部難以互通的窘境[1]。

1.2 MVC設計模式簡介

基于JAVA的動態Web開發有兩種常用的開發模型:Model1和 Model2。

在Model1模式下,整個Web應用幾乎全部由JSP頁面組成,JSP頁面接收處理客戶端請求,對請求處理后直接做出響應,用少量的JavaBean來處理數據庫連接、訪問等操作。Model1模式的實現比較簡單,適用于快速開發小規模項目,但從工程化的角度看,它的局限性非常明顯:JSP頁面身兼View和Controller兩種角色,將控制邏輯和表現邏輯混雜在一起,從而導致代碼的重用性非常低,給應用的可擴展性和可維護性增加了難度。

Model2模式實現了業務邏輯、顯示邏輯和控制邏輯的分離,即是基于MVC的框架。MVC框架也就是模型-視圖-控制器(Model-View-Controller)設計模式。其中 M代表Model,V代表View,C代表Controller。MVC設計模式的目的是增加代碼的可重用性,減少數據描述和應用操作的可耦合度,并提高代碼的可讀性。同時,也可提高系統的可維護性、可擴展性、靈活性以及封裝性。

1.3 Struts框架簡介

Struts框架[2]其實是 MVC設計模式在 J2EE Web組件技術上的具體應用,在該框架中,主要是利用MVC設計模式中的模型(M)、視圖(V)、控制器(C)3 種不同形式的組件來構建具體的Web應用系統。其中,模型組件由JavaBean承擔,完成業務邏輯和數據處理等方面功能;視圖組件由JSP頁面承擔,完成展現前臺界面數據的功能;控制器組件由Struts的Action類承擔,完成視圖組件與模型組件的交互功能。

1.4 Hibernate框架簡介

對于J2EE應用而言,不可避免的涉及數據庫的訪問操作,而目前的企業應用系統開發中所使用的數據庫大部分都是關系型數據庫,在傳統的Web應用開發中,直接使用JDBC與數據庫交互,需要編寫大量的SQL語句,修改維護都很不方便,而且破壞了Java的面向對象設計思想,因此需要一種對象與關系型數據庫之間的映射機制,以便后期在修改業務邏輯時是修改映射文件而不是Java代碼。Hibernate[3]作為目前流行的對象關系映射(Object/Relation Mapping,ORM)框架,對JDBC進行了輕量級的對象封裝,使得我們可以以面向對象的思想來操縱數據庫,Hibernate可以應用在任何使用JDBC的場合,因此從某種意義上說,Hibernate不僅能夠取代JDBC,而且還進一步完善和擴展了JDBC的功能。

1.5 MySQL數據庫簡介

MySQL[4]是一種關聯數據庫管理系統,關聯數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。MySQL使用的是結構化查詢語言 (SQL),SQL是用于訪問數據庫的最常用標準化語言。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站數據庫。

2 運用Struts和Hibernate框架開發系統

2.1 系統構成

新聞發布系統[5]是將新聞、信息欄目和業界動態等信息集中起來發布、管理、查詢等的一種網站應用程序。網站內容通過后臺界面加入數據庫,然后通過已有的網頁模板格式發布到網站前臺界面上。

系統從邏輯上可分為兩大模塊:前臺新聞瀏覽模塊和后臺新聞管理模塊[6]。前臺新聞瀏覽模塊包含用戶登錄、新聞主頁、新聞瀏覽、新聞訪問統計4個子模塊。后臺新聞管理模塊包含用戶管理、新聞類型管理、新聞信息管理3個子模塊。系統體系結構圖如圖1所示。

2.2 系統的總體架構

圖1 系統體系結構圖Fig.1 System structure

考慮到新聞發布系統后期的可維護性與可擴展性,使用Struts與Hibernate框架整合開發能很好的降低程序的耦合性[7]。系統總體上可分為以下5個層次:

1)客戶層:運行于客戶機器上的瀏覽器,處理與用戶的交互;

2)視圖層:視圖是應用程序的用戶界面,實現模塊的外觀,它是應用程序的外觀表現,可以訪問業務邏輯層的數據,而不必關心業務邏輯和控制器的具體情況。它只是作為用戶輸入數據并進行操作的方式和界面。整個視圖層建立在Struts框架基礎上,其中Model(模型組件)交由業務邏輯層實現,View(視圖組件)由JSP頁面組成,Controller(控制器組件)則由Action類與Struts的配置文件struts.xml組成。

3)業務邏輯層:完成系統所需的業務,為視圖層提供所需要的業務方法,由JavaBean等構成。由于模型與數據的格式無關,因此一個模型可以為多個視圖提供數據,從而增強代碼的可重用性。

4)數據持久層:由 Hibernate組成,Hibernate從數據庫層中獲取數據,然后生成持久對象(Persistent Object,PO),再把PO傳給業務邏輯層。

5)數據庫層:存放新聞發布系統相關信息數據。

2.3 Struts框架在系統中的應用

Struts框架是一個基于 Model-View-Controller(MVC)設計模式的應用框架,它將頁面顯示、業務邏輯處理和數據處理功能在邏輯上分離,從而降低了耦合度。Struts繼承了MVC的各項特性,并根據J2EE的特點,做了相應的變化與擴展。本系統的表現層由Struts框架實現,通過配置文件struts.xml將模型、視圖、控制器各組件聯系起來。控制器負責應用程序的調度,它負責接收從視圖層傳來的客戶請求,然后通過配置文件將不同的請求交予不同的模型去處理,同時將相關數據傳遞到模型層,模型層對數據處理完畢之后再返回給控制器,控制器將獲得的數據轉發給視圖層,最終由視圖層經過瀏覽器的解析把數據呈獻給客戶。

以保存新聞操作為例,struts.xml的業務邏輯代碼如下:

當管理員在瀏覽器中點擊保存新聞后,該JSP頁面會提交一個名為save的請求,struts框架會在struts.xml配置文件中尋找對應的action name,找到后在NewsAction類中找到save方法。save方法進行數據持久化操作后,返回字符串為success時(新聞保存成功),瀏覽器跳轉到success.jsp頁面,返回字符串為error時 (新聞保存失敗),瀏覽器則跳轉到error.jsp頁面。

2.4 Hibernate框架在系統中的應用

基于Hibernate框架構建的數據持久層需要創建數據訪問對象(DAO)、值對象(VO)、和 Hibernate Mappings映射文件。其中每個VO封裝了持久層對象的數據,對應于數據庫中的一張表,由一些屬性及對應的getter/setter方法組成;DAO用于持久化VO,每個DAO類均定義了查詢、插入、更新、刪除等數據庫操作的基本方法;Hibernate Mappings映射文件告訴Hibernate怎樣把對象持久化到關系數據庫中。

以持久化新聞操作為例,將一條新聞保存在數據庫中需要以下4個步驟:

1)配置 hibernate.cfg.xml文件

在hibernate的配置文件中定義連接數據庫的相關信息,部分代碼如下所示:

com.mysql.jdbc.Driver

jdbc:mysql://localhost:3306/cms

root

123456

org.hibernate.dialect.MySQLDialect

……

2)定義映射文件News.hbm.xml

每個持久化類都要有與之對應的映射文件,映射文件名為“類名.hbm.xml”,這個映射文件定義O/R映射的規則。例如持久化類News包含title、content、click 3個屬性,其對應的映射文件News.hbm.xml包含了OR映射所需的元數據,元數據中 包含了持久化類的聲明,以及類中各屬性到數據庫表各字段的映射關系,部分代碼如下所示:

3)定義持久化類News.java:

持久化類是指需要被hibernate持久化到數據庫中的類,持久對象是一個普通的JavaBean,部分代碼如下所示:

public class News{

private int id;//新聞編號

private String title;//新聞標題

private String content;//新聞內容

private int click;//新聞點擊次數

public String getId() {return id;}

public void setId(int id) {this.id=id;}

public String getTitle() {return title;}

public void setTitle(String title) {this.title=title;}

public String getContent() {return content;}

public void setContent (String content) {this.content=content;}

public int getClick() {return click;}

public void setClick(int click) {this.click=click;}

}

4)定義持久化操作類NewsDAO.java

Hibernate為Java程序員提供了面向對象的API和接口來操縱數據庫,從而避免了在業務邏輯中嵌入大量的JDBC訪問和事物控制代碼。在開發中通常利用Configuration、SessionFactory、Session、Transaction、Query 這 5 個核心接口對持久 化對象進行存儲和事務控制,部分代碼如下所示:

public class NewsDAO{

public void save(){

Configuration cfg=new Configuration ();//配 置 和 啟 動Hibernate

SessionFactory sf=cfg.configure().buildSessionFactory();//初始化 Hibernate

Session session=sf.getCurrentSession();//創建 session 實例

session.beginTransaction();//事物開始

session.save(news);//保存持久化對象

session.getTransaction().commit();//事務提交

}

}

3 結束語

文中分析了Struts和Hibernate框架實現的原理,結合新聞發布系統提出了一種基于MVC設計模式的Struts與Hibernate整合使用的Web應用系統,著重介紹了框架模型主要層次的技術實現。通過將兩種技術結合起來開發J2EE應用,能極大地提高開發效率,使系統更加具有靈活性。

[1]白勝普.J2EE企業級應用測試實踐[M].北京:清華大學出版社,2009.

[2]孫衛琴.精通Struts基于MVC的Web設計與開發[M].北京:電子工業出版社,2004.

[3]王國輝,馬文強.Hibernate應用開發完全手冊[M].北京:人民郵電出版社,2007.

[4]李立功,趙揚.MySQL程序設計與數據庫管理[M].北京:科學出版社,2001.

[5]茹蓓,張磊.新聞信息發布管理系統的現狀及改進[J].平原大學學報,2004(6):60-61.RU Bei,ZHANG Lei.The current situation and improving of the news announcing and managing system[J].Journal of Pingyuan University,2004(6):60-61.

[6]韓霄.基于J2EE的新聞發布系統的分析與設計[J].網絡安全技術與應用,2011(10):61-63.HAN Xiao.Analysis and design of News Releases system based on J2EE[J].Network Security,2011(10):61-63.

[7]董袁泉.基于Hibernate和 Struts框架的J2EE應用開發[J].沙洲職業工學院學報,2011(3):10-13.DONG Yuan-quan.J2EE Application and development based on the hibernate and struts framework[J].Journal of Shazhou Professional Institute of Technology,2011(3):10-13.

猜你喜歡
頁面數據庫模型
大狗熊在睡覺
一半模型
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
數據庫
財經(2017年2期)2017-03-10 14:35:35
3D打印中的模型分割與打包
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: 免费国产一级 片内射老| 国产视频只有无码精品| 亚洲婷婷六月| 国产欧美亚洲精品第3页在线| 天堂成人在线| 操美女免费网站| 日韩在线观看网站| 女人一级毛片| 亚洲乱伦视频| 精品久久蜜桃| 伊人无码视屏| 欧美笫一页| 国产凹凸视频在线观看| 欧美在线一级片| 亚洲人成在线免费观看| 波多野结衣二区| 91免费国产高清观看| 日韩精品欧美国产在线| 亚洲成人动漫在线| 国产精品漂亮美女在线观看| 伊人久久精品无码麻豆精品| 中文字幕久久波多野结衣| 亚洲另类色| 久久综合结合久久狠狠狠97色| 日本精品影院| 青青青亚洲精品国产| 欧美A级V片在线观看| 色综合久久无码网| 中文字幕免费在线视频| 青草视频网站在线观看| 91免费片| 97人妻精品专区久久久久| 国产免费黄| 91无码视频在线观看| 亚洲精品日产精品乱码不卡| 亚洲色图欧美激情| 亚洲va视频| 1769国产精品视频免费观看| 亚亚洲乱码一二三四区| 青青草原国产一区二区| 精品人妻系列无码专区久久| 国产主播喷水| 亚洲最大综合网| 亚洲AV永久无码精品古装片| 一区二区三区成人| AV天堂资源福利在线观看| 欧美亚洲第一页| 日本不卡视频在线| 91麻豆精品视频| 欧美劲爆第一页| 欧美亚洲国产日韩电影在线| 亚洲va在线观看| 国内精品九九久久久精品| 夜夜拍夜夜爽| 日本亚洲国产一区二区三区| 国产无码精品在线| 高清大学生毛片一级| 欧美精品综合视频一区二区| 亚洲人精品亚洲人成在线| 日韩成人高清无码| 欧美亚洲综合免费精品高清在线观看| 国产精品久久精品| 毛片网站免费在线观看| 亚洲午夜福利精品无码不卡 | 在线五月婷婷| 天堂中文在线资源| 日本高清免费不卡视频| 欧美一级高清视频在线播放| 亚洲五月激情网| 无码啪啪精品天堂浪潮av| 综合色亚洲| 天天躁狠狠躁| 亚欧成人无码AV在线播放| 亚洲乱亚洲乱妇24p| 亚洲日本一本dvd高清| 久久午夜夜伦鲁鲁片不卡 | 久久黄色影院| 日韩小视频在线观看| 免费a在线观看播放| 亚洲香蕉伊综合在人在线| 国产欧美又粗又猛又爽老| 欧美在线一级片|