XX網(wǎng)站設(shè)計與實現(xiàn)_第1頁
XX網(wǎng)站設(shè)計與實現(xiàn)_第2頁
XX網(wǎng)站設(shè)計與實現(xiàn)_第3頁
XX網(wǎng)站設(shè)計與實現(xiàn)_第4頁
XX網(wǎng)站設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 畢業(yè)論文設(shè)計XX網(wǎng)站設(shè)計與實現(xiàn)僅供參考摘 要網(wǎng)絡(luò)科學(xué)技術(shù)飛速發(fā)展,科技產(chǎn)品層出不窮,對于企業(yè)或公司,宣傳自己的理念及推廣所開發(fā)的產(chǎn)品是至關(guān)重要的。如果人們想要在更短的時間內(nèi),了解到更多有關(guān)科技產(chǎn)品的信息,一種比較便捷的方式便是通過網(wǎng)絡(luò)來訪問。xx網(wǎng)站設(shè)計,它將需求、產(chǎn)品銷售與客戶服務(wù)高度緊密的結(jié)合在一起,大大提高了效率,方便客戶了解及訂購合適的軟件來提高工作效率,使得客戶與企業(yè)能夠輕松交互。網(wǎng)站以jsp作為前臺的主要展示工具,使用MVC設(shè)計模式,按照工廠模式解耦,設(shè)計程序的底層使用Hibernate持久層框架。Spring容器管理對象,Struts2結(jié)合jsp做前臺展示,實現(xiàn)了產(chǎn)品發(fā)布與展示

2、,新聞發(fā)布,企業(yè)精神理念展示,留言意見反饋,用戶實時咨詢,后臺管理等功能。關(guān)鍵詞:系統(tǒng);電子商務(wù);游戲開發(fā);軟件開發(fā)AbstractNetwork science and technology rapid development, science and technology products emerge in endlessly, for enterprise or company, promote their own ideas and development of products is vital.If people want to be in a shorter period of

3、 time, to know more about information technology products, is a more convenient way to access through the network. Jinrun website design, it will demand product sales and customer service level closely unifies in together, greatly improving the efficiency, convenient customer to understand and order

4、 the right software to improve work efficiency, make customers interact with the companies can easily. Site with JSP as the front desk of the main display tool, using the MVC design pattern, according to the three layers of decoupling relationship.The underlying use Hibernate persistence layer frame

5、work, the Spring container management object, struts 2 combined with JSP front-end display.Has realized the product distribution and display, press release, the concept of enterprise spirit, the message feedback, users real-time consultation, background management functions.Key words : System;Electr

6、onic commerce;The game development.Software development目 錄1 引言11.1 研究背景11.2 研究意義22 網(wǎng)站系統(tǒng)相關(guān)技術(shù)及工具介紹32.1 服務(wù)器Tomcat7.0簡介 32.2 JAVA語言32.3 MySQL42.4 Hibernate42.5 Spring框架52.6 MVC開發(fā)模式介紹53 需求分析及總體設(shè)計介紹73.1 需求分析73.2 項目架構(gòu)83.3 系統(tǒng)工作原理93.4模型設(shè)計103.4.1控制層設(shè)計103.4.2業(yè)務(wù)層設(shè)計113.4.3工具類設(shè)計163.4.4持久層設(shè)計184 網(wǎng)站的前臺設(shè)計與實現(xiàn)204.

7、1 首頁設(shè)計204.2 產(chǎn)品展示214.3新聞中心214.4 留言反饋界面展示224.5 其它界面展示235 網(wǎng)站的后臺設(shè)計與實現(xiàn)255.1 管理員登錄255.2 后臺主頁255.3 新聞管理模塊265.4 產(chǎn)品管理模塊275.5 網(wǎng)站信息管理模塊285.6 用戶留言管理模塊285.7 其它模塊296 系統(tǒng)測試306.1 測試要求306.2 測試用例設(shè)計306.3 測試結(jié)論307 結(jié)論31謝辭32參考文獻33僅供參考僅供參考XX網(wǎng)站設(shè)計與實現(xiàn)1 引 言1.1 研究背景目前,網(wǎng)絡(luò)的發(fā)展趨勢已經(jīng)商業(yè)化和全民普及趨勢。世界上大部分的公司企業(yè)都是以營利為首要目的。在宣傳推廣上,就顯得尤為重要。使用有效

