網(wǎng)站設(shè)計(jì)及其實(shí)現(xiàn)_第1頁
網(wǎng)站設(shè)計(jì)及其實(shí)現(xiàn)_第2頁
網(wǎng)站設(shè)計(jì)及其實(shí)現(xiàn)_第3頁
網(wǎng)站設(shè)計(jì)及其實(shí)現(xiàn)_第4頁
網(wǎng)站設(shè)計(jì)及其實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

XX網(wǎng)站設(shè)計(jì)和實(shí)現(xiàn)摘要網(wǎng)絡(luò)科學(xué)技術(shù)飛速發(fā)展,科技產(chǎn)品層出不窮,對于企業(yè)或企業(yè),宣傳自己理念及推廣所開發(fā)產(chǎn)品是至關(guān)關(guān)鍵。假如大家想要在更短時(shí)間內(nèi),了解到更多相關(guān)科技產(chǎn)品信息,一個(gè)比較便捷方法便是經(jīng)過網(wǎng)絡(luò)來訪問。xx網(wǎng)站設(shè)計(jì),它將需求、產(chǎn)品銷售和用戶服務(wù)高度緊密結(jié)合在一起,大大提升了效率,方便用戶了解及訂購適宜軟件來提升工作效率,使得用戶和企業(yè)能夠輕松交互。網(wǎng)站以jsp作為前臺關(guān)鍵展示工具,使用MVC設(shè)計(jì)模式,根據(jù)工廠模式解耦,設(shè)計(jì)程序底層使用Hibernate持久層框架。Spring容器管理對象,Struts2結(jié)合jsp做前臺展示,實(shí)現(xiàn)了產(chǎn)品公布和展示,新聞公布,企業(yè)精神理念展示,留言意見反饋,用戶實(shí)時(shí)咨詢,后臺管理等功效。關(guān)鍵詞:系統(tǒng);電子商務(wù);游戲開發(fā);軟件開發(fā)AbstractNetworkscienceandtechnologyrapiddevelopment,scienceandtechnologyproductsemergeinendlessly,forenterpriseorcompany,promotetheirownideasanddevelopmentofproductsisvital.Ifpeoplewanttobeinashorterperiodoftime,toknowmoreaboutinformationtechnologyproducts,isamoreconvenientwaytoaccessthroughthenetwork.Jinrunwebsitedesign,itwilldemandproductsalesandcustomerservicelevelcloselyunifiesintogether,greatlyimprovingtheefficiency,convenientcustomertounderstandandordertherightsoftwaretoimproveworkefficiency,makecustomersinteractwiththecompaniescaneasily.SitewithJSPasthefrontdeskofthemaindisplaytool,usingtheMVCdesignpattern,accordingtothethreelayersofdecouplingrelationship.TheunderlyinguseHibernatepersistencelayerframework,theSpringcontainermanagementobject,struts2combinedwithJSPfront-enddisplay.Hasrealizedtheproductdistributionanddisplay,pressrelease,theconceptofenterprisespirit,themessagefeedback,usersreal-timeconsultation,backgroundmanagementfunctions.Keywords:System;Electroniccommerce;Thegamedevelopment.Software development目錄TOC\o"1-3"\h\u218961引言 1260361.1研究背景 1226431.2研究意義 2191672網(wǎng)站系統(tǒng)相關(guān)技術(shù)及工具介紹 3139042.1服務(wù)器Tomcat7.0介紹

