• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于JavaEE的個(gè)人博客系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

      2016-12-21 11:32:43儲(chǔ)雷張健
      電腦知識(shí)與技術(shù) 2016年28期
      關(guān)鍵詞:配置文件開發(fā)人員博客

      儲(chǔ)雷+張健

      摘要:隨著近年來(lái)以Internet為核心的計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)交流工具和互動(dòng)平臺(tái)也得到快速發(fā)展,論壇、博客、社區(qū)、空間等成為人們?nèi)粘I畹囊徊糠?。其中,博客以其?nèi)容豐富、操作簡(jiǎn)單、開放互動(dòng)、展示個(gè)性和持續(xù)更新的特點(diǎn)備受廣大網(wǎng)民的喜愛(ài)。該博客系統(tǒng)的設(shè)計(jì),基于SpringMVC框架技術(shù)和Hibernate數(shù)據(jù)庫(kù)訪問(wèn)技術(shù),后臺(tái)數(shù)據(jù)庫(kù)采用企業(yè)級(jí)大型關(guān)系數(shù)據(jù)庫(kù)Oracle進(jìn)行數(shù)據(jù)存儲(chǔ),網(wǎng)絡(luò)應(yīng)用服務(wù)器采用免費(fèi)開源的Tomcat服務(wù)器,前端頁(yè)面采用JSP(Java Server Page)動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)進(jìn)行開發(fā)。系統(tǒng)主要功能有:用戶的登錄注冊(cè),文章的添加、查詢、修改、分享和刪除,相冊(cè)的創(chuàng)建、刪除以及圖片的上傳,管理員對(duì)文章進(jìn)行管理。主要模塊分為用戶模塊 、博文模塊和相冊(cè)模塊。

      關(guān)鍵詞:地球村;博客;Spring MVC;Hibernate;JSP

      中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)28-0117-04

      Abstract: With the rapid development in recent years, with Internet as the core of computer network technology, network communication and interaction platform is developing rapidly. Forum, blog, community, space has become part of our daily life. The characteristics of blog to the rich, simple, open and interactive, the display of personality and updating by majority of Internet users. The design of the blog system, based on SpringMVC framework technology and Hibernate database access technology, The backstage database uses Oracle large enterprise relational database for data storage, The network application server using the Apache Software Foundation free open source Tomcat server, The front page using JSP dynamic web technology development. The main functions of the system are: user login registration, the query, modify, delete and share, create albums, upload pictures, delete, administrators to manage. The main module is divided into user module, blog module and photo album module.

      Key words: global village; blog; Spring MVC; Hibernate; JSP

      在互聯(lián)網(wǎng)高速發(fā)展和網(wǎng)民規(guī)模不斷擴(kuò)大的今天,人們對(duì)網(wǎng)絡(luò)交流工具和互動(dòng)平臺(tái)的要求也迅速提高,因此出現(xiàn)了如論壇、微博、博客、社區(qū)、空間等形式多樣的網(wǎng)絡(luò)互動(dòng)工具[1]。博客技術(shù)的出現(xiàn)進(jìn)一步拉近了網(wǎng)絡(luò)和人們生活之間的距離,人們可以輕松、自由、隨時(shí)隨地地創(chuàng)建、維護(hù)自己的網(wǎng)絡(luò)空間,博客也逐漸成為網(wǎng)民進(jìn)行在線溝通交流的開放平臺(tái)。博客,僅音譯,英文名為Blogger,為Web Log的混成詞。它的正式名稱為網(wǎng)絡(luò)日志;又音譯為部落格或部落閣等,是一種通常由個(gè)人管理、不定期張貼新的文章的網(wǎng)站[2]。Blog站點(diǎn)所形成的網(wǎng)狀結(jié)構(gòu)促成了不同于以往社區(qū)的Blog文化,Blog技術(shù)締造了“博客”文化。個(gè)人博客是當(dāng)今網(wǎng)絡(luò)的熱點(diǎn),越來(lái)越多的網(wǎng)民開始將自己的想法、感受、心情等以文字、圖片或多媒體的形式發(fā)布到網(wǎng)絡(luò)中,以便于與朋友或其他瀏覽者分享,方便快捷。

      在過(guò)去開發(fā)的一些網(wǎng)絡(luò)交流工具和互動(dòng)平臺(tái)中,大部分是使用的是ASP.NET + SQL Server + IIS,這種方式存在一個(gè)最大的缺點(diǎn)就是無(wú)法移植到其他平臺(tái)上運(yùn)行,即無(wú)跨平臺(tái)性。而當(dāng)前流行博客開發(fā)技術(shù)采用的是JSP + Oracle + Tomcat的模式,其最大的特點(diǎn)就是跨平臺(tái)。

      1 開發(fā)技術(shù)介紹

      1.1 JSP動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)

      JSP(Java Server Page)即Java服務(wù)器頁(yè)面,是由sun公司負(fù)責(zé)開發(fā)的一種動(dòng)態(tài)網(wǎng)頁(yè)開發(fā)技術(shù)[3]。JSP動(dòng)態(tài)網(wǎng)頁(yè)開發(fā)技術(shù)是相對(duì)于傳統(tǒng)的HTML靜態(tài)頁(yè)面而言,在JSP出現(xiàn)之前,軟件開發(fā)人員如果需要對(duì)靜態(tài)的HTML頁(yè)面進(jìn)行數(shù)據(jù)更新,必須通過(guò)Java Servlet,將要修改的數(shù)據(jù)通過(guò)out.write("tag")這種輸出流動(dòng)態(tài)打印到前端頁(yè)面。這是一項(xiàng)非常費(fèi)時(shí)費(fèi)力的工作,增加了程序員編程的復(fù)雜程度和枯燥程度。而且,傳統(tǒng)的Servlet開發(fā)會(huì)使Servlet文件中存在大量的html標(biāo)簽和多余的靜態(tài)文本,使得此文件結(jié)構(gòu)變得非常復(fù)雜混亂,進(jìn)而導(dǎo)致開發(fā)效率大大降低。JSP動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)繼承了JAVA語(yǔ)言的優(yōu)點(diǎn)[4]。JSP出現(xiàn)之后,大大降低了軟件開發(fā)人員的開發(fā)難度。JSP在傳統(tǒng)的html頁(yè)面中添加java程序段和jsp標(biāo)簽,降低了Servlet的開發(fā)難度[5]。

      JSP頁(yè)面大致由五大部分組成:靜態(tài)的html標(biāo)簽、內(nèi)容注釋、指令元素、腳本元素以及動(dòng)作元素[6]。其頁(yè)面的組成如圖1所示:

      1.2 Spring MVC框架技術(shù)

      Spring Framework是一個(gè)輕量級(jí)的、為了降低企業(yè)級(jí)應(yīng)用程序開發(fā)的復(fù)雜度的Java/Java EE全功能棧(full-stack)開源框架[7]。

      Spring的最大特點(diǎn),方便解耦合,簡(jiǎn)化開發(fā)[8]。Spring提供的IoC控制反轉(zhuǎn)容器(Inversion of Control)將各個(gè)實(shí)例之間的依賴關(guān)系交給Spring進(jìn)行控制,有效地規(guī)避了硬編碼(Hard-Coding)所帶來(lái)的程序過(guò)度耦合。通過(guò)Spring,開發(fā)人員只需要關(guān)注上層的業(yè)務(wù)邏輯,而不需要對(duì)如單例模式類和配置文件解析等底層需求編寫多余的代碼。Spring還提供了對(duì)面向方面編程(AOP)編程的支持,AOP編程解決了用傳統(tǒng)的面向?qū)ο螅∣OP)編程所無(wú)法解決的問(wèn)題。除此特性之外,Spring更容易集成各種優(yōu)秀的開發(fā)框架,如Hibernate、Struts、Mybatis和Hessian,Spring都提供了對(duì)這些ORM框架的支持[9]。同時(shí),Spring也提供了對(duì)Java EE API的進(jìn)一步封裝,大大降低了開發(fā)人員對(duì)Java EE API的使用難度[10]。傳統(tǒng)的軟件測(cè)試是開發(fā)人員比較頭疼的一個(gè)問(wèn)題,在Spring里,可以通過(guò)Junit4,使用注解對(duì)程序進(jìn)行更方便的單元測(cè)試。

      1.3 Hibernate數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)

      Hibernate是一個(gè)開源的ORM(Object Relational Mapping)數(shù)據(jù)持久層框架,它實(shí)現(xiàn)了Java對(duì)象和數(shù)據(jù)庫(kù)中數(shù)據(jù)表的一一映射,對(duì)傳統(tǒng)的JDBC操作數(shù)據(jù)庫(kù)的方法進(jìn)行簡(jiǎn)單封裝,使得操作數(shù)據(jù)庫(kù)變得簡(jiǎn)單。Hibernate不僅實(shí)現(xiàn)Java類和數(shù)據(jù)庫(kù)中的數(shù)據(jù)表的映射,還提供了非常容易使用的CRUD方法,大幅度減少開發(fā)時(shí)人工使用JDBC和SQL語(yǔ)句處理數(shù)據(jù)的時(shí)間,極大地提高了軟件開發(fā)效率。

      由圖5所示,Hibernate通過(guò)xml或properties配置文件可以實(shí)現(xiàn)java類和數(shù)據(jù)表的映射,這種方式如今依然有人在使用。但是隨著Hibernate更高版本的發(fā)布,傳統(tǒng)的這種通過(guò)引入外部配置文件的配置方式顯得復(fù)雜。在Hibernate4之后,可以直接通過(guò)注解的方式直接java類中來(lái)聲明持久性映射。

      2 系統(tǒng)的分析與設(shè)計(jì)

      2.1系統(tǒng)需求分析

      該博客系統(tǒng)的設(shè)計(jì),主要完成用戶登錄注冊(cè)模塊、博客文章的分類、展示、搜索模塊以及個(gè)人用戶對(duì)博文的發(fā)表、修改、刪除、關(guān)注和收藏、個(gè)人相冊(cè)和消息處理等模塊。匿名用戶(未注冊(cè))可以選擇注冊(cè)、瀏覽博客。匿名用戶注冊(cè)之后成為注冊(cè)用戶,注冊(cè)用戶可以對(duì)個(gè)人信息進(jìn)行管理、評(píng)論管理、文章管理和相冊(cè)管理。系統(tǒng)管理員可以進(jìn)行用戶管理和文章管理。

      2.2系統(tǒng)流程分析

      當(dāng)用戶登錄系統(tǒng)之后,首先進(jìn)入的是博客首頁(yè),用戶可以瀏覽首頁(yè)精選博客文章,此時(shí),用戶只有瀏覽的權(quán)限。用戶可以通過(guò)單擊導(dǎo)航欄的登錄\注冊(cè)按鈕進(jìn)行登陸或者注冊(cè)。如果是已經(jīng)注冊(cè)的用戶可以直接登陸,否則只能先進(jìn)行注冊(cè)。當(dāng)用戶注冊(cè)之后,可以進(jìn)入自己的博客空間,對(duì)自己的個(gè)人信息進(jìn)行管理,可以發(fā)布文章和創(chuàng)建相冊(cè),進(jìn)而上傳照片。

      如果是管理員賬戶,登錄之后可以對(duì)所有注冊(cè)用戶和文章進(jìn)行檢索和刪除操作。

      系統(tǒng)流程圖如圖7所示:

      2.3數(shù)據(jù)庫(kù)設(shè)計(jì)

      根據(jù)需求分析,數(shù)據(jù)庫(kù)的數(shù)據(jù)表以及E-R關(guān)系模型設(shè)計(jì)如下:

      1)用戶表:用戶ID、姓名、密碼、性別、出生日期、現(xiàn)居住地、故鄉(xiāng)、電子郵件、頭像、興趣愛(ài)好、注冊(cè)時(shí)間。

      2)文章表:文章ID、標(biāo)題、創(chuàng)建者ID、內(nèi)容、創(chuàng)建時(shí)間、最后一次修改時(shí)間、是否暫存到草稿箱、類別、閱讀次數(shù)、收藏次數(shù)、轉(zhuǎn)發(fā)次數(shù)、是否被刪除。

      3)評(píng)論表:評(píng)論ID、評(píng)論人ID、評(píng)論內(nèi)容、評(píng)論時(shí)間、評(píng)論是否被刪除、評(píng)論文章ID、評(píng)論人姓名。

      4)相冊(cè)表:相冊(cè)ID、相冊(cè)名稱、相冊(cè)描述、創(chuàng)建時(shí)間、創(chuàng)建人、是否加密、是否被刪除。

      5)照片表:照片ID、照片名稱、照片描述、上傳時(shí)間、所屬相冊(cè)、是否加密、保存路徑、是否刪除。

      6)轉(zhuǎn)發(fā)表:轉(zhuǎn)發(fā)ID、轉(zhuǎn)發(fā)人、轉(zhuǎn)發(fā)時(shí)間、是否取消轉(zhuǎn)發(fā)、文章ID。

      7)收藏表:收藏ID、收藏人、收藏文章標(biāo)題、收藏時(shí)間、收藏是否被刪除。

      8)粉絲表:當(dāng)前用戶ID、粉絲ID、粉絲姓名、成為粉絲的時(shí)間、是否刪除。

      9)管理員表:管理員ID、姓名、密碼、郵箱。

      核心E-R關(guān)系圖如圖8所示:

      3 功能核心代碼實(shí)現(xiàn)

      3.1 系統(tǒng)框架的搭建

      一個(gè)系統(tǒng)框架搭建的是否合理,直接影響著該系統(tǒng)的效率。次博客系統(tǒng)采用的是Spring MVC和Hibernate相結(jié)合的方式進(jìn)行開發(fā)。首先搭建SpringMVC環(huán)境:新建applicationContext.xml文件,作為Spring的核心配置文件。在此配置文件中首要的是定義受環(huán)境影響易變的變量,通過(guò)org.springframework.beans.factory.config.PropertyPlaceholderConfigurer的locations屬性來(lái)加載變量。具體配置如下:

      classpath:config/blog/blog.xml

      加載變量之后,要進(jìn)行數(shù)據(jù)源的配置,為操作數(shù)據(jù)持久層提供基礎(chǔ)。在此數(shù)據(jù)源的配置中,使用的是阿里巴巴的DruidDataSource數(shù)據(jù)源,Druid適用于大數(shù)據(jù)高并發(fā)的數(shù)據(jù)操作,此系統(tǒng)使用其作為數(shù)據(jù)源,有利于使其性能達(dá)到最優(yōu)狀態(tài)。

      3.2系統(tǒng)核心功能實(shí)現(xiàn)

      由于使用了SpringMVC并開啟了Spring的注解配置,所以該系統(tǒng)從視圖層到業(yè)務(wù)邏輯層再到最后的數(shù)據(jù)持久層,使用幾乎完全相同的調(diào)用方式?,F(xiàn)已對(duì)博客文章的操作為例說(shuō)明系統(tǒng)流程:

      (1)Controller控制層:

      @RequestMapping(value = "addEssay")

      public void createBlog(HttpServletResponse response, BlogEssayblogEssay, String option, String essayid) throws IOException {

      blogEssayService.addEssay(blogEssay);

      response.getWriter().write("博文創(chuàng)建成功");}

      (2)Service業(yè)務(wù)邏輯層:

      public void addEssay(BlogEssayblogEssay) {

      blogEssayDao.insert(blogEssay); }

      (3)Persistence數(shù)據(jù)持久化層:

      public void insert(BlogEssayblogEssay) {

      Session session = sessionFactory.getCurrentSession();

      session.save(blogEssay); }

      4 總結(jié)

      本文以JAVA EE為基礎(chǔ),采用SpringMVC + Hibernate + Oracle等技術(shù)來(lái)實(shí)現(xiàn)最終的系統(tǒng)開發(fā)與設(shè)計(jì)。在該設(shè)計(jì)中,充分體現(xiàn)了Spring MVC三層架構(gòu)技術(shù)的應(yīng)用,以及Hibernate對(duì)數(shù)據(jù)庫(kù)操作的方便快捷,采用Oracle數(shù)據(jù)庫(kù)可以應(yīng)對(duì)未來(lái)大數(shù)據(jù)量處理的考驗(yàn)。在大數(shù)據(jù)時(shí)代,此系統(tǒng)可做進(jìn)一步的升級(jí)開發(fā),例如,站內(nèi)搜索使用Solr作為搜索引擎,采用MongoDB用作索引存儲(chǔ),加入網(wǎng)頁(yè)緩存、后臺(tái)數(shù)據(jù)緩存,網(wǎng)站采用Ngix用作負(fù)載均衡。

      參考文獻(xiàn):

      [1] CNNIC.第37次中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告[EB/OL]. (2016-01-22)/[2016-03-12].http://www.cnnic.cn/hlwfzyj/hlwxzbg/201601/P020160122469130059846.pdf.

      [2] 百度百科[EB/OL]. (2016-07-14). http://baike.baidu.com/view/1509.htm.

      [3] 林龍.JSP+Servlet+Tomcat應(yīng)用開發(fā)[M]. 北京:清華大學(xué)出版社,2015.

      [4] 牛德雄.基于MVC的JSP軟件開發(fā)案例教程[M]. 北京:清華大學(xué)出版社,2014.

      [5] 李明欣,林琳.基于BootStrap3的JSP項(xiàng)目實(shí)例教程[M]. 北京:北京航空航天大學(xué)出版社,2015.

      [6] 楊誼,喻德曠.JSP網(wǎng)絡(luò)程序設(shè)計(jì)與案例開發(fā)教程[M]. 北京:人民郵電出版社,2014.

      [7] Dragos-Paul Pop, Adam Altar. Designing an MVC Model for Rapid Web Application Development[J]. Procedia Engineering,2014(2):4-5.

      [8]戴克. Spring MVC學(xué)習(xí)指南[M]. 林儀明,崔毅,譯. 北京:人民郵電出版社,2015.

      [9] Xuan Yin, Wei Zheng, Ming Zhang, et al. A modularized operator interface framework for Tokamak based on MVC design pattern[J]. Fusion Engineering and Design,2014(1):3-4.

      [10] 舒禮蓮. 基于Spring MVC的Web應(yīng)用開發(fā)[J].計(jì)算機(jī)與現(xiàn)代化,2013(11):2-3.

      猜你喜歡
      配置文件開發(fā)人員博客
      提示用戶配置文件錯(cuò)誤 這樣解決
      搭建簡(jiǎn)單的Kubernetes集群
      互不干涉混用Chromium Edge
      Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
      忘記ESXi主機(jī)root密碼怎么辦
      博客天下
      博客天下(2015年2期)2015-09-15 14:12:57
      讓W(xué)indows 10進(jìn)入開發(fā)者模式
      電腦迷(2015年12期)2015-04-29 23:22:51
      后悔了?教你隱藏開發(fā)人員選項(xiàng)
      三星SMI擴(kuò)展Java論壇 開發(fā)人員可用母語(yǔ)
      博客相冊(cè)
      博客天下(2009年12期)2009-08-21 07:35:10
      平遥县| 开封市| 肥西县| 西充县| 行唐县| 双鸭山市| 沾化县| 庆城县| 龙南县| 丰顺县| 麟游县| 汉中市| 安顺市| 报价| 和田县| 外汇| 中宁县| 刚察县| 同心县| 和林格尔县| 莱州市| 正镶白旗| 新乐市| 鄂温| 芒康县| 恩施市| 朝阳市| 康马县| 泸溪县| 潢川县| 闽清县| 黔东| 濮阳市| 安吉县| 阳山县| 阜南县| 林周县| 黑河市| 宜都市| 阿合奇县| 象山县|