8、的廣告可以為我們帶來高效益,比方在企業(yè)宣傳,招聘職工信息發(fā)布,網(wǎng)上銷售等方面,網(wǎng)絡(luò)給我們帶來了許多方便?,F(xiàn)在的網(wǎng)絡(luò)儼然已經(jīng)成為了企業(yè)競爭的重要戰(zhàn)略手段。網(wǎng)站的優(yōu)勢源于可以為企業(yè)提供一個舞臺來展示自己、另一個好處表達在能為消費者更加便捷的提供一個了解企業(yè)的途徑。公司或企業(yè)可以通過網(wǎng)絡(luò)平臺,實時的提供在線客服以供咨詢。利用網(wǎng)絡(luò)推廣和宣傳企業(yè)產(chǎn)品、實時的發(fā)布一些要聞,顧客的需求建議也可以通過留言信息及時的反饋給企業(yè)網(wǎng)站的工作人員。網(wǎng)絡(luò)的普及,使得電腦走進了千家萬戶,社會各層人士獲得了平等接觸實時信息的時機。利用這股發(fā)展趨勢,各大企業(yè)在管理和銷售上都能使用到軟件領(lǐng)域的工具來進行便捷銷售,便捷辦公,解放

9、一定的勞動力。利用網(wǎng)站推廣產(chǎn)品,推進行業(yè)發(fā)展,促進產(chǎn)品銷售是一個很好的方案,新的促銷形式,與傳統(tǒng)相比有許多優(yōu)點:它降低產(chǎn)品成本;利用網(wǎng)絡(luò)作為交互平臺;改變傳統(tǒng)的人與人直接碰面交談的方式,可以降低交互交談時受空間和時間的限制;信息的傳遞及發(fā)布更新更加迅速靈活,新的技術(shù)產(chǎn)品信息上傳后,可以立即得到推廣和發(fā)現(xiàn),客戶可以立即看到,對于滿意的產(chǎn)品,可以直接與客服人員交談,從而大大提高了效率。網(wǎng)站的主要功能是利用網(wǎng)站作為公司企業(yè)產(chǎn)品的展示平臺,將最新產(chǎn)品的一些基本信息以及相關(guān)新聞、公司目前概況等信息以網(wǎng)站的形式發(fā)布到網(wǎng)絡(luò)上,以供人們觀看與借鑒。本次的畢業(yè)設(shè)計課題是基于JSP設(shè)計的企業(yè)網(wǎng)站系統(tǒng),它的產(chǎn)生背景

10、源于武夷山市企業(yè)信息化建設(shè)。此設(shè)計更具實際研究意義,目的是綜合所學(xué)知識和利用身邊的網(wǎng)絡(luò)資源,鍛煉動手實踐能力,有利于提高綜合學(xué)習(xí)能力。順利完成設(shè)計課題的前提條件還需要很多課外知識的補充,如MVC開發(fā)模式,當(dāng)前流行的J2EE框架,對XML等配置文件的書寫有一定的了解等等。1.2 研究意義信息化技術(shù)飛速發(fā)展,科學(xué)技術(shù)一日千里,這推快了人們的生活節(jié)奏。時間變得更加珍貴。任何產(chǎn)品需要很好的被使用,其知名度就至關(guān)重要。人們生活中更多接觸的便是電視、電腦、 這些科技產(chǎn)品。那么對于軟件領(lǐng)域研發(fā)出來的科技產(chǎn)品,企業(yè)應(yīng)該如何對其推廣宣傳和銷售。源于這一思考,設(shè)想如果各大企業(yè)公司能紛紛建立起屬于自己的企業(yè)網(wǎng)站,將

11、最新的產(chǎn)品和新聞實時的發(fā)布更新,那么去推廣一個網(wǎng)站相對來講更加的省時省力,這是提高效率的有效途徑。企業(yè)建立網(wǎng)站,這樣可以很好的對外展示企業(yè)文化,是企業(yè)實力的一種表達方式。今天,各行各業(yè)的競爭日趨激烈,每個企業(yè)所面臨的主要任務(wù)是提高工作效率和工作質(zhì)量。企業(yè)網(wǎng)站的建立可以大量降低人力資源方面的成本付出,突破了時間和空間的限制,客戶對產(chǎn)品的詳細了解可以在任何時間和地點進行,可以即時的進行。有了展銷產(chǎn)品的網(wǎng)站平臺,客戶就不需要到實地去查詢產(chǎn)品詳情,可以借助網(wǎng)絡(luò)平臺聯(lián)系銷售員,通過遠程體驗,大大便捷了交易所帶來的時間問題。鑒于互聯(lián)網(wǎng)的諸多優(yōu)勢以及對國內(nèi)外軟件產(chǎn)品的銷售現(xiàn)狀的研究分析,我此次的設(shè)計是開發(fā)一