39752.2JAVA語言 392322.3MySQL 4165132.4Hibernate 4279732.5Spring框架 5132172.6MVC開發(fā)模式介紹 5168373需求分析及總體設(shè)計(jì)介紹 7240973.1需求分析 7136693.2項(xiàng)目架構(gòu) 8267553.3系統(tǒng)工作原理 9109033.4模型設(shè)計(jì) 10326443.4.1控制層設(shè)計(jì) 10263523.4.2業(yè)務(wù)層設(shè)計(jì) 1158953.4.3工具類設(shè)計(jì) 16186533.4.4持久層設(shè)計(jì) 18198284網(wǎng)站前臺設(shè)計(jì)和實(shí)現(xiàn) 2041214.1首頁設(shè)計(jì) 20150714.2產(chǎn)品展示 21303604.3新聞中心 2148004.4留言反饋界面展示 2215384.5其它界面展示 23296915網(wǎng)站后臺設(shè)計(jì)和實(shí)現(xiàn) 25138265.1管理員登錄 25252215.2后臺主頁 254875.3新聞管理模塊 26324985.4產(chǎn)品管理模塊 27226345.5網(wǎng)站信息管理模塊 28296125.6用戶留言管理模塊 2878345.7其它模塊 2932356系統(tǒng)測試 3018546.1測試要求 30219406.2測試用例設(shè)計(jì) 30189916.3測試結(jié)論 30156447結(jié)論 3125450謝辭 3225265參考文件 33XX網(wǎng)站設(shè)計(jì)和實(shí)現(xiàn)1引言1.1研究背景現(xiàn)在,網(wǎng)絡(luò)發(fā)展趨勢已經(jīng)商業(yè)化和全民普及趨勢。世界上大部分企業(yè)企業(yè)全部是以營利為首要目標(biāo)。在宣傳推廣上,就顯得尤為關(guān)鍵。使用有效廣告能夠?yàn)槲覀儙砀咝б妫热缭谄髽I(yè)宣傳,招聘職員信息公布,網(wǎng)上銷售等方面,網(wǎng)絡(luò)給我們帶來了很多方便。現(xiàn)在網(wǎng)絡(luò)儼然已經(jīng)成為了企業(yè)競爭關(guān)鍵戰(zhàn)略手段。網(wǎng)站優(yōu)勢源于能夠?yàn)槠髽I(yè)提供一個(gè)舞臺來展示自己、另一個(gè)好處表現(xiàn)在能為消費(fèi)者愈加便捷提供一個(gè)了解企業(yè)路徑。企業(yè)或企業(yè)能夠經(jīng)過網(wǎng)絡(luò)平臺,實(shí)時(shí)提供在線客服以供咨詢。利用網(wǎng)絡(luò)推廣和宣傳企業(yè)產(chǎn)品、實(shí)時(shí)公布部分要聞,用戶需求提議也能夠經(jīng)過留言信息立即反饋給企業(yè)網(wǎng)站工作人員。網(wǎng)絡(luò)普及,使得計(jì)算機(jī)走進(jìn)了千家萬戶,社會各層人士取得了平等接觸實(shí)時(shí)信息機(jī)會。利用這股發(fā)展趨勢,各大企業(yè)在管理和銷售上全部能使用到軟件領(lǐng)域工具來進(jìn)行便捷銷售,便捷辦公,解放一定勞動(dòng)力。利用網(wǎng)站推廣產(chǎn)品,推進(jìn)行業(yè)發(fā)展,促進(jìn)產(chǎn)品銷售是一個(gè)很好方案,新促銷形式,和傳統(tǒng)相比有很多優(yōu)點(diǎn):它降低產(chǎn)品成本;利用網(wǎng)絡(luò)作為交互平臺;改變傳統(tǒng)人和人直接碰面交談方法,能夠降低交互交談時(shí)受空間和時(shí)間限制;信息傳輸及公布更新愈加快速靈活,新技術(shù)產(chǎn)品信息上傳后,能夠立即得到推廣和發(fā)覺,用戶能夠立即看到,對于滿意產(chǎn)品,能夠直接和客服人員交談,從而大大提升了效率。網(wǎng)站關(guān)鍵功效是利用網(wǎng)站作為企業(yè)企業(yè)產(chǎn)品展示平臺,將最新產(chǎn)品部分基礎(chǔ)信息和相關(guān)新聞、企業(yè)現(xiàn)在概況等信息以網(wǎng)站形式公布到網(wǎng)絡(luò)上,以供大家觀看和借鑒。此次畢業(yè)設(shè)計(jì)課題是基于JSP設(shè)計(jì)企業(yè)網(wǎng)站系統(tǒng),它產(chǎn)生背景源于武夷山市企業(yè)信息化建設(shè)。此設(shè)計(jì)更具實(shí)際研究意義,目標(biāo)是綜合所學(xué)知識和利用身邊網(wǎng)絡(luò)資源,鍛煉動(dòng)手實(shí)踐能力,有利于提升綜合學(xué)習(xí)能力。順利完成設(shè)計(jì)課題前提條件還需要很多課外知識補(bǔ)充,如MVC開發(fā)模式,目前流行J2EE框架,對XML等配置文件書寫有一定了解等等。1.2研究意義信息化技術(shù)飛速發(fā)展,科學(xué)技術(shù)一日千里,這推快了大家生活節(jié)奏。時(shí)間變得愈加寶貴。任何產(chǎn)品需要很好被使用,其著名度就至關(guān)關(guān)鍵。大家生活中更多接觸便是電視、電腦、手機(jī)這些科技產(chǎn)品。那么對于軟件領(lǐng)域研發(fā)出來科技產(chǎn)品,企業(yè)應(yīng)該怎樣對其推廣宣傳和銷售。源于這一思索,設(shè)想假如各大企業(yè)企業(yè)能紛紛建立起屬于自己企業(yè)網(wǎng)站,將最新產(chǎn)品和新聞實(shí)時(shí)公布更新,那么去推廣一個(gè)網(wǎng)站相對來講愈加省時(shí)省力,這是提升效率有效路徑。企業(yè)建立網(wǎng)站,這么能夠很好對外展示企業(yè)文化,是企業(yè)實(shí)力一個(gè)表現(xiàn)方法。今天,各行各業(yè)競爭日趨猛烈,每個(gè)企業(yè)所面臨關(guān)鍵任務(wù)是提升工作效率和工作質(zhì)量。企業(yè)網(wǎng)站建立能夠大量降低人力資源方面成本付出,突破了時(shí)間和空間限制,用戶對產(chǎn)品具體了解能夠在任何時(shí)間和地點(diǎn)進(jìn)行,能夠即時(shí)進(jìn)行。有了展銷產(chǎn)品網(wǎng)站平臺,用戶就不需要到實(shí)地去查詢產(chǎn)品詳情,能夠借助網(wǎng)絡(luò)平臺聯(lián)絡(luò)銷售員,經(jīng)過遠(yuǎn)程體驗(yàn),大大便捷了交易所帶來時(shí)間問題。鑒于互聯(lián)網(wǎng)很多優(yōu)勢和對中國外軟件產(chǎn)品銷售現(xiàn)實(shí)狀況研究分析,我此次設(shè)計(jì)是開發(fā)一個(gè)集成了公布產(chǎn)品、公布新聞、服務(wù)咨詢等功效于一體企業(yè)網(wǎng)站,以微小力量推進(jìn)中國互聯(lián)網(wǎng)發(fā)展。2網(wǎng)站系統(tǒng)相關(guān)技術(shù)及工具介紹2.1服務(wù)器Tomcat7.0介紹

Tomcat由開源小區(qū)研究開發(fā),對編程愛好人員能夠自由對Tomcat服務(wù)器進(jìn)行學(xué)習(xí)和研究。因?yàn)樗鼰o償和開源這些特征。Tomcat得到了極大推廣,而且經(jīng)過開源小區(qū)貢獻(xiàn),它性能也愈加強(qiáng)大,趨于完善。

Tomcat是純粹由java代碼編寫。它以小型、輕量級Web服務(wù)器特點(diǎn)被廣泛推廣利用并受人喜愛。在個(gè)人電腦上安裝上服務(wù)器軟件,個(gè)人PC電腦自然就成為了一個(gè)初具模型服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問量不多情況下能夠被普遍地使用。在配置好Tomcat服務(wù)器電腦上,這么Tomcat就能夠?qū)TML頁面等用戶發(fā)出訪問請求進(jìn)行響應(yīng)[1]。

