亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于SSH框架的個性化博客系統(tǒng)設(shè)計與實現(xiàn)

        2017-01-21 15:18:56楊陽
        軟件導刊 2016年12期

        楊陽

        摘 要:隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,人們的互聯(lián)網(wǎng)思維也越來越成熟,很多人期望在互聯(lián)網(wǎng)中更好地展現(xiàn)自己。傳統(tǒng)的博客系統(tǒng)由于功能固定而缺少靈活性。提出了一種基于Struts2、Spring和Hibernate框架的個性化博客系統(tǒng),該系統(tǒng)能幫助人們設(shè)計自定義博客,從而達到更好地展示網(wǎng)民個性的目的。

        關(guān)鍵詞:個性化博客;SSH;Struts2+;Spring+;Hibernate

        DOIDOI:10.11907/rjdk.162409

        中圖分類號:TP319

        文獻標識碼:A文章編號:1672-7800(2016)012-0074-03

        0 引言

        隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,互聯(lián)網(wǎng)人群網(wǎng)絡(luò)素養(yǎng)越來越高。人們不再僅僅局限于在微信、微博、QQ互聯(lián)等應用中作為信息的接受者,而是渴求擔當信息的制造者和發(fā)布者。在這個人人都能運營自媒體的Web3.0時代,個人獨特的見解和所產(chǎn)生的信息價值正深刻改變并指引著互聯(lián)網(wǎng)的發(fā)展。以博客技術(shù)為代表的互聯(lián)網(wǎng)應用,作為一種全新的載體承載著人們個性化的表達與展示。針對信息內(nèi)容生產(chǎn)者的互聯(lián)網(wǎng)博客應用系統(tǒng)有多種形式,如新浪博客,性能穩(wěn)定、容量無限,但存在可擴展性較差的問題,人們只能使用系統(tǒng)提供的固有功能,而不能將個人的想法融入到博客設(shè)計中。鑒于此,本文提出了基于Struts2、Spring和Hibernate框架(統(tǒng)稱SSH框架)的個性化博客系統(tǒng)。在SSH框架下,使用者可根據(jù)自己的需要,規(guī)劃博客系統(tǒng)功能,制作個人特色的系統(tǒng)界面,從而更好地在互聯(lián)網(wǎng)時代展示自己。

        1 系統(tǒng)框架

        1.1 基于MVC模式的Struts2

        基于WebWork,Struts2發(fā)展為MVC[1]框架,它創(chuàng)造性地將數(shù)據(jù)庫邏輯(Model層)、頁面展示(View層)與邏輯控制(Controller層)分離,從而使整個應用程序代碼更加健壯、優(yōu)雅。當獲取客戶端發(fā)送的請求后,作為控制器的過濾器類StrutsPrepareAndExecuteFilter,根據(jù)struts-config.xml中的配置,調(diào)用Action類中的執(zhí)行方法。該方法在經(jīng)過Model層計算后,控制器向客戶端呈現(xiàn)顯示頁面。Struts2的MVC模式有效增強了信息系統(tǒng)的復用性和可維護性[2]。

        1.2 基于IoC和AOP的Spring

        Spring是一個輕量級、一站式的Java企業(yè)級應用解決方案,它提供選擇式的功能集成。本文使用Spring的IoC(Inversion of Control,控制反轉(zhuǎn))[3]和AOP(Aspect-Oriented Programming,面向切面編程)[4]功能模塊。其中,控制反轉(zhuǎn)IoC主要指由宿主容器完成依賴對象的初始化和注入,而不是傳統(tǒng)應用程序中主動去獲取所依賴對象。面向切面編程AOP則是對面向?qū)ο缶幊蘋OP的重要補充,它將散布在核心功能代碼周圍的權(quán)限控制、日志打印、事務管理等業(yè)務功能抽取出來,形成橫斷切面,從而降低程序耦合度、提高內(nèi)聚性。

        1.3 基于O/R-Mapping的Hibernate

        Hibernate是流行的對象/關(guān)系映射(ORM)框架[5],它將程序數(shù)據(jù)以類表映射的形式持久化到數(shù)據(jù)庫,從而使程序數(shù)據(jù)獲得JVM之外的生命周期。這種對象/關(guān)系映射支持繼承、多態(tài)、關(guān)聯(lián)、組合、集合等多種面向?qū)ο蟮奶卣骱托问?。除此之外,Hibernate還支持加載、多種抓取策略,基于自動版本和時間戳的鎖機制,從而提高應用程序性能。在可伸縮性方面,Hibernate既適合內(nèi)部網(wǎng)中小規(guī)模訪問級別應用,也服務于并發(fā)量高的集群式應用;在可靠性和擴展性方面,Hibernate具有良好的穩(wěn)定性和可配置性。

        1.4 SSH整合

        SSH指Struts2、Spring、Hibernate三大框架整合實現(xiàn)MVC模式架構(gòu),以達到程序系統(tǒng)的穩(wěn)定性、安全性、高效性。與傳統(tǒng)的EJB(企業(yè)級JavaBean)[6]相比,SSH是輕量級的企業(yè)級應用框架,強調(diào)低侵入性、組件間的松散耦合以及分層性,從而能夠快速適應需求變更和問題定位,極大提高了程序開發(fā)效率。在整合過程中,由Spring起中心橋接作用,分別將Spring與Struts、Hibernate整合,并進行單元(JUnit)測試,從而完成從應用表示層、業(yè)務邏輯層、數(shù)據(jù)持久層的連接貫通。

        2 系統(tǒng)功能

        在信息量急度膨脹時代,每個人都作為一個信息源存在。如何快速保存、整理、升華個人思想,并在互聯(lián)網(wǎng)中進行交流、溝通、傳播,是目前互聯(lián)網(wǎng)應用亟待解決的問題。針對這些問題,本文試圖從個性化博客方向作一些嘗試和努力。首先,博客是個人自我展示的陣地和平臺,可以通過博客宣傳個人觀點、看法以及認識;其次,通過博客可以實現(xiàn)問題的開放交流、討論;第三,用戶可以定制功能模塊,如相冊、頁面皮膚、裝飾等。在安全方面,既要有認證、授權(quán)功能,也要保證會話管理中用戶個性化信息安全;在性能方面,可通過反向代理服務器、連接池、一二級緩存等措施來加速應用程序。

        基于以上目標,本文個性化博客系統(tǒng)具有以下基本功能,如圖1所示。

        (1)文章編輯發(fā)布模塊。該模塊集成百度的富文本編輯器UEditor,支持可視化編輯和HTML代碼編輯。發(fā)布前支持預覽和按時間自動保存草稿功能,編輯完成后可設(shè)定文章分類和權(quán)限公開程度。

        (2)文章列表展示模塊。該模塊分布在首頁和后臺管理頁面中。在首頁,文章列表支持分頁顯示和動態(tài)加載,同時支持基于主題和內(nèi)容的信息檢索。在后臺管理頁面,采用EasyUI前端框架展示文章的增刪改查操作。

        (3)首頁界面裝飾模塊。該模塊主要提供頁面元素拖拉式排版、背景調(diào)色和頁面皮膚換膚功能,同時提供首頁配飾的增加,如小時鐘、HTML5動態(tài)小游戲、音樂視頻等。

        (4)留言管理模塊。該模塊在于加深博主、訪客及朋友之間的交流,在展現(xiàn)形式上支持樹形列表。每當有新的留言和回復,都將以站內(nèi)信息的形式通知接受方。

        (5)相冊上傳下載模塊。支持多照片和視頻上傳,并為上傳照片增加自定義水印。在相片展示時,可設(shè)定瀏覽權(quán)限和相冊封面。

        (6)安全功能模塊。根據(jù)用戶權(quán)限設(shè)置操作權(quán)限,對用戶進行權(quán)限分類管理。

        除了以上功能外,還需要額外增加其它輔助功能,如日志管理、數(shù)據(jù)校驗、多用戶管理等。

        3 關(guān)鍵技術(shù)分析

        3.1 Struts2、Spring、Hibernate整合

        三大框架的整合過程包括兩個階段[7]:①Struts2與Spring整合;②Spring與Hibernate整合。對于第一階段,要在web.xml中分別加入Spring初始化容器對象的監(jiān)聽器ContextLoaderListener、Struts2的核心過濾器StrutsPrepareAndExecuteFilter, 還需要加入Struts2與Spring之間的整合包,這樣,在配置文件struts.xml中,配置元素action的class屬性不再是類全稱,而是Spring容器中已配置的bean名稱。對于第二階段,只需將SessionFactory實例交給Spring容器管理,即在applicationContext.xml中指明數(shù)據(jù)庫連接池相關(guān)信息、hibernate配置文件所在位置。另外,配置聲明式事務管理。在進行上述配置后,通過簡單的增刪改查測試完成整合檢驗。

        3.2 DAO設(shè)計模式

        DAO(Data Access Object)設(shè)計模式是J2EE中常用的設(shè)計模式。通過DAO接口和DAO實現(xiàn)類,將數(shù)據(jù)庫底層操作和高層業(yè)務邏輯分離。針對每個實體對象,都有相對應的DAO接口和DAO實現(xiàn)類。而對于各個DAO接口中的重復操作,可以抽取出來形成泛型類BaseDao,其中T的真實類型需要通過Java反射技術(shù)獲得。DAO模式使項目層次更加清晰,劃清了事務界限,增加了項目的可維護性。

        3.3 基于Shiro的權(quán)限安全管理

        Apache Shiro是簡單易用的Java安全處理框架,其提供了認證、授權(quán)、加密以及會話管理等功能。傳統(tǒng)的用戶認證授權(quán)常常采用基于URL攔截的形式,將權(quán)限操作對應的URL加入到數(shù)據(jù)表的字段中,將過濾器中獲取的訪問URL與用戶對應角色所擁有的權(quán)限表中的url字段相比對,成功后繼續(xù)訪問資源。這種方式的開發(fā)效率和安全性較低,一般使用成熟的權(quán)限管理框架。Shiro作為一款輕量級框架,可以實現(xiàn)B/S、C/S、分布式系統(tǒng)的權(quán)限管理,已被越來越多的開發(fā)人員所使用。Shiro中有一個重要的概念:Realm,通過自定義的Realm可以獲取數(shù)據(jù)庫中的用戶、角色及權(quán)限信息。通過Shiro配置式的管理方式,簡化了權(quán)限管理操作,增強了系統(tǒng)的結(jié)構(gòu)性和整體性。

        4 系統(tǒng)實現(xiàn)

        4.1 數(shù)據(jù)庫設(shè)計

        系統(tǒng)基本實體類包括用戶類、文章類、留言類、權(quán)限類、相冊類、相片類。每個實體類在數(shù)據(jù)庫中都有一張對應的表結(jié)構(gòu)。本系統(tǒng)采用MySQL數(shù)據(jù)庫。鑒于篇幅有限,本文僅給出用戶、文章的實體表結(jié)構(gòu),如表1、表2所示。

        根據(jù)業(yè)務需求,實體類與實體類之間發(fā)生關(guān)聯(lián)關(guān)系,如圖2所示。

        4.2 系統(tǒng)流程設(shè)計

        系統(tǒng)流程如圖3所示,分為瀏覽首頁、登錄注冊、驗證、系統(tǒng)管理4個部分。首先,用戶輸入系統(tǒng)網(wǎng)址瀏覽博客首頁,需要進行賬戶注冊。然后根據(jù)注冊帳號登錄,登錄過程中涉及到基于Shiro的認證和授權(quán)過程。進入系統(tǒng)管理界面后,既可以對博客進行個性化自定義設(shè)置,也可以對博客文章、圖片、評論進行綜合管理。

        4.3 系統(tǒng)配置文件

        根據(jù)系統(tǒng)框架和功能,系統(tǒng)配置以下文件,分別是Spring容器配置文件applicationContext.xml、 Struts2配置文件struts.xml、Hibernate實體/關(guān)系映射配置文件xxx.hbm.xml、日志配置文件log4j.xml、Shiro、Spring的整合配置文件applicationContext-shiro.xml以及web.xml。下面給出web.xml配置代碼:

        <?xml version="1.0" encoding="UTF-8"?>

        xmlns="http://java.sun.com/xml/ns/javaee"

        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">

        Blog

        shiroFilter

        org.springframework.web.filter.DelegatingFilterProxy

        targetFilterLifecycletrue

        targetBeanNameshiroFilter

        shiroFilter

        /*

        org.springframework.web.context.ContextLoaderListener

        contextConfigLocationclasspath:applicationContext*.xml

        struts2

        org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter

        struts2

        /*

        5 結(jié)語

        本文提出了一種基于SSH框架的個性化博客系統(tǒng)設(shè)計與實現(xiàn)方法,分別介紹了Struts2、Spring、Hibernate的特點及功能。在關(guān)鍵技術(shù)方面,提供了三大框架的整合方法、DAO設(shè)計模式以及基于Shiro的權(quán)限安全框架實施方案。在系統(tǒng)實現(xiàn)方面,對數(shù)據(jù)庫設(shè)計、系統(tǒng)流程設(shè)計及系統(tǒng)配置文件進行了討論。作為一款個性化博客系統(tǒng),重在強調(diào)用戶的個性化定制操作,展示個人觀點的特色頁面和用戶交流組件。

        參考文獻:

        [1] PRAVEEN GUPTA,PROF M C GOVIL.MVC design pattern for the multi framework distributed applications using XML,spring and struts framework[J].International Journal On Computer Science And Engineering,2010, 2(4):1047-1051.

        [2] 林萍.基于SSH+DWR的高校科研管理系統(tǒng)研究與實現(xiàn)[J].計算機應用與軟件,2014,31(7):164-168.

        [3] 閻娟娟,陳波,高秀娥.基于SSH架構(gòu)的INQAS的設(shè)計與實現(xiàn)[J].計算機應用與軟件,2010,27(3):22-26.

        [4] 劉榮輝,薛冰.基于Annotation的Spring AOP系統(tǒng)設(shè)計[J].計算機應用與軟件,2009,26(9):264-267.

        [5] 吳茂昌,陽玉琴.基于MVC模式的Java主流框架整合技術(shù)研究[J].計算機與數(shù)字工程,2009,37(10):91-92.

        [6] 陳立巖.EJB組件技術(shù)及應用[J].計算機技術(shù)與發(fā)展,2007,17(3):458-461.

        [7] 劉靜,刑藏菊,龔凡蕾.基于SSH的高校MBA管理系統(tǒng)設(shè)計與實現(xiàn)[J].計算機應用與軟件,2011,28(11):157-159.

        (責任編輯:杜能鋼)

        国产超碰在线91观看| 免费无码av片在线观看网址| 日韩AV有码无码一区二区三区| 久久麻豆精亚洲av品国产精品| 国产精品自拍首页在线观看| 久久综合亚洲鲁鲁五月天| 9久久婷婷国产综合精品性色| 轻点好疼好大好爽视频| 人妻熟妇乱又伦精品视频app| 久久亚洲国产精品五月天| 最新国产成人自拍视频| 草逼短视频免费看m3u8| 国产亚洲精品成人aa片新蒲金| 欧美日韩一卡2卡三卡4卡 乱码欧美孕交 | 成年女人粗暴毛片免费观看| 亚洲色图+国产精品| 亚洲综合网站精品一区二区| 午夜视频一区二区在线观看| 欧美丰满老熟妇aaaa片| 亚洲色欲久久久久综合网 | 精品国产亚洲av高清大片| 玩50岁四川熟女大白屁股直播 | 国产精品一久久香蕉国产线看观看| 少妇极品熟妇人妻高清| 国产一区二区三区精品乱码不卡 | 一卡二卡国产av熟女| 看久久久久久a级毛片| 四虎成人精品无码永久在线| 少妇被粗大猛进进出出| 日本av一级片免费看| 91九色最新国产在线观看| 国产在线播放免费人成视频播放 | 国产成人一区二区三区在线观看| 精品一区二区三区久久久| 久草精品手机视频在线观看| 久久国产精品亚洲我射av大全| 国产乱人无码伦av在线a| 999久久久免费精品国产| 亚洲精品乱码久久久久久按摩高清| 少妇一区二区三区乱码| 国产一区二区三区中文在线|