12、個集成了發(fā)布產(chǎn)品、發(fā)布新聞、服務(wù)咨詢等功能于一體的企業(yè)網(wǎng)站,以微小的力量推動中國互聯(lián)網(wǎng)的發(fā)展。2 網(wǎng)站系統(tǒng)相關(guān)技術(shù)及工具介紹2.1 服務(wù)器Tomcat7.0簡介 Tomcat由開源社區(qū)研究開發(fā),對編程興趣人員可以自由對Tomcat服務(wù)器進行學(xué)習(xí)和研究。因為它的免費和開源的這些特性。Tomcat得到了極大的推廣,并且經(jīng)過開源社區(qū)的奉獻,它的性能也更加強大,趨于完善。 Tomcat是純粹的由java代碼編寫。它以小型、輕量級Web服務(wù)器的特點被廣泛的推廣運用并受人喜愛。在個人的電腦上安裝上服務(wù)器軟件,個人的PC電腦自然就成為了一個初具模型服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問量不多的情

13、況下可以被普遍地使用。在配置好Tomcat服務(wù)器的電腦上,這樣Tomcat就可以對HTML頁面等用戶發(fā)出的訪問請求進行響應(yīng)1。 我們將web應(yīng)用程序部署到Tomcat服務(wù)器中,就可以實現(xiàn)在本地進行web應(yīng)用程序的調(diào)試運行。2.2 JAVA語言Java以其面向?qū)ο蟮膬?yōu)勢和安卓市場被廣闊人群深知。由于Java被很流行的推出,同時擁有世界上最大的開源社區(qū)正在迅速發(fā)展,對c+語言已經(jīng)形成了強大的沖擊。Java可以解決一些復(fù)雜的邏輯問題,將問題轉(zhuǎn)化為面向?qū)ο蟮乃枷肴ソ鉀Q。Java語言的由杰姆斯高斯林和他的同事共同開發(fā),工程正式啟動于1995年。后期更名為Java,并且重新設(shè)計開發(fā)的互聯(lián)網(wǎng)應(yīng)用。

14、由Java編寫出的源代碼,經(jīng)虛擬機的類加載器編譯成字節(jié)碼文件后,可以運行在不同的平臺上。這樣就脫離了java的運行環(huán)境,只需要編譯過一次,就可以到處運行2。Java有一個用戶友好,貼近現(xiàn)實生活的語法。這樣的語言具備著獨特的優(yōu)勢,擁有面向?qū)ο蟮母拍睿€(wěn)定性,和平臺獨立性,安全性,穩(wěn)定性和支持多線程,動態(tài)等優(yōu)良特性。因為Java多的線程特性,處理器在不同的線程間快速切換。相比其他語言,如C+沒有內(nèi)置的多線程機制,因此C+的多線程就必須調(diào)用操作系統(tǒng)的多線程功能來進行多線程程序的設(shè)計。Java在軟件的編程語言設(shè)計中,不單能夠應(yīng)用于開發(fā)大型的應(yīng)用程序,并且在Internet的應(yīng)用開發(fā)方面也較為突出。Ja

15、va不僅是一門現(xiàn)在大家大量使用的編程語言,就現(xiàn)在所知道的IT行業(yè)很多最新的技術(shù)都涉及了java語言,java早已經(jīng)被大家公認為當(dāng)今世上最重要的語言之一3。2.3 MySQL就目前的數(shù)據(jù)分類來看,MySQL的規(guī)模可以將其劃分到中型數(shù)據(jù)庫,它是由瑞典研發(fā)人員所研發(fā),目前已經(jīng)屬于Oracle公司。MySQL是最流行的關(guān)系數(shù)據(jù)庫管理系統(tǒng),MySQL在諸多的Web應(yīng)用程序中是最好的關(guān)系數(shù)據(jù)庫管理系統(tǒng)4。MySQL的特點就是高效靈活,它的工作原理是將數(shù)據(jù)保存一張張的表中,數(shù)據(jù)整體存放合理,結(jié)構(gòu)優(yōu)良。MySQL使用標(biāo)準(zhǔn)的結(jié)構(gòu)化查詢語言、其軟件體積小、反應(yīng)速度快、成本低、開源,由于這些優(yōu)勢,特別是小型和中型網(wǎng)

16、站的應(yīng)用開發(fā)通常是以MySQL為首選。MySQL的底層應(yīng)用語言以C和C+為主,使用了多種編譯器對其進行測試和不斷改善,在移植性方面,mysql的表現(xiàn)較為突出。多種操作系統(tǒng)對mysql都支持,像通俗常用的就有:Linux、Mac OS、Windows等操作系統(tǒng)。它還為為多種編程語言提供了API的支持。例如Java、C+、C和Tcl等,MySQL與這邊編程都能完美融合。另外MySQL對多線程處理方面也有一些優(yōu)勢,這樣就能使得服務(wù)器的CPU資源能夠被充分的利用起來。因為MySQL提供的標(biāo)準(zhǔn)結(jié)構(gòu)化查詢語言、提供ODBC和JDBC等連接數(shù)據(jù)庫的方法,使其更加便于管理、檢查,在優(yōu)化數(shù)據(jù)庫操作方面也更加便捷