我們將web應(yīng)用程序布署到Tomcat服務(wù)器中,就能夠?qū)崿F(xiàn)在當(dāng)?shù)剡M(jìn)行web應(yīng)用程序調(diào)試運(yùn)行。2.2JAVA語言Java以其面向?qū)ο髢?yōu)勢和安卓市場被廣大人群深知。因?yàn)镴ava被很流行推出,同時(shí)擁有世界上最大開源小區(qū)正在快速發(fā)展,對c++語言已經(jīng)形成了強(qiáng)大沖擊。Java能夠處理部分復(fù)雜邏輯問題,將問題轉(zhuǎn)化為面向?qū)ο笏枷肴ヌ幚怼ava語言由杰姆斯高斯林和她同事共同開發(fā),工程正式開啟于1995年。后期更名為Java,而且重新設(shè)計(jì)開發(fā)互聯(lián)網(wǎng)應(yīng)用。由Java編寫出源代碼,經(jīng)虛擬機(jī)類加載器編譯成字節(jié)碼文件后,能夠運(yùn)行在不一樣平臺上。這么就脫離了java運(yùn)行環(huán)境,只需要編譯過一次,就能夠四處運(yùn)行[2]。Java有一個(gè)用戶友好,貼近現(xiàn)實(shí)生活語法。這么語言含有著獨(dú)特優(yōu)勢,擁有面向?qū)ο蟾拍?,穩(wěn)定性,和平臺獨(dú)立性,安全性,穩(wěn)定性和支持多線程,動(dòng)態(tài)等優(yōu)良特征。因?yàn)镴ava多線程特征,處理器在不一樣線程間快速切換。相比其它語言,如C++沒有內(nèi)置多線程機(jī)制,所以C++多線程就必需調(diào)用操作系統(tǒng)多線程功效來進(jìn)行多線程程序設(shè)計(jì)。Java在軟件編程語言設(shè)計(jì)中,不單能夠應(yīng)用于開發(fā)大型應(yīng)用程序,而且在Internet應(yīng)用開發(fā)方面也較為突出。Java不僅是一門現(xiàn)在大家大量使用編程語言,就現(xiàn)在所知道IT行業(yè)很多最新技術(shù)全部包含了java語言,java早已經(jīng)被大家公認(rèn)為當(dāng)今世上最關(guān)鍵語言之一[3]。2.3MySQL就現(xiàn)在數(shù)據(jù)分類來看,MySQL規(guī)模能夠?qū)⑵鋭澐值街行蛿?shù)據(jù)庫,它是由瑞典研發(fā)人員所研發(fā),現(xiàn)在已經(jīng)屬于Oracle企業(yè)。MySQL是最流行關(guān)系數(shù)據(jù)庫管理系統(tǒng),MySQL在很多Web應(yīng)用程序中是最好關(guān)系數(shù)據(jù)庫管理系統(tǒng)[4]。MySQL特點(diǎn)就是高效靈活,它工作原理是將數(shù)據(jù)保留一張張表中,數(shù)據(jù)整體存放合理,結(jié)構(gòu)優(yōu)良。MySQL使用標(biāo)準(zhǔn)結(jié)構(gòu)化查詢語言、其軟件體積小、反應(yīng)速度快、成本低、開源,因?yàn)檫@些優(yōu)勢,尤其是小型和中型網(wǎng)站應(yīng)用開發(fā)通常是以MySQL為首選。MySQL底層應(yīng)用語言以C和C++為主,使用了多個(gè)編譯器對其進(jìn)行測試和不停改善,在移植性方面,mysql表現(xiàn)較為突出。多個(gè)操作系統(tǒng)對mysql全部支持,像通俗常見就有:Linux、MacOS、Windows等操作系統(tǒng)。它還為為多個(gè)編程語言提供了API支持。比如Java、C++、C和Tcl等,MySQL和這邊編程全部能完美融合。另外MySQL對多線程處理方面也有部分優(yōu)勢,這么就能使得服務(wù)器CPU資源能夠被充足利用起來。因?yàn)镸ySQL提供標(biāo)準(zhǔn)結(jié)構(gòu)化查詢語言、提供ODBC和JDBC等連接數(shù)據(jù)庫方法,使其愈加便于管理、檢驗(yàn),在優(yōu)化數(shù)據(jù)庫操作方面也愈加便捷[5]。2.4HibernateHibernate優(yōu)點(diǎn):對JDBC封裝,簡化了很多反復(fù)代碼。對DAO層編碼工作進(jìn)行了簡化,使開發(fā)能夠集中精力關(guān)心業(yè)務(wù)邏輯。移植性好,它支持多個(gè)數(shù)據(jù)庫,這么更換數(shù)據(jù)庫時(shí)代碼改變量就比較少。該框架沒有實(shí)現(xiàn)任何接口,沒有侵入性。是一個(gè)輕量級框架。Hibernate延遲加載:延遲加載特點(diǎn)是當(dāng)一個(gè)對象或?qū)ο髮傩圆樵儠r(shí),該對象或?qū)傩耘R時(shí)不存在內(nèi)存中,只有當(dāng)程序真正使用到數(shù)據(jù)時(shí),該數(shù)據(jù)才被加載到內(nèi)存中[6]。優(yōu)化Hibernate:1、在一對多關(guān)聯(lián)關(guān)系中,應(yīng)該從多一方維護(hù)。2、避免使用一對一,盡可能使用多對一關(guān)聯(lián)關(guān)系。3、配置對象緩存,降低使用集合緩存。4、降低表字段,表關(guān)聯(lián)不要怕多,二級緩存撐腰。Hibernate因?yàn)槠浜唵螌W(xué)習(xí)成本,功效完備而且運(yùn)行高效,受到開發(fā)人員喜愛。使用Hibernate自帶查詢語言HQL,能夠使數(shù)據(jù)庫操作方面愈加得心應(yīng)手,處理很多開發(fā)上常見對數(shù)據(jù)庫操作一系列繁瑣問題,使程序員能夠?qū)W⒂谔幚順I(yè)務(wù)邏輯問題[7]。2.5Spring框架Spring是一個(gè)輕量級容器,默認(rèn)很多服務(wù)是不自動(dòng)打開,需要手動(dòng)配置來將其打開。學(xué)習(xí)Spring框架兩個(gè)關(guān)鍵:IOC和AOP。內(nèi)部關(guān)鍵是一個(gè)Bean工廠(BeanFactory),它提供和實(shí)現(xiàn)控制反轉(zhuǎn)和依靠注入。另外Spring容器用于申明式事務(wù),安全等服務(wù)應(yīng)用[8]。Spring能夠和目前流行框架集成,應(yīng)用范圍廣泛,能夠是B/S或C/S[9]。本網(wǎng)站系統(tǒng)采取注釋方法來管理事務(wù)。從三層結(jié)構(gòu)來看,Web層Struts2框架和Dao層Hibernate框架全部和其進(jìn)行整合。Spring強(qiáng)大管理及代理等方法,使任何Java應(yīng)用全部能夠從Spring中受益[10]。其結(jié)構(gòu)圖2-1所表示:圖2-1Spring結(jié)構(gòu)2.6MVC開發(fā)模式介紹MVC是企業(yè)級應(yīng)用開發(fā)中常見設(shè)計(jì)模式。它把項(xiàng)目架構(gòu)進(jìn)行分層設(shè)計(jì),分為表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層。MVC即代表模型視圖控制器。模型(Model)即為部分常見實(shí)體類,(如Person類實(shí)體),實(shí)體類關(guān)鍵用于封裝數(shù)據(jù)。視圖(View),通常見作數(shù)據(jù)顯示。在J2EE中視圖由jsp負(fù)責(zé)顯示??刂破?Controller),用于協(xié)調(diào)M和V關(guān)系,也用作處理業(yè)務(wù)邏輯,在Struts2中就是Action類[11]。1、模型模型通常表示數(shù)據(jù)封裝。在三層架構(gòu)中,模型擁有較多處理任務(wù)。模型能為視圖提供數(shù)據(jù)支持。因?yàn)槟P痛a能夠被多個(gè)視圖反復(fù)使用,這么能夠降低代碼反復(fù)性書寫[12]。2、視圖視圖提供給用戶使用,而且能夠和之交互界面。在Web應(yīng)用早期,界面關(guān)鍵是由HTML做出簡單顯示,然而,在現(xiàn)在網(wǎng)絡(luò)技術(shù)發(fā)展下,部分新技術(shù)出現(xiàn),如XHTML,XML/XSL,WML這些標(biāo)識語言和Web服務(wù)。MVC應(yīng)用程序能夠處理很多不一樣返回結(jié)果視圖[13]。3、控制器當(dāng)用戶請求數(shù)據(jù),控制器做出響應(yīng)處理,最終將數(shù)據(jù)進(jìn)行封裝,再交給jsp做顯示。所以當(dāng)你點(diǎn)擊在JSP互動(dòng)步驟時(shí),控制器接收組件要求和決議模型呼叫建立負(fù)責(zé)處理傳入請求,然后封裝數(shù)據(jù),確定該視圖顯示界面[14]。3需求分析及總體設(shè)計(jì)介紹3.1需求分析《xx》模型是經(jīng)典網(wǎng)上產(chǎn)品展銷實(shí)踐中較為普遍商務(wù)企業(yè)B/S模式,其關(guān)鍵功效模塊包含產(chǎn)品公布、新聞管理、留言反饋、業(yè)務(wù)咨詢等基礎(chǔ)功效。另外,此網(wǎng)站也將實(shí)現(xiàn)企業(yè)網(wǎng)站系統(tǒng)后臺管理,其中包含新增產(chǎn)品添加和修改信息、新聞相關(guān)處理功效等。本系統(tǒng)Web層框架,是基于現(xiàn)在流行SSH,前臺采取JSP技術(shù)作為顯示和交互,在網(wǎng)站設(shè)計(jì)和開發(fā)過程中,利用軟件設(shè)計(jì)模式,做到盡可能削減體系功效模塊間耦合。本網(wǎng)站系統(tǒng)前后臺功效關(guān)系,圖3-1所表示:圖3-1系統(tǒng)功效分析前臺(游客瀏覽)部分:企業(yè)文化展示:顯示企業(yè)精神理念,企業(yè)福利待遇等信息;經(jīng)營業(yè)務(wù)展示:顯示企業(yè)經(jīng)營范圍內(nèi)業(yè)務(wù)項(xiàng)目;新聞顯示:按最新更新展示新聞條目及具體;產(chǎn)品顯示:經(jīng)過預(yù)覽圖片或產(chǎn)看具體方法查看產(chǎn)品具體信息;留言反饋:經(jīng)過表單填寫提交對此網(wǎng)站和產(chǎn)品提議或意見。后臺(管理員管理)部分:管理員:管理員登錄;新聞管理:分頁查看全部新聞,對新聞進(jìn)行編輯、批量刪除、添加新聞操作;產(chǎn)品管理:按更新時(shí)間次序添加新產(chǎn)品、查看產(chǎn)品具體信息、編輯產(chǎn)品、刪除產(chǎn)品信息;網(wǎng)站基礎(chǔ)信息管理:更新網(wǎng)站基礎(chǔ)信息,企業(yè)理念精神及企業(yè)福利,地址和聯(lián)絡(luò)信息;3.2項(xiàng)目架構(gòu) 圖3-2項(xiàng)目架構(gòu)圖3-2所表示,左邊是項(xiàng)目工程三層架構(gòu)。Dao層及其接口實(shí)現(xiàn)類,這兩個(gè)包中類協(xié)調(diào)負(fù)責(zé)對數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行存取操作。而domain包下存放是實(shí)體類,關(guān)鍵是為了對數(shù)據(jù)進(jìn)行封裝和攜帶數(shù)據(jù)。Service及其實(shí)現(xiàn)類在三層架構(gòu)中關(guān)鍵是針對業(yè)務(wù)邏輯進(jìn)行編寫類。Beans.xml、Hibernate.cfg.xml和struts.xml這三個(gè)配置文件則是對應(yīng)SSH框架。而perties則是此web應(yīng)用程序中用到一個(gè)自定義配置文件。右邊是根目錄結(jié)構(gòu),其下是JSP頁面存放和樣式控制文件等,比如CSS、js文件等。此次項(xiàng)目設(shè)計(jì)遵照MVC設(shè)計(jì)模式,利用Spring容器巧妙創(chuàng)建和管理類,遵照工廠設(shè)計(jì)模式對類進(jìn)行解耦,根據(jù)三層架構(gòu)進(jìn)行設(shè)計(jì)和實(shí)現(xiàn),層和層之間類功效明確,整體結(jié)構(gòu)清楚,便于調(diào)試和管理。3.3系統(tǒng)工作原理基于web網(wǎng)站系統(tǒng)是用戶經(jīng)過瀏覽器發(fā)送請求,依據(jù)HTTP協(xié)議,Tomcat服務(wù)器接收到用請求后,將依據(jù)配置文件為其分配是由哪種Servlet來處理。假如是訪問以.do結(jié)尾URL地址,就交由Struts2來處理,Struts2將依據(jù)配置文件為其分配對應(yīng)Action來處理請求。Action類中對應(yīng)方法將調(diào)用對應(yīng)業(yè)務(wù)類方法去完成請求,由業(yè)務(wù)類調(diào)用dao方法來完成對數(shù)據(jù)庫存取和訪問。圖3-3所表示:Spring將三層中全部類創(chuàng)建管理起來,包含控制層,業(yè)務(wù)層實(shí)現(xiàn)類和DAO層中類。圖3-3工作原理3.4模型設(shè)計(jì)3.4.1控制層設(shè)計(jì)在SSH框架組合下,控制層代碼由struts2Action來充當(dāng),依據(jù)請求信息調(diào)用指定action類中方法來進(jìn)行請求處理,和返回對應(yīng)結(jié)果視圖,由jsp將數(shù)據(jù)作為展示給用戶。命名空間以"/sys"標(biāo)識為后臺包,以"/cli"標(biāo)識對應(yīng)前臺,通常由網(wǎng)絡(luò)上游客隨機(jī)訪問。在兩大類對應(yīng)包名下有對應(yīng)前臺和后臺模塊很多Action類,代碼以下:Struts2中前臺配置:<packagename="cli"namespace="/cli"extends="default"> <!--用戶端首頁--> <actionname="indexAction_*"class="indexAction"method="{1}"> <resultname="index">/WEB-INF/client/index.jsp</result> </action> <!--業(yè)務(wù)中心--><actionname="businessAction_*"class="businessAction"method="{1}"> <resultname="business">/WEB-INF/client/business.jsp</result> </action> <!--產(chǎn)品展示--> <actionname="productAction_*"class="productAction"method="{1}"> <resultname="product">/WEB-INF/client/product.jsp</result> <resultname="promore">/WEB-INF/client/promore.jsp</result> </action> <!--新聞中心--> <actionname="newsAction_*"class="newsAction"method="{1}"> <resultname="news">/WEB-INF/client/news.jsp</result> <resultname="fullText">/WEB-INF/client/fullText.jsp</result> </action></package>3.4.2業(yè)務(wù)層設(shè)計(jì)業(yè)務(wù)層由Struts2action類和部分實(shí)體類配合使用,關(guān)鍵是針對業(yè)務(wù)邏輯和數(shù)據(jù)封裝,數(shù)據(jù)攜帶這些請求進(jìn)行處理,然后返回結(jié)果視圖,供頁面做顯示。業(yè)務(wù)層處理內(nèi)容包含:企業(yè)軟件產(chǎn)品增刪改查功效、新聞模塊顯示功效、留言和意見反饋功效、客服在線咨詢等。軟件產(chǎn)品業(yè)務(wù)設(shè)計(jì),靈感來自于部分企業(yè)門戶網(wǎng)站,其思緒是:產(chǎn)品羅列,能夠?qū)Ξa(chǎn)品具體信息查看,在產(chǎn)品查看過程中能夠即時(shí)聯(lián)絡(luò)客服人員訂購咨詢或了解詳情。下面是產(chǎn)品業(yè)務(wù)類實(shí)現(xiàn)部分代碼://后臺--顯示產(chǎn)品列表 publicStringlist(){ QueryBuilderqueryBuilder=newQueryBuilder(Product.class); queryBuilder.addOrderProperty("updateTime",true); PageViewpageView=productService.getPageView(queryBuilder,getPageNum(request)); request.setAttribute("Products",pageView); return"list"; }//后臺--添加產(chǎn)品 publicStringadd(){ Stringsuffix=null; try{ suffix=product.getPicFileName().substring(product.getPicFileName().lastIndexOf(".")); if(!".jpg".equalsIgnoreCase(suffix)){ this.addFieldError("msg","格式錯(cuò)誤"); return"addUI"; } }catch(Exceptione){ this.addFieldError("msg","請選擇產(chǎn)品圖片"); return"addUI"; } //文件上傳 if(product.getPicFileName()!=null){ StringtmpFileName=product.getPicFileName().substring(product.getPicFileName().lastIndexOf("/")+1); StringUUIDName=UUIDUitls.getUUID()+suffix; StringsavedPath=ServletActionContext.getServletContext().getRealPath(uploads); FilesavedFile=newFile(savedPath,UUIDName); if(product.getPic()==null){ this.addFieldError("warn","請選擇圖片"); return"addUI"; } product.getPic().renameTo(savedFile); //添加統(tǒng)計(jì)到數(shù)據(jù)庫 product.setNewName(UUIDName); product.setOglName(tmpFileName); product.setUpdateTime(newDate()); productBiz.save(pro); request.setAttribute("msg","提醒:上傳成功"); } return"addUI"; }留言反饋處理:首先對想要留言用戶進(jìn)行姓名規(guī)則校驗(yàn)、電話號碼校驗(yàn)、郵箱規(guī)則校驗(yàn),校驗(yàn)不經(jīng)過(包含空)將不提交頁面,當(dāng)非空等檢測經(jīng)過以后,就提交表單,這么就能夠從數(shù)據(jù)庫中查看到經(jīng)過檢測用戶留言,能夠避免大量垃圾留言。新聞?wù)故緲I(yè)務(wù):包含新聞條目,新聞公布時(shí)間根據(jù)更新時(shí)間排序,經(jīng)過分頁對新聞進(jìn)行顯示。新聞模塊功效實(shí)現(xiàn),是從數(shù)據(jù)庫按頁查出目前顯示頁新聞頁集合信息,用list集合封裝,然后借助ognl對其進(jìn)行迭代操作并顯示。而在前臺頁面分頁功效實(shí)現(xiàn),則是由Action去獲取每頁大小數(shù)和所查看數(shù)據(jù)目前頁碼,動(dòng)態(tài)拼湊hql語句,每次去數(shù)據(jù)庫詢出指定頁碼統(tǒng)計(jì)條數(shù),進(jìn)行封裝到page實(shí)體,再將多個(gè)page實(shí)體封裝成list集合,完成查詢后將返回結(jié)果給頁面進(jìn)行迭代顯示。下面為新聞模塊部分代碼://新聞列表 publicStringlistNews(){ QueryBuilderqueryBuilder=newQueryBuilder(News.class); queryBuilder.addOrderProperty("record",false); PageViewpageView=newsService.getPageView(queryBuilder,getPageNum(request)); request.setAttribute("news",pageView); return"listNews"; }//批量刪除新聞 publicStringdel(){ //獲取ids String[]sids=request.getParameterValues("News_ids"); Integerids[]=DataType.converterStringArray2IntegerArray(sids); if(ids!=null){ //刪除 newsService.deleteSysProductsByIds(ids); return"listAction"; } returnnull; }//公布新聞 publicStringaddNews(){ //非空判定title if(StringUtils.isBlank(news.getTitle())){ this.addFieldError("msg","請?zhí)顚懳恼聵?biāo)題"); return"addNewsUI"; } //假如是事紀(jì)年份不能為空 Stringsuffix=null; if(News.EVENTS_VALUE.equals(news.getRemark())){ if(StringUtils.isBlank(news.getYear())){ this.addFieldError("msg","請?zhí)顚懯录o(jì)年份"); return"addNewsUI"; } }else{ //假如是新聞,圖片不能為空 if(StringUtils.isBlank(news.getPicFileName())){ //新聞?dòng)袌D片 this.addFieldError("msg","請選擇新聞圖片"); return"addNewsUI"; } //圖片名不為空時(shí)候驗(yàn)后綴名 try{ suffix=news.getPicFileName().substring(news.getPicFileName().lastIndexOf(".")); if(!".jpg".equalsIgnoreCase(suffix)){ this.addFieldError("msg","格式錯(cuò)誤"); return"addNewsUI"; } }catch(Exceptione){ this.addFieldError("msg","請選擇圖片"); return"addNewsUI"; } } //新聞公布者--驗(yàn)空 if(StringUtils.isBlank(news.getName())){ this.addFieldError("msg","請?zhí)顚懩矸?); return"addNewsUI"; } //新聞內(nèi)容--驗(yàn)空 if(StringUtils.isBlank(news.getContent())){ this.addFieldError("msg","請?zhí)顚懳恼聝?nèi)容"); return"addNewsUI"; } //1依據(jù)remark判定新聞還是事紀(jì) if(News.EVENTS_VALUE.equals(news.getRemark())){ //設(shè)置年份"-" Stringtemp=news.getYear().substring(0,4); news.setYear(temp+"-"); } //2設(shè)置新聞公布時(shí)間,截取 news.setPostTime(newDate()); //3.新聞?wù)厝? if(news.getContent().length()>100){ news.setDigest(news.getContent().substring(0,99)); } //4.設(shè)置新聞圖片上傳信息圖片上傳 if(StringUtils.isNotBlank(news.getPicFileName())){ //System.out.println(picForm.getPicFileName()); StringtmpFileName=news.getPicFileName().substring(news.getPicFileName().lastIndexOf("/")+1); StringUUIDName=UUIDUitls.getUUID()+suffix; StringsavedPath=ServletActionContext.getServletContext().getRealPath(uploads); System.out.println("--新聞添加--"+savedPath); FilesavedFile=newFile(savedPath,UUIDName); //新聞必需要有圖、事紀(jì)圖片可有可無以下判定不需要 if(news.getPic()==null){ this.addFieldError("warn","請選擇圖片"); return"addNewsUI"; } news.getPic().renameTo(savedFile); //添加統(tǒng)計(jì)到數(shù)據(jù)庫 news.setNewName(UUIDName); news.setOglName(tmpFileName); } //4.其它信息保留 newsService.save(news); request.setAttribute("msg","提醒:文章公布成功"); return"addNewsUI"; }3.4.3工具類設(shè)計(jì)當(dāng)設(shè)計(jì)程序在調(diào)用過程中將反復(fù)性調(diào)用部分方法或需要便捷提供調(diào)用時(shí),這時(shí)候就需要將其抽取出來,封裝成單獨(dú)工具。這么就能夠和業(yè)務(wù)無關(guān)而能夠在任意層被單獨(dú)使用。在此次設(shè)計(jì)中工具類方法有:CheckPrivalegeInterceptor.java類用于檢測后臺操作時(shí),管理員是否是登錄狀態(tài)檢測。DataType.java用于對web前臺所獲取到數(shù)據(jù)參數(shù)進(jìn)行類型轉(zhuǎn)換。MD5keyBean.java則是用于對字符串進(jìn)行加密使用,通常是對其成數(shù)據(jù)指紋摘要,是一串32位明文密碼。而SessionUtils.java是針對登錄用戶能夠設(shè)置服務(wù)器session存活時(shí)間或退出系統(tǒng)時(shí)將user從session中移除出去。UUIDUtil.java用于生成全球唯一id號。代碼示例:DataType.javapublicclassDataType{ publicstaticInteger[]converterStringArray2IntegerArray(String[]sids){ if(sids!=null&&sids.length>0){ Integer[]ids=newInteger[sids.length]; for(inti=0;i<ids.length;i++){ if(StringUtils.isNotBlank(sids[i])){ ids[i]=Integer.parseInt(sids[i]); } } returnids; } returnnull; } publicstaticIntegerStr2Integer(Stringid){ if(StringUtils.isNotBlank(id)){ returnInteger.parseInt(id); } returnnull; } publicstaticStringInteger2Str(Integerid){ if(id!=null){ returnid.toString(); } returnnull; }}SessionUtils.javapublicclassSessionUtils{ publicstaticvoidsetSysUserToSession(HttpServletRequestrequest,Useruser){HttpSessionsession=request.getSession(); if(user==null){ return; } session.setAttribute("user",user); } publicstaticUsergetSysUserFormSession(HttpServletRequestrequest){ HttpSessionsession=request.getSession(false); if(session==null){ returnnull; } Useruser=(User)session.getAttribute("user"); returnuser; }}3.4.4持久層設(shè)計(jì)為了處理并發(fā)訪問帶來問題,此次設(shè)計(jì)選擇以c3p0數(shù)據(jù)源為其設(shè)計(jì)數(shù)據(jù)庫連接池。由每一個(gè)實(shí)體類對應(yīng)一張表,利用Hibernate持久化,懶加載,緩存等特征對數(shù)據(jù)進(jìn)行保留、更新和頻繁查找操作。從Struts2Action創(chuàng)建、Service類和Dao對象創(chuàng)建,使用了目前流行工廠模式,三層架構(gòu)中每一個(gè)層類全部對其進(jìn)行抽取接口,而且使用注解加配置文件相結(jié)合,由Spring容器代為管理對象生命周期,靈活搭配,整個(gè)項(xiàng)目工程看起來結(jié)構(gòu)清楚。事務(wù)控制,一樣是采取注解方法,這么設(shè)計(jì)結(jié)構(gòu)一目了然,便于后期系統(tǒng)維護(hù)和升級[15]。下面是代碼部分示例:Hibernate配置文件中映射:<hibernate-configuration><session-factory> <mappingresource="com/jinrun/domain/User.hbm.xml"/> <mappingresource="com/jinrun/domain/Picture.hbm.xml"/> <mappingresource="com/jinrun/domain/Message.hbm.xml"/> <mappingresource="com/jinrun/domain/SysInfo.hbm.xml"/> <mappingresource="com/jinrun/domain/Product.hbm.xml"/> <mappingresource="com/jinrun/domain/Business.hbm.xml"/> <mappingresource="com/jinrun/domain/News.hbm.xml"/> <mappingresource="com/jinrun/domain/CompanyInfo.hbm.xml"/> <mappingresource="com/jinrun/domain/Employee.hbm.xml"/></session-factory></hibernate-configuration>Spring控制反轉(zhuǎn)和事務(wù)管理注解: /**獲取父類泛型類型***/ privateClassentityClass=GenericClass.getGenericClass(this.getClass()); @Resource(name="sessionFactory") publicvoidsetSessionFactoryDI(SessionFactorysessionFactory){ super.setSessionFactory(sessionFactory); } publicvoidsave(Tt){ this.getHibernateTemplate().save(t); } publicvoidupdate(Tentity){ this.getHibernateTemplate().update(entity); }}事務(wù)注解:@Service("newsService")@TransactionalpublicclassNewsServiceImplimplementsNewsService{ //事務(wù)注解 @Transactional(isolation=Isolation.DEFAULT,propagation=Propagation.REQUIRED,readOnly=false) publicvoidsave(Newsnews){ NewsdownNews=findDownIdIsNullById();}4網(wǎng)站前臺設(shè)計(jì)和實(shí)現(xiàn)在這個(gè)章節(jié)將會介紹這次網(wǎng)站設(shè)計(jì)界面部分?!秞x》前臺是供游客瀏覽新聞、接觸這個(gè)門戶網(wǎng)站企業(yè)基礎(chǔ)信息,查看最新設(shè)計(jì)產(chǎn)品,意見反饋及聯(lián)絡(luò)該網(wǎng)站等部分基礎(chǔ)所需用途。一個(gè)網(wǎng)站前臺設(shè)計(jì)首先應(yīng)該是精美,令人舒適,其次突出企業(yè)宣傳專題和精神理念。所以,前臺設(shè)計(jì)應(yīng)該是簡明扼要、層次分明、條理清楚。下面將介紹“xx”前端部分實(shí)現(xiàn)。4.1首頁設(shè)計(jì)首頁為6個(gè)關(guān)鍵部分,導(dǎo)航欄平鋪方法,簡明清楚列出。圖4-1所表示:圖4-1網(wǎng)站首頁展示圖4-1展示了網(wǎng)站首頁信息,導(dǎo)航欄左側(cè)為一個(gè)企業(yè)logo標(biāo)志。右邊分別對應(yīng)六項(xiàng)網(wǎng)站常見菜單。其下方為可更新,可自動(dòng)切換宣傳圖片。首頁能夠展示出企業(yè)最新研發(fā)軟件產(chǎn)品宣傳,包含宣傳圖片和產(chǎn)品信息。4.2產(chǎn)品展示圖4-2,產(chǎn)品展示,能夠是以圖片預(yù)覽方法連續(xù)翻看產(chǎn)品信息,或可點(diǎn)擊查看具體:圖4-2產(chǎn)品展示4.3新聞中心圖4-3,根據(jù)后臺公布時(shí)間次序?qū)⒆钚赂滦侣勶@示在最前,并顯示時(shí)間和新聞標(biāo)題:圖4-3新聞中心4.4留言反饋界面展示圖4-4聯(lián)絡(luò)我們界面:圖4-4留言反饋界面表單校驗(yàn)注冊頁面校驗(yàn):您姓名:不能為空;電子郵箱:不能為空;根據(jù)郵箱規(guī)則校驗(yàn)進(jìn)行約束;電話:不能為空;數(shù)字約束;長度控制在7-15位;留言:不能為空;留言字符長度不能小于0;表單校驗(yàn)中,對于以上校驗(yàn)未經(jīng)過,表單不予提交。這里部分校驗(yàn)是使用是validate動(dòng)態(tài)驗(yàn)證來初步完成校驗(yàn),用戶體驗(yàn)效果很好。4.5其它界面展示圖4-5企業(yè)年度優(yōu)異職員界面:圖4-5企業(yè)年度優(yōu)異職員界面圖4-6企業(yè)精神文化展示界面:圖4-6企業(yè)精神文化展示界面5網(wǎng)站后臺設(shè)計(jì)和實(shí)現(xiàn)網(wǎng)站后臺設(shè)計(jì)是為管理員方便管理網(wǎng)站而設(shè)計(jì),其中包含新聞中心、產(chǎn)品信息管理、網(wǎng)站信息維護(hù)、用戶留言管理。5.1管理員登錄后臺管理員登錄頁面,登錄成功后抵達(dá)后臺主頁。圖5-1后臺登錄界面5.2后臺主頁管理員登錄成功后,抵達(dá)主頁。主頁是框架頁,由上、下組成,下部框架分為左右。圖5-2后臺主頁界面上部顯示標(biāo)題和部分簡單菜單,分別為:登錄人員、目前系統(tǒng)時(shí)間、修改口令及退出系統(tǒng);左部顯示供管理員管理網(wǎng)站菜單,其中能夠?qū)W(wǎng)站對應(yīng)模塊實(shí)施增刪改操作。右部默認(rèn)顯示管理員登錄信息和部分溫馨提醒,當(dāng)點(diǎn)擊左部鏈接后,內(nèi)容全部將在右部做出顯示。5.3新聞管理模塊在新聞模塊里管理編輯頁面:圖5-3添加新聞界面圖5-4新聞編輯界面5.4產(chǎn)品管理模塊在產(chǎn)品展示模塊里產(chǎn)品頁面:新聞列表頁面:圖5-5添加新聞界面新聞編輯頁面:圖5-6產(chǎn)品編輯界面在產(chǎn)品管理中,能夠?qū)嵤┡縿h除等操作。在編輯產(chǎn)品頁面中,將會對產(chǎn)品名稱及產(chǎn)品描述信息做出非空約束等。編輯或添加成功時(shí),系統(tǒng)會有消息提醒。5.5網(wǎng)站信息管理模塊圖5-7網(wǎng)站信息修改界面5.6用戶留言管理模塊圖5-8用戶留言查看界面在用戶留言管理模塊中,能夠?qū)嵤┡縿h除、查看留言具體、查看留言網(wǎng)絡(luò)方向起源等操作。5.7其它模塊網(wǎng)站管理員頁面:圖5-9網(wǎng)站管理員界面修改管理員口令:圖5-10修改管理員口令界面企業(yè)修改頁面:圖5-11企業(yè)信息管理界面6系統(tǒng)測試6.1測試要求一個(gè)模塊功效改動(dòng)是否會對另一個(gè)模塊產(chǎn)生不利影響;下降子功效緊密程度,達(dá)成預(yù)期功效要求;測試全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否存在問題;6.2測試用例設(shè)計(jì)以登錄系統(tǒng)測試作為示例,設(shè)計(jì)測試用比如表6-1所表示:表6-1登入系統(tǒng)測試用例功效特征用戶登錄驗(yàn)證測試目標(biāo)對輸入信息進(jìn)行健壯性判定測試數(shù)據(jù)用戶名稱:wgu密碼:123序號描述輸入信息期望實(shí)際結(jié)果結(jié)論1輸入用戶姓名,按“登陸”按鈕。用戶姓名:wgu,密碼不填彈框提醒“用戶名或密碼有誤!”彈框提醒“登錄密碼不能為空!”和預(yù)期一樣2輸入密碼,按“登陸”按鈕。用戶姓名不填,密碼:123顯示警告信息“用戶名或密碼誤!”彈框提醒“用戶登錄名稱不能為空!”和預(yù)期一樣3輸入用戶姓名和密碼,按“登陸”按鈕。用戶姓名:1,密碼:1顯示警告信息“用戶名或密碼有誤!”顯示警告“用戶名或密碼錯(cuò)誤”和預(yù)期一樣4輸入用戶登錄名和口令,點(diǎn)擊“登陸”按鈕。用戶名:wgu,密碼:123正確登入到系統(tǒng)管理員操作界面正確登入到系統(tǒng)管理員操作界面和預(yù)期一樣6.3測試結(jié)論一開始寫出代碼調(diào)理很好,則測試輕易。測試時(shí),應(yīng)該有序系統(tǒng)測試來檢測潛在故障,并進(jìn)行定位。同時(shí),問題是最輕易在邊界這塊地方發(fā)生,這能夠經(jīng)過手動(dòng)或程序方法檢驗(yàn)完成。自動(dòng)檢測是最理想,越多越好,因?yàn)闄C(jī)器不犯錯(cuò)誤,不疲憊,而靠實(shí)際幻想輕易欺騙自己,逃避測試,就隱藏了錯(cuò)誤。在測試過后,立即出現(xiàn)了新問題,也輕易排查,因?yàn)樗鼞?yīng)該是出現(xiàn)在新代碼里。7結(jié)論在這次畢業(yè)課題實(shí)踐過程當(dāng)中,從最初課題構(gòu)思到整站設(shè)計(jì)完成,其中關(guān)鍵功效模塊全部已基礎(chǔ)完成,包含科技產(chǎn)品展銷功效,新聞公布和管理,留言意見接收和反饋,經(jīng)營業(yè)務(wù)展示,網(wǎng)站信息更新和管理,企業(yè)基礎(chǔ)信息管理和展示,在線咨詢等功效。網(wǎng)站整體上設(shè)計(jì)給人覺比較簡單清新舒適,視覺上不易產(chǎn)生疲憊,采取HTML5頁面效果,令用戶體驗(yàn)愈加好。導(dǎo)航中留言反饋菜單,展示了企業(yè)地理位置和基礎(chǔ)聯(lián)絡(luò)信息,便于聯(lián)絡(luò)或查找時(shí)使用。這個(gè)模塊在設(shè)計(jì)時(shí)提供了留言反饋功效,便于接收廣大群眾不一樣意見和見解,方便改善產(chǎn)品質(zhì)量、促進(jìn)企業(yè)發(fā)展等問題。設(shè)計(jì)功效基礎(chǔ)實(shí)現(xiàn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論