17、5。2.4 HibernateHibernate的優(yōu)點:對JDBC的封裝,簡化了許多重復(fù)的代碼。對DAO層編碼工作進行了簡化,使開發(fā)可以集中精力關(guān)心業(yè)務(wù)邏輯。移植性好,它支持多種數(shù)據(jù)庫,這樣更換數(shù)據(jù)庫時代碼的改變量就比較少。該框架沒有實現(xiàn)任何接口,沒有侵入性。是一個輕量級框架。Hibernate延遲加載:延遲加載的特點是當(dāng)一個對象或?qū)ο蟮膶傩圆樵儠r,該對象或?qū)傩詴簳r不存在內(nèi)存中,只有當(dāng)程序真正使用到數(shù)據(jù)時,該數(shù)據(jù)才被加載到內(nèi)存中6。優(yōu)化Hibernate:1、在一對多的關(guān)聯(lián)關(guān)系中,應(yīng)該從多的一方維護。2、防止使用一對一,盡量使用多對一關(guān)聯(lián)關(guān)系。3、配置對象緩存,減少使用集合緩存。4、減少表字段

18、,表關(guān)聯(lián)不要怕多,二級緩存撐腰。Hibernate因為其簡單的學(xué)習(xí)成本,功能完備并且運行高效,受到開發(fā)人員的喜愛。使用Hibernate自帶的查詢語言HQL,可以使數(shù)據(jù)庫操作方面更加得心應(yīng)手,解決很多開發(fā)上常見的對數(shù)據(jù)庫操作的一系列繁瑣問題,使程序員可以專注于解決業(yè)務(wù)邏輯的問題7。2.5 Spring框架Spring是一個輕量級容器,默認的許多服務(wù)是不自動打開的,需要手動配置來將其打開。學(xué)習(xí)Spring框架的兩個關(guān)鍵:IOC和AOP。內(nèi)部核心是一個Bean工廠Bean Factory,它提供和實現(xiàn)控制反轉(zhuǎn)和依賴注入。另外Spring容器用于申明式的事務(wù),安全等服務(wù)應(yīng)用8。Spring可以與當(dāng)前

19、流行框架的集成,應(yīng)用范圍廣泛,可以是B/S或者C/S9。本網(wǎng)站系統(tǒng)采用注釋的方式來管理事務(wù)。從三層結(jié)構(gòu)來看,Web層的Struts2框架和Dao層的Hibernate框架都與其進行整合。Spring的強大管理及代理等方式,使任何Java應(yīng)用都可以從Spring中受益10。其結(jié)構(gòu)如圖2-1所示:圖2-1 Spring結(jié)構(gòu) 2.6 MVC開發(fā)模式介紹MVC是企業(yè)級應(yīng)用的開發(fā)中常用的設(shè)計模式。它把項目架構(gòu)進行分層設(shè)計,分為表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層。MVC即代表模型視圖控制器。模型Model即為一些常用的實體類,(如Person類實體),實體類主要用于封裝數(shù)據(jù)。視圖View,一般用作數(shù)據(jù)的顯示。

20、在J2EE中視圖由jsp負責(zé)顯示??刂破?Controller),用于協(xié)調(diào)M和V的關(guān)系,也用作解決業(yè)務(wù)邏輯,在Struts2中就是Action類11。1、模型模型一般表示數(shù)據(jù)的封裝。在三層架構(gòu)中,模型擁有較多的處理任務(wù)。模型能為視圖提供數(shù)據(jù)支持。因為模型的代碼可以被多個視圖重復(fù)使用,這樣可以減少代碼的重復(fù)性書寫12。2、視圖視圖提供應(yīng)用戶使用,并且可以與之交互的界面。在Web應(yīng)用初期,界面主要是由HTML做出簡單的顯示,然而,在現(xiàn)在的網(wǎng)絡(luò)技術(shù)發(fā)展下,一些新技術(shù)的出現(xiàn),如XHTML,XMLXSL,WML這些標(biāo)記語言和Web服務(wù)。MVC應(yīng)用程序可以處理許多不同的返回結(jié)果視圖13。3、控制器當(dāng)用戶請

21、求數(shù)據(jù),控制器做出響應(yīng)處理,最終將數(shù)據(jù)進行封裝,再交給jsp做顯示。所以當(dāng)你點擊在JSP互動環(huán)節(jié)時,控制器接收組件的要求和決策模型的呼叫建立負責(zé)處理傳入的請求,然后封裝的數(shù)據(jù),確定該視圖顯示界面14。3 需求分析及總體設(shè)計介紹3.1 需求分析xx模型是典型網(wǎng)上產(chǎn)品展銷實踐中較為普遍的商務(wù)企業(yè)B/S模式,其主要功能模塊包括產(chǎn)品發(fā)布、新聞管理、留言反饋、業(yè)務(wù)咨詢等基本功能。此外,此網(wǎng)站也將實現(xiàn)企業(yè)網(wǎng)站系統(tǒng)的后臺管理,其中包括新增產(chǎn)品的添加與修改信息、新聞的相關(guān)處理功能等。本系統(tǒng)的Web層框架,是基于目前流行的SSH,前臺采用JSP技術(shù)作為顯示和交互,在網(wǎng)站的設(shè)計與開發(fā)過程中,利用軟件設(shè)計模式,做到

22、盡量削減體系功能模塊間的耦合。本網(wǎng)站系統(tǒng)前后臺的功能關(guān)系,如圖3-1所示:圖3-1 系統(tǒng)功能分析 前臺游客瀏覽部分:1 企業(yè)文化展示:顯示企業(yè)精神理念,公司福利待遇等信息;2 經(jīng)營業(yè)務(wù)展示:顯示企業(yè)經(jīng)營范圍內(nèi)業(yè)務(wù)項目;3 新聞顯示:按最新更新展示新聞條目及詳細;4 產(chǎn)品顯示:通過預(yù)覽圖片或產(chǎn)看詳細的方式查看產(chǎn)品的詳細信息;5 留言反饋:通過表單的填寫提交對此網(wǎng)站以及產(chǎn)品的建議或意見。1. 后臺管理員管理部分:1 管理員:管理員登錄;2 新聞管理:分頁查看所有新聞,對新聞進行編輯、批量刪除、添加新聞操作;3 產(chǎn)品管理:按更新時間順序添加新產(chǎn)品、查看產(chǎn)品詳細信息、編輯產(chǎn)品、刪除產(chǎn)品信息;4 網(wǎng)站基

23、本信息管理:更新網(wǎng)站基本信息,企業(yè)理念精神及公司福利,地址和聯(lián)系信息;3.2 項目架構(gòu) 圖3-2 項目架構(gòu) 如圖3-2所示,左邊是項目工程的三層架構(gòu)。Dao層及其接口實現(xiàn)類,這兩個包中的類協(xié)調(diào)負責(zé)對數(shù)據(jù)庫中的數(shù)據(jù)進行存取操作。而domain包下存放的是實體類,主要是為了對數(shù)據(jù)進行封裝和攜帶數(shù)據(jù)。Service及其實現(xiàn)類在三層架構(gòu)中主要是針對業(yè)務(wù)邏輯進行編寫的類。Beans.xml、Hibernate.cfg.xml與struts.xml這三個配置文件則是對應(yīng)SSH框架。而perties則是此web應(yīng)用程序中用到的一個自定義配置文件。右邊的是根目錄結(jié)構(gòu),其下是JSP頁面的存放

24、和樣式控制文件等,例如CSS、js文件等。本次的項目設(shè)計遵循MVC設(shè)計模式,利用Spring容器巧妙的創(chuàng)建和管理類,遵循工廠設(shè)計模式對類進行解耦,按照三層架構(gòu)進行設(shè)計和實現(xiàn),層與層之間類的功能明確,整體結(jié)構(gòu)清晰,便于調(diào)試和管理。3.3 系統(tǒng)工作原理基于web的網(wǎng)站系統(tǒng)是用戶通過瀏覽器發(fā)送請求,根據(jù) 協(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

25、方法來完成對數(shù)據(jù)庫的存取和訪問。如圖3-3所示:Spring將三層中所有的類的創(chuàng)建管理起來,包括控制層,業(yè)務(wù)層的實現(xiàn)類和DAO層中的類。圖3-3 工作原理3.4模型設(shè)計3.4.1控制層設(shè)計在SSH框架組合下,控制層的代碼由struts2的Action來充當(dāng),根據(jù)請求信息調(diào)用指定action類中的方法來進行請求處理,以及返回對應(yīng)的結(jié)果視圖,由jsp將數(shù)據(jù)作為展示給用戶。命名空間以"/sys"標(biāo)記的為后臺的包,以"/cli"標(biāo)記的對應(yīng)前臺,一般由網(wǎng)絡(luò)上的游客隨機訪問。在兩大類對應(yīng)的包名下有對應(yīng)前臺和后臺模塊的諸多Action類,代碼如下:Struts2中的前

26、臺配置:<package name="cli" namespace="/cli" extends="default"> <!- 客戶端首頁 -> <action name="indexAction_*" class="indexAction" method="1"> <result name="index">/WEB-INF/client/index.jsp</result> </actio

27、n> <!- 業(yè)務(wù)中心 -> <action name="businessAction_*" class="businessAction" method="1"> <result name="business">/WEB-INF/client/business.jsp</result> </action> <!- 產(chǎn)品展示 -> <action name="productAction_*" class="

28、;productAction" method="1"> <result name="product">/WEB-INF/client/product.jsp</result> <result name="promore">/WEB-INF/client/promore.jsp</result> </action> <!- 新聞中心 -> <action name="newsAction_*" class="new

29、sAction" method="1"> <result name="news">/WEB-INF/client/news.jsp</result> <result name="fullText">/WEB-INF/client/fullText.jsp</result> </action> </package>3.4.2業(yè)務(wù)層設(shè)計業(yè)務(wù)層由Struts2的action類和一些實體類配合使用,主要是針對業(yè)務(wù)邏輯與數(shù)據(jù)封裝,數(shù)據(jù)攜帶這些請求進行處理,然

30、后返回結(jié)果視圖,供頁面做顯示。業(yè)務(wù)層的處理內(nèi)容包含:企業(yè)軟件產(chǎn)品的增刪改查功能、新聞模塊的顯示功能、留言與意見反饋功能、客服在線咨詢等。1、 軟件產(chǎn)品業(yè)務(wù)設(shè)計,靈感來自于一些企業(yè)的門戶網(wǎng)站,其思路是:產(chǎn)品羅列,可以對產(chǎn)品的詳細信息查看,在產(chǎn)品的查看過程中可以即時的聯(lián)系客服人員訂購咨詢或了解詳情。下面是產(chǎn)品業(yè)務(wù)類實現(xiàn)的部分代碼:/ 后臺-顯示產(chǎn)品列表public String list() QueryBuilder queryBuilder = new QueryBuilder(Product.class);queryBuilder.addOrderProperty("updateTi

31、me", true);PageView pageView = productService.getPageView(queryBuilder, getPage Num(request);request.setAttribute("Products", pageView);return "list"/ 后臺-添加產(chǎn)品public String add() String suffix = null;try suffix = product.getPicFileName().substring(product.getPicFileName().las

32、tIndexOf(".");if (!".jpg".equalsIgnoreCase(suffix) this.addFieldError("msg", "格式錯誤");return "addUI" catch (Exception e) this.addFieldError("msg", "請選擇產(chǎn)品圖片");return "addUI"/ 文件上傳if (product.getPicFileName() != null) Strin

33、g tmpFileName = product.getPicFileName().substring(product.getPicFileName().lastIndexOf("/") + 1);String UUIDName = UUIDUitls.getUUID() + suffix;String savedPath = ServletActionContext.getServletContext().getRealPath(uploads);File savedFile = new File(savedPath, UUIDName);if (product.getPi

34、c() = null) this.addFieldError("warn", "請選擇圖片");return "addUI"product.getPic().renameTo(savedFile);/ 添加記錄到數(shù)據(jù)庫product.setNewName(UUIDName);product.setOglName(tmpFileName);product.setUpdateTime(new Date();productBiz.save(pro);request.setAttribute("msg", "提示

35、:上傳成功");return "addUI"2、 留言反饋處理:首先對想要留言的用戶進行規(guī)則校驗、 號碼校驗、郵箱規(guī)則校驗,校驗不通過的(包含空)將不提交頁面,當(dāng)非空等檢測通過之后,就提交表單,這樣就可以從數(shù)據(jù)庫中查看到經(jīng)過檢測的用戶留言,可以防止大量的垃圾留言。3、 新聞?wù)故緲I(yè)務(wù):包括新聞條目,新聞的發(fā)布時間按照更新的時間排序,通過分頁對新聞進行顯示。新聞模塊的功能實現(xiàn),是從數(shù)據(jù)庫按頁查出當(dāng)前顯示頁的新聞頁集合信息,用list集合封裝,然后借助ognl對其進行迭代操作并顯示。而在前臺頁面的分頁功能實現(xiàn),則是由Action去獲取每頁的大小數(shù)和所查看數(shù)據(jù)的當(dāng)前頁碼,

36、動態(tài)的拼湊hql語句,每次去數(shù)據(jù)庫詢出指定頁碼的記錄條數(shù),進行封裝到page實體,再將多個page實體封裝成list集合,完成查詢后將返回結(jié)果給頁面進行迭代顯示。下面為新聞模塊的部分代碼:/ 新聞列表public String listNews() QueryBuilder queryBuilder = new QueryBuilder(News.class);queryBuilder.addOrderProperty("record", false);PageView pageView = newsService.getPageView(queryBuilder, get

37、PageNum(request);request.setAttribute("news", pageView);return "listNews"/ 批量刪除新聞public String del() / 獲取idsString sids = request.getParameterValues("News_ids");Integer ids = DataType.converterStringArray2IntegerArray(sids);if (ids != null) / 刪除newsService.deleteSysProd

38、uctsByIds(ids);return "listAction"return null;/ 發(fā)布新聞public String addNews() / 非空判斷-titleif (StringUtils.isBlank(news.getTitle() this.addFieldError("msg", "請?zhí)顚懳恼聵?biāo)題");return "addNewsUI"/ 如果是事紀(jì)-年份不能為空String suffix = null;if (News.EVENTS_VALUE.equals(news.getRemar

39、k() if (StringUtils.isBlank(news.getYear() this.addFieldError("msg", "請?zhí)顚懯录o(jì)年份");return "addNewsUI" else / 如果是新聞,圖片不能為空if (StringUtils.isBlank(news.getPicFileName() / 新聞有圖片this.addFieldError("msg", "請選擇新聞圖片");return "addNewsUI"/ 圖片名不為空的時候-驗后

40、綴名try suffix = news.getPicFileName().substring(news.getPicFileName().lastIndexOf(".");if (!".jpg".equalsIgnoreCase(suffix) this.addFieldError("msg", "格式錯誤");return "addNewsUI" catch (Exception e) this.addFieldError("msg", "請選擇圖片")

41、;return "addNewsUI"/ 新聞發(fā)布者-驗空if (StringUtils.isBlank(news.getName() this.addFieldError("msg", "請?zhí)顚懩纳矸?quot;);return "addNewsUI"/ 新聞內(nèi)容-驗空if (StringUtils.isBlank(news.getContent() this.addFieldError("msg", "請?zhí)顚懳恼聝?nèi)容");return "addNewsUI"/

42、 1根據(jù)remark判斷新聞還是事紀(jì)if (News.EVENTS_VALUE.equals(news.getRemark() / 設(shè)置年份"2010 -"String temp = news.getYear().substring(0, 4);news.setYear(temp + ""); / 2設(shè)置新聞發(fā)布時間,截取news.setPostTime(new Date();/ 3.新聞?wù)厝f (news.getContent().length() > 100) news.setDigest(news.getContent().substr

43、ing(0, 99);/ 4.設(shè)置新聞圖片上傳信息-圖片上傳if (StringUtils.isNotBlank(news.getPicFileName() / System.out.println(picForm.getPicFileName();String tmpFileName = news.getPicFileName().substring(news.getPicFileName().lastIndexOf("/") + 1);String UUIDName = UUIDUitls.getUUID() + suffix;String savedPath = Se

44、rvletActionContext.getServletContext().getRealPath(uploads);System.out.println("-新聞添加-" + savedPath);File savedFile = new File(savedPath, UUIDName);/ 新聞必須要有圖、事紀(jì)圖片可有可無-以下判斷不需要if (news.getPic() = null) this.addFieldError("warn", "請選擇圖片");return "addNewsUI"news.g

45、etPic().renameTo(savedFile);/ 添加記錄到數(shù)據(jù)庫news.setNewName(UUIDName);news.setOglName(tmpFileName);/ 4.其他信息保存newsService.save(news);request.setAttribute("msg", "提示:文章發(fā)布成功");return "addNewsUI"3.4.3工具類設(shè)計當(dāng)設(shè)計的程序在調(diào)用過程中將重復(fù)性的調(diào)用一些方法或需要便捷的提供調(diào)用時,這時候就需要將其抽取出來,封裝成單獨的工具。這樣就可以與業(yè)務(wù)無關(guān)而可以在任意的層

46、被單獨使用。在此次設(shè)計中的工具類方法有:CheckPrivalegeInterceptor.java類用于檢測后臺操作時,管理員是否是登錄狀態(tài)的檢測。DataType.java用于對web前臺所獲取到的數(shù)據(jù)參數(shù)進行類型轉(zhuǎn)換。MD5keyBean.java則是用于對字符串進行加密使用,一般是對其成數(shù)據(jù)指紋摘要,是一串32位的明文密碼。而SessionUtils.java是針對登錄用戶可以設(shè)置服務(wù)器session的存活時間或者退出系統(tǒng)時將user從session中移除出去。UUIDUtil.java用于生成全球唯一id號。代碼例如:1. DataType.javapublic class Data

47、Type public static Integer converterStringArray2IntegerArray(String sids) if (sids != null && sids.length > 0) Integer ids = new Integersids.length;for (int i = 0; i < ids.length; i+) if (StringUtils.isNotBlank(sidsi) idsi = Integer.parseInt(sidsi);return ids;return null;public static

48、Integer Str2Integer(String id)if (StringUtils.isNotBlank(id) return Integer.parseInt(id);return null;public static String Integer2Str(Integer id)if (id!=null) return id.toString();return null;2. SessionUtils.javapublic class SessionUtils public static void setSysUserToSession( ServletRequest request

49、,User user) Session session=request.getSession();if(user=null)return;session.setAttribute("user", user);public static User getSysUserFormSession( ServletRequest request) Session session=request.getSession(false); if(session=null) return null; User user=(User)session.getAttribute("user

50、"); return user;3.4.4持久層設(shè)計為了解決并發(fā)訪問帶來的問題,此次設(shè)計選用以c3p0數(shù)據(jù)源為其設(shè)計數(shù)據(jù)庫連接池。由每一個實體類對應(yīng)一張表,利用Hibernate的持久化,懶加載,緩存等特性對數(shù)據(jù)進行保存、更新和頻繁的查找操作。從Struts2的Action的創(chuàng)建、Service類和Dao對象的創(chuàng)建,使用了當(dāng)前流行的工廠模式,三層架構(gòu)中每一個層的類都對其進行抽取接口,并且使用注解加配置文件相結(jié)合,由Spring容器代為管理對象的生命周期,靈活搭配,整個項目工程看起來結(jié)構(gòu)清晰。事務(wù)的控制,同樣是采用注解的方式,這樣的設(shè)計結(jié)構(gòu)一目了然,便于后期系統(tǒng)的維護和升級15。下面是

51、代碼的部分例如:1. Hibernate配置文件中的映射:<hibernate-configuration><session-factory><mapping resource="com/jinrun/domain/User.hbm.xml" /><mapping resource="com/jinrun/domain/Picture.hbm.xml" /><mapping resource="com/jinrun/domain/Message.hbm.xml" /><

52、mapping resource="com/jinrun/domain/SysInfo.hbm.xml" /><mapping resource="com/jinrun/domain/Product.hbm.xml" /><mapping resource="com/jinrun/domain/Business.hbm.xml" /><mapping resource="com/jinrun/domain/News.hbm.xml" /><mapping resour

53、ce="com/jinrun/domain/CompanyInfo.hbm.xml" /><mapping resource="com/jinrun/domain/Employee.hbm.xml" /></session-factory></hibernate-configuration>2. Spring控制反轉(zhuǎn)和事務(wù)管理注解:/*獲取父類的泛型類型*/private Class entityClass=GenericClass.getGenericClass(this.getClass();Resource

54、(name="sessionFactory")public void setSessionFactoryDI(SessionFactory sessionFactory) super.setSessionFactory(sessionFactory);public void save(T t) this.getHibernateTemplate().save(t);public void update(T entity) this.getHibernateTemplate().update(entity);事務(wù)注解:Service("newsService&quo

55、t;)Transactionalpublic class NewsServiceImpl implements NewsService / 事務(wù)注解Transactional(isolation = Isolation.DEFAULT, propagation = Propagation.REQUIRED, readOnly = false)public void save(News news) News downNews = findDownIdIsNullById();4 網(wǎng)站的前臺設(shè)計與實現(xiàn)在這個章節(jié)將會介紹這次網(wǎng)站設(shè)計的界面部分。xx的前臺是供游客瀏覽新聞、接觸這個門戶網(wǎng)站企業(yè)的基本信

56、息,查看最新設(shè)計產(chǎn)品,意見反饋及聯(lián)系該網(wǎng)站等一些基本所需用途。一個網(wǎng)站的前臺的設(shè)計首先應(yīng)該是精美,令人舒適,其次突出企業(yè)的宣傳主題和精神理念。所以,前臺的設(shè)計應(yīng)當(dāng)是簡明扼要、層次分明、條理清晰。下面將介紹“xx”的前端部分的實現(xiàn)。4.1 首頁設(shè)計首頁為6個主要部分,導(dǎo)航欄平鋪的方式,簡明清晰的列出。如圖4-1所示:圖4-1 網(wǎng)站首頁展示圖4-1展示了網(wǎng)站的首頁信息,導(dǎo)航欄的左側(cè)為一個企業(yè)的logo標(biāo)志。右邊分別對應(yīng)六項網(wǎng)站常用的菜單。其下方為可更新,可自動切換的宣傳圖片。首頁可以展示出公司最新研發(fā)的軟件產(chǎn)品宣傳,包括宣傳圖片和產(chǎn)品信息。4.2 產(chǎn)品展示圖4-2,產(chǎn)品的展示,可以是以圖片預(yù)覽的方式連續(xù)翻看產(chǎn)品信息,或可點擊查看詳細:圖4-2 產(chǎn)品展示4.3新聞中心圖4-3,按照后臺的發(fā)布時間順序?qū)⒆钚赂碌男侣勶@示在最前,并顯示時間和新聞標(biāo)題:圖4-3 新聞中心4.4 留言反饋界面展示圖4-4聯(lián)系我們界面:圖4-4 留言反饋界面表單校驗注冊頁面校驗:l 您的:Ø 不能為空;l 電子郵箱:Ø 不能為空;Ø 按照郵箱的規(guī)則校驗進行約束;l :Ø 不能為空;Ø 數(shù)字約束;Ø 長度控制在7-15位

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論