国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運(yùn)營 > Javaweb-SSH公司通用門戶網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)

Javaweb-SSH公司通用門戶網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)

時(shí)間:2023-08-29 07:54:01 | 來源:網(wǎng)站運(yùn)營

時(shí)間:2023-08-29 07:54:01 來源:網(wǎng)站運(yùn)營

Javaweb-SSH公司通用門戶網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn):摘要:隨著IT應(yīng)用的深入普及,各行各業(yè)都積累了大量的信息資源,實(shí)現(xiàn)企業(yè)內(nèi)部信息技術(shù)資源的有效整合和精益化管理,是越來越多公司企業(yè)的迫切需求。公司門戶網(wǎng)站是一個(gè)企業(yè)向外宣傳企業(yè)品牌和展示產(chǎn)品及開拓市場(chǎng)的有力工具,是行業(yè)或地區(qū)規(guī)模化效益的有力手段,是市場(chǎng)應(yīng)對(duì)貿(mào)易全球化和管理信息化趨勢(shì)時(shí)的一個(gè)必然選擇。本文基于J2EE相關(guān)技術(shù)和B/S模式的MVC架構(gòu),使用SSH框架進(jìn)行開發(fā),合理運(yùn)用設(shè)計(jì)模式,并遵循軟件工程的開發(fā)思想,實(shí)現(xiàn)了預(yù)期的功能。系統(tǒng)對(duì)行業(yè)資源和行業(yè)信息進(jìn)行有效的整合,不僅可以增強(qiáng)企業(yè)的宣傳力度,增加企業(yè)產(chǎn)品展示和服務(wù)的機(jī)會(huì)。鑒于此,本文首先闡述了公司通用門戶網(wǎng)站的需求分析的設(shè)計(jì)與實(shí)現(xiàn),其次闡述了其相關(guān)技術(shù)的理論研究和實(shí)踐運(yùn)用。最后系統(tǒng)地實(shí)現(xiàn)了公司門戶網(wǎng)站的基本功能,包括新聞、產(chǎn)品、視頻、留言中心,公司信息介紹等,以及對(duì)應(yīng)的后臺(tái)管理。

關(guān)鍵詞:門戶網(wǎng)站;Strusts2;Spring;Hibernate

二、引言

2.1 項(xiàng)目背景

世紀(jì)以來,互聯(lián)網(wǎng)進(jìn)入到一個(gè)高速發(fā)展的時(shí)代,網(wǎng)絡(luò)資源和網(wǎng)絡(luò)信息變得越來越豐富,人們已經(jīng)習(xí)慣于在網(wǎng)絡(luò)中獲取信息,了解世界。信息化的發(fā)展,也帶動(dòng)著其它產(chǎn)業(yè)的發(fā)展,各行業(yè)都將與網(wǎng)絡(luò)進(jìn)行著更深入的融合和滲透。越來越多的公司企業(yè)已開始從對(duì)互聯(lián)網(wǎng)的認(rèn)知階段進(jìn)入到認(rèn)同和行動(dòng)階段,紛紛建立了自己門戶的網(wǎng)站,使企業(yè)本身不局限于某個(gè)地區(qū),而是直接面向全世界,它的廣泛性、高效性為企業(yè)帶來了不容質(zhì)疑的效益和效率。公司的網(wǎng)絡(luò)形象是公司形象的重要組成部分,它可以提高公司的知名度,增強(qiáng)企業(yè)的競(jìng)爭(zhēng)力,因此企業(yè)建立一個(gè)具有自己特色的,精美完善的,集多種功能于一體的公司門戶網(wǎng)站,尤其重要。

作為一個(gè)公司門戶網(wǎng)站,首先要簡(jiǎn)潔美觀,展現(xiàn)出公司的形象,另外要實(shí)現(xiàn)公司的資源信息化,使更多的人通過網(wǎng)絡(luò)可以去了解公司。公司企業(yè)可以通過門戶網(wǎng)站,發(fā)布新聞,展示產(chǎn)品圖片和影像資源,招攬加盟商,以及人才招聘等。通過網(wǎng)站可以及時(shí)有效獲得用戶獲得反饋,獲得用戶的需求,有助于提高公司的服務(wù)規(guī)范和改善不足[1]。

2.2 項(xiàng)目說明

本系統(tǒng)為公司通用門戶網(wǎng)站,主要分為前臺(tái)和后臺(tái)兩大部分。前臺(tái)包括首頁展示,新聞中心,產(chǎn)品展示,視頻中心,公司信息,留言中心,加盟注冊(cè)等功能。后臺(tái)可以對(duì)前臺(tái)的資源進(jìn)行有效的管理,包括公司信息管理,新聞管理,產(chǎn)品圖片管理,視頻管理,留言管理,也可以用戶和客戶建立連接,發(fā)送資源信息。同時(shí)項(xiàng)目要比較靈活,實(shí)現(xiàn)快速修改,適用于各類中小型企業(yè)公司。另外要便于功能擴(kuò)展,以及后期維護(hù)。

三、相關(guān)技術(shù)

本系統(tǒng)作為一個(gè)小型的企業(yè)級(jí)應(yīng)用,良好的架構(gòu)設(shè)計(jì)起著巨大的作用,系統(tǒng)基于J2EE的體系結(jié)構(gòu),采用MVC分層設(shè)計(jì),使用SSH框架。通過這些技術(shù)可以提高系統(tǒng)的開發(fā)效率,也方便業(yè)務(wù)功能的拓展和維護(hù)。下面對(duì)相關(guān)技術(shù)進(jìn)行一個(gè)簡(jiǎn)單的介紹。

3.1 EE相關(guān)技術(shù)

EE是Java的企業(yè)級(jí)應(yīng)用,是一套面向企業(yè)應(yīng)用的體系結(jié)構(gòu)。J2EE通過提供中間層集成框架來滿足多種需求,其中包括高可用性、高可靠性、高可擴(kuò)展性以及低成本等需求。J2EE是JavaSE的擴(kuò)展和延伸,它擁有JavaSE中的許多優(yōu)點(diǎn),例如:平臺(tái)無關(guān)性,也就是常說的“一次編寫、隨處運(yùn)行”的特性,從而擁有寬廣的應(yīng)用空間。J2EE是一套全然不同于傳統(tǒng)應(yīng)用開發(fā)的技術(shù)架構(gòu),包含許多組件,可簡(jiǎn)化并規(guī)范應(yīng)用系統(tǒng)的開發(fā)與部署,進(jìn)而提高可移植性、安全與再用價(jià)值。J2EE核心是一組技術(shù)規(guī)范與指南,其中所包含的各類組件、服務(wù)架構(gòu)及技術(shù)層次,均有共通的標(biāo)準(zhǔn)及規(guī)格,讓各種依循J2EE架構(gòu)的不同平臺(tái)之間,存在良好的兼容性。J2EE體系結(jié)構(gòu)提供中間層集成框架用來滿足無需太多費(fèi)用而又需要高可用性、高可靠性以及可擴(kuò)展性的應(yīng)用的需求。通過提供統(tǒng)一的開發(fā)平臺(tái),J2EE降低了開發(fā)多層應(yīng)用的費(fèi)用和復(fù)雜性,同時(shí)提供對(duì)現(xiàn)有應(yīng)用程序集成強(qiáng)有力支持,有良好的向?qū)еС执虬筒渴饝?yīng)用,添加目錄支持,增強(qiáng)安全機(jī)制,提高性能[2]。

3.2 MVC相關(guān)技術(shù)

MVC是Model,View,Controller的簡(jiǎn)稱,即模型一視圖一控制器。MVC是在二十世紀(jì)八十年代發(fā)明的一種軟件設(shè)計(jì)模式,隨著J2EE的成熟,MVC逐漸成為在J2EE平臺(tái)上推薦的一種設(shè)計(jì)模式,也是廣大Java開發(fā)者非常感興趣的設(shè)計(jì)模型。隨著網(wǎng)絡(luò)應(yīng)用的快速增加,MVC對(duì)于Web應(yīng)用的開發(fā)無疑是一種非常先進(jìn)的設(shè)計(jì)思想,無論選擇那種語言,無論應(yīng)用多復(fù)雜,它都能夠在理解分析應(yīng)用模型時(shí)提供最基本的分析方法,為構(gòu)造產(chǎn)品提供清晰的設(shè)計(jì)框架,也為軟件工程提供規(guī)范的依據(jù)。MVC的設(shè)計(jì)模式是在框架的發(fā)展過程中誕生的一種優(yōu)秀的設(shè)計(jì)思想。MVC模型原理圖如圖2–1所示。







? 圖2–1 MVC模型原理圖

這三部分所實(shí)現(xiàn)的功能如下:

模型部分(model)是應(yīng)用程序的主體部分。模型表示業(yè)務(wù)數(shù)據(jù) 和業(yè)務(wù)邏輯。一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù)。由于同一個(gè)模型可以被多個(gè)視圖重用,所以提高了應(yīng)用的可重用性。

視圖部分(view)是用戶看到并與之交互的界面。視圖向用戶顯示相關(guān)的數(shù)據(jù),并能接收用戶的輸入數(shù)據(jù),但是它并不進(jìn)行任何實(shí)際的業(yè)務(wù)處理。視圖可以向模型查詢業(yè)務(wù)狀態(tài),但不能改變模型。視圖還能接受模型發(fā)出的數(shù)據(jù)更新事件,從而對(duì)用戶界面進(jìn)行同步更新。

控制器部分(controller)是處理用戶與軟件的交互操作的,其職責(zé)是控制提供模型中任何變化的傳播,進(jìn)而實(shí)現(xiàn)對(duì)模型的計(jì)算控制,是使模型和視圖協(xié)調(diào)工作的部件。通常一個(gè)視圖具有一個(gè)控制器。

模型、視圖與控制器的分離,使得一個(gè)模型可以具有多個(gè)顯示視圖。如果用戶通過某個(gè)視圖的控制器改變了模型的數(shù)據(jù),所有其他依賴于這些數(shù)據(jù)的視圖都應(yīng)反映出這些變化。因此,無論何時(shí)發(fā)生了何種數(shù)據(jù)變化,控制器都會(huì)將變化通知所有的視圖,致使顯示更新。

3.3 SSH框架技術(shù)

框架是整個(gè)系統(tǒng)或系統(tǒng)一部分的可重用設(shè)計(jì),由一組抽象的類及其實(shí)例間的相互作用方式組成??蚣芤话憔哂屑床寮从玫目芍赜眯?、成熟的穩(wěn)定性以及良好的團(tuán)隊(duì)協(xié)作性。軟件開發(fā)越來越離不開框架技術(shù)??蚣芸梢钥s短應(yīng)用軟件系統(tǒng)的開發(fā)周期,提高軟件生產(chǎn)效率和質(zhì)量。J2EE復(fù)雜的多層結(jié)構(gòu)決定了大型的J2EE項(xiàng)目需要運(yùn)用框架和設(shè)計(jì)模式來控制軟件質(zhì)量。目前,市場(chǎng)上出現(xiàn)了一些商業(yè)的、開源的基于J2EE的應(yīng)用框架,其中主流的框架技術(shù)有:基于MVC模式的Struts框架和基于IoC模式的Spring框架以及對(duì)象關(guān)系映射框架Hibernate等[3]。

3.3.1 Strust2

Struts2是一種基于MVC經(jīng)典設(shè)計(jì)模式的軟件框架,Struts2是Struts1和WebWork技術(shù)的合并,它通過把Servlet、JSP、JavaBean、自定義標(biāo)簽和信息資源整合到一個(gè)統(tǒng)一的框架中,為Web開發(fā)提供具有高可配置性的MVC開發(fā)模式。主要分為模型(Model)、視圖(Viewer)和控制器(Controller)---部分,其主要的設(shè)計(jì)理念是通過控制器將表現(xiàn)邏輯和業(yè)務(wù)邏輯解耦,以提高系統(tǒng)的可維護(hù)性、可擴(kuò)展性和可重用性[4]。

Struts2是一個(gè)開源項(xiàng)目軟件,可以讓使用者深入了解其內(nèi)部運(yùn)行的實(shí)現(xiàn)機(jī)制,甚至可以根據(jù)自己的需要對(duì)其進(jìn)行修改和拓展,因此其擁有巨大的靈活性。同時(shí),Struts2經(jīng)過多年的發(fā)展,已經(jīng)逐漸成長(zhǎng)為一個(gè)穩(wěn)定、成熟的Web應(yīng)用框架,受到了多數(shù)人的歡迎和支持,其應(yīng)用的環(huán)境也是相當(dāng)成熟的。其次,在Struts2應(yīng)用框架中,通過對(duì)MVC各層次良好的劃分,清晰的界定了系統(tǒng)各功能層次的界限,有效的理清了系統(tǒng)的結(jié)構(gòu)和流程,為系統(tǒng)今后的維護(hù)、拓展和升級(jí)打下了良好的基礎(chǔ)。同時(shí),通過構(gòu)建模型層,使得業(yè)務(wù)邏輯與數(shù)據(jù)檢索邏輯重用變得容易了。在表示層的開發(fā)上,Struts2擁有一套完整的Taglib(標(biāo)記庫),靈活使用,能夠大大的提高開發(fā)效率。最后,Struts2還提供了與其他優(yōu)秀框架技術(shù)相結(jié)合的擴(kuò)展接口,可以方便的進(jìn)行系統(tǒng)技術(shù)上的升級(jí)[5]。

3.3.2 Spring

Spring是一個(gè)解決了許多J2EE開發(fā)中常見問題并能夠替代EJB技術(shù)的強(qiáng)大的輕量級(jí)框架。Spring的輕盈體現(xiàn)在其框架本身的基礎(chǔ)結(jié)構(gòu)以及對(duì)其他應(yīng)用工具的支持和裝配能力。Spring可使程序研發(fā)人員把各個(gè)技術(shù)層次之間的風(fēng)險(xiǎn)降低。Spring框架的核心是控制翻轉(zhuǎn)IoC(Inversion of Control)/依賴注入DI(Dependence Injection)機(jī)制。IoC是指由容器中控制組件之間的關(guān)系而非傳統(tǒng)實(shí)現(xiàn)中由程序代碼直接操控,這種將控制權(quán)由程序代碼到外部容器的轉(zhuǎn)移,稱為“翻轉(zhuǎn)”。DI是對(duì)IoC更形象的解釋,即由容器在運(yùn)行期間動(dòng)態(tài)地將依賴關(guān)系注入到組件之中。Spring采用設(shè)值注入和構(gòu)造子注入的機(jī)制,通過配置文件管理組件的協(xié)作對(duì)象,創(chuàng)建可以構(gòu)造組件的IoC容器。這樣,不需要編寫工廠模式或者其他構(gòu)造的方法,就可以通過容器直接獲取所需的業(yè)務(wù)組件。Spring體系結(jié)構(gòu)如圖2–2所示。







? 圖2–2 Spring體系結(jié)構(gòu)圖

3.3.3 Hibernate

Hibernate是一個(gè)面向Java環(huán)境的開放源代碼的對(duì)象/關(guān)系數(shù)據(jù)庫映射工具。它對(duì)JDBC進(jìn)行了輕量級(jí)的對(duì)象封裝,使Java程序員可以隨心所欲的使用對(duì)象編程思維來操縱數(shù)據(jù)庫。Hibernate不僅僅管理Java類到數(shù)據(jù)庫表的映射,還提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法,可以大幅度的減少開發(fā)時(shí)人工使用SQL和JDBC處理數(shù)據(jù)的時(shí)間。Hibernate總體架構(gòu)如圖2–3所示。







? 圖2–3 Hibernate總體架構(gòu)圖

持久化(Persistence)是對(duì)數(shù)據(jù)和程序狀態(tài)的保持。大多數(shù)情況下特別是企業(yè)級(jí)應(yīng)用,數(shù)據(jù)持久化操作往往也就意味著將內(nèi)存中的數(shù)據(jù)保存到磁盤上加以固化,而持久化的實(shí)現(xiàn)過程則大多通過各種關(guān)系數(shù)據(jù)庫來完成。持久層(Persistence Layer)是把數(shù)據(jù)庫實(shí)現(xiàn)當(dāng)作一個(gè)獨(dú)立的邏輯,因?yàn)閿?shù)據(jù)庫程序是在內(nèi)存中的,為了使程序運(yùn)行結(jié)束后狀態(tài)得以保存,就要保存到數(shù)據(jù)庫。持久層是在系統(tǒng)邏輯層面上,專注于實(shí)現(xiàn)數(shù)據(jù)持久化的一個(gè)相對(duì)獨(dú)立的領(lǐng)域。ORM是Object Relational Mapping的簡(jiǎn)稱,即對(duì)象關(guān)系映射。它是一種為了解決面向?qū)ο笈c關(guān)系數(shù)據(jù)庫存在的互不匹配的現(xiàn)象的技術(shù)。ORM是通過使用描述對(duì)象和數(shù)據(jù)庫之間映射的元數(shù)據(jù),將Java程序中的對(duì)象自動(dòng)持久化到關(guān)系數(shù)據(jù)庫中。本質(zhì)上就是將數(shù)據(jù)從一種形式轉(zhuǎn)換為另外一種形式。有了ORM對(duì)象,只需用O/R Mapping保存、刪除、取對(duì)象,O/R Mapping負(fù)責(zé)生成SQL。這樣,我們?cè)诰唧w操作數(shù)據(jù)庫的時(shí)候,就不需要再去和復(fù)雜的SQL語句打交道 [6]。

3.3.4 SSH整合

SSH架構(gòu)圖如圖2–4所示。







Struts負(fù)責(zé)Web層。ActionFormBean接收網(wǎng)頁中表單提交的數(shù)據(jù),然后通過Action進(jìn)行處理,再Forward到對(duì)應(yīng)的網(wǎng)頁,在Struts-config.xml中定義了action-mapping,ActionServlet會(huì)加載進(jìn)來。

Spring負(fù)責(zé)業(yè)務(wù)層管理,即Service。Service為Action提供統(tǒng)一的調(diào)用接口,封裝持久層的DAO,并集成Hibernate,Spring可對(duì)JavaBean和事務(wù)進(jìn)行統(tǒng)一管理。

Hibernate負(fù)責(zé)持久層,完成數(shù)據(jù)庫的CRUD操作。Hibernate有一組hbm.xml文件和PO,是與數(shù)據(jù)庫中的表相對(duì)應(yīng)的,然后定義DAO,這些是與數(shù)據(jù)庫打交道的類[7]。

在Struts+Spring+Hibernate系統(tǒng)中,對(duì)象之間的調(diào)用流程如圖2–5所示。







四、系統(tǒng)分析

系統(tǒng)分析的目的在于為系統(tǒng)的實(shí)現(xiàn)制定藍(lán)圖,使以后的開發(fā)過程思路清晰,同時(shí)可以提高開發(fā)的速度和質(zhì)量,為系統(tǒng)運(yùn)行之后的維護(hù)升級(jí)提供參考。系統(tǒng)分析也是對(duì)用戶需求的明確描述,是對(duì)要解決問題的徹底理解,并且對(duì)要解決的問題進(jìn)行詳細(xì)的分析,弄清楚客戶的需求,頁面要如何展示,以及所要實(shí)現(xiàn)的功能,具體到各類的細(xì)節(jié)問題。

4.1 系統(tǒng)可行性研究

4.1.1 技術(shù)可行性

本系統(tǒng)主要是公司門戶網(wǎng)站,達(dá)到企業(yè)進(jìn)行信息資源發(fā)布,與客戶建立聯(lián)系,同時(shí)實(shí)現(xiàn)信息化的管理。從技術(shù)方面,Java已經(jīng)有了將近20年的發(fā)展史,設(shè)計(jì)到各行各業(yè)各個(gè)領(lǐng)域,其中J2EE作為企業(yè)級(jí)開發(fā)在web中也占據(jù)著重要地位,網(wǎng)絡(luò)資源比較豐富,開源軟件比較多。自己在大三的時(shí)候已經(jīng)自學(xué)完SSH,對(duì)各種數(shù)據(jù)庫也有接觸,對(duì)前臺(tái)設(shè)計(jì),JS腳本等也都有所學(xué)習(xí),加上一年多以來的項(xiàng)目經(jīng)驗(yàn)積累,對(duì)項(xiàng)目開發(fā)中的眾多問題也都有所了解,加上有老師的指導(dǎo)。因此,本系統(tǒng)開發(fā)在技術(shù)上是可行的[8]。

4.1.2 經(jīng)濟(jì)可行性

本系統(tǒng)的作為JavaWeb程序,在任何平臺(tái)上搭建服務(wù)器都可以運(yùn)行,而且Java的相關(guān)組件大部分都是開源和免費(fèi)的,因此不需要投入資金去購買相關(guān)的產(chǎn)品服務(wù)和技術(shù)支持,在普通的PC機(jī)安裝服務(wù)器即可運(yùn)行。本系統(tǒng)的所有開發(fā)組件均為開源免費(fèi),無須購買。所以本系統(tǒng)在經(jīng)濟(jì)上是完全可行的。

4.2 用戶功能需求分析

本系統(tǒng)對(duì)公司門戶網(wǎng)站前臺(tái)展示、后臺(tái)管理分別予以實(shí)現(xiàn)。

4.2.1 門戶網(wǎng)站前臺(tái)分析

門戶網(wǎng)站需要有首頁,新聞中心,產(chǎn)品中心,視頻中心,公司介紹,留言中心,用戶加盟注冊(cè)等功能。

首頁

顯示公司宣傳圖片,圖片自動(dòng)切換,以及公司的簡(jiǎn)介,公司動(dòng)態(tài),新聞發(fā)布等信息。

新聞中心

顯示新聞列表,支持分頁,新聞點(diǎn)擊排行,進(jìn)行新聞閱讀,支持打印下載等。

產(chǎn)品中心

顯示公司的產(chǎn)品圖片,支持分頁,以及相關(guān)圖片信息介紹,以及對(duì)應(yīng)產(chǎn)品詳情頁。

視頻中心

顯示視頻信息,支持分頁,顯示視頻點(diǎn)擊排行,下載排行,以及相應(yīng)視頻詳情頁??稍诰€觀看視頻,以及視頻下載。

公司介紹

顯示公司的信息,包括公司介紹,公司大事件,企業(yè)文化,福利待遇等。

留言中心

用戶可進(jìn)行留言,反饋信息,留言頁面要交互友好,提高用戶體驗(yàn)。

加盟注冊(cè)

用戶可以在線注冊(cè)成企業(yè)會(huì)員,支持郵箱激活賬號(hào),注冊(cè)頁面要交互友好,提高用戶體驗(yàn)。

4.2.2 系統(tǒng)后臺(tái)管理分析

后臺(tái)管理系統(tǒng),包括公司信息管理,新聞管理,產(chǎn)品管理,視頻管理,留言管理,用戶管理,考慮系統(tǒng)安全性,加入權(quán)限驗(yàn)證。

公司信息管理

對(duì)前臺(tái)的公司信息進(jìn)行管理,可進(jìn)行修改。

新聞管理

可以進(jìn)行新聞發(fā)布,以及把新聞群發(fā)給注冊(cè)加盟用戶,以及對(duì)以往新聞信息進(jìn)行修改刪除操作。

產(chǎn)品管理

可以進(jìn)行圖片上傳,圖片壓縮,以及相關(guān)產(chǎn)品信息添加修改和刪除操作。

視頻中心

可以對(duì)視頻進(jìn)行上傳,視頻格式類型轉(zhuǎn)化,采用多線程技術(shù)進(jìn)行處理,對(duì)視頻信息可以進(jìn)行修改,刪除。

留言管理

可以對(duì)用戶留言信息進(jìn)行管理,對(duì)相關(guān)留言進(jìn)行的答復(fù),以及通過用戶留言的聯(lián)系方式進(jìn)行交流和答復(fù)。

用戶管理

可以對(duì)注冊(cè)用戶進(jìn)行管理,提高用戶權(quán)限,對(duì)注冊(cè)用戶進(jìn)行分組,發(fā)送郵件等操作。

4.3 數(shù)據(jù)需求分析

根據(jù)以上的用戶功能需求,分別設(shè)計(jì)成數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)。

新聞信息包括的數(shù)據(jù)項(xiàng)有:新聞編號(hào),新聞標(biāo)題,新聞內(nèi)容,發(fā)布時(shí)間,點(diǎn)擊數(shù)。

產(chǎn)品信息包括的數(shù)據(jù)項(xiàng)有:產(chǎn)品編號(hào),產(chǎn)品信息,產(chǎn)品名稱,圖片名稱,小圖片路徑,大圖片路徑,上傳時(shí)間。

視頻信息包括的數(shù)據(jù)項(xiàng)有:視頻編號(hào),視頻標(biāo)題,視頻簡(jiǎn)介,視頻狀態(tài),點(diǎn)擊次數(shù),下載次數(shù),視頻截圖路徑,視頻存放路徑,上傳時(shí)間。

留言信息包括的數(shù)據(jù)項(xiàng)有:留言編號(hào),留言標(biāo)題,手機(jī)號(hào),郵箱號(hào),用戶名,留言內(nèi)容,留言時(shí)間。

公司信息包括的數(shù)據(jù)項(xiàng)有:信息編號(hào),信息內(nèi)容。

用戶信息包括的數(shù)據(jù)項(xiàng)有:用戶編號(hào),用戶名,密碼,省份,城市,性別,郵箱,手機(jī)號(hào),用戶權(quán)限,激活狀態(tài),激活碼。

4.4 性能需求分析

4.4.1 系統(tǒng)界面

要求界面美觀簡(jiǎn)潔大氣,布局合理,顏色搭配合理,能展示出公司良好的形象。

4.4.2 系統(tǒng)性能

對(duì)于前臺(tái),新聞中心,產(chǎn)品中心,視頻中心信息的顯示要正常,加載流暢,操作簡(jiǎn)介方便,留言,注冊(cè)模塊要用戶體驗(yàn)好。對(duì)于后臺(tái)管理員操作,信息的修改,添加,刪除要方便簡(jiǎn)單,使用無刷新技術(shù)。視頻上傳視頻類型轉(zhuǎn)換采用多線程技術(shù)后臺(tái)自動(dòng)轉(zhuǎn)換。圖片的上傳采用無刷新的上傳方式。

采用優(yōu)化技術(shù),包括數(shù)據(jù)庫優(yōu)化和程序優(yōu)化,對(duì)于頻繁的數(shù)據(jù)庫訪問,可以采用緩存技術(shù)。后臺(tái)數(shù)據(jù)庫操作要使用事務(wù)管理,保證數(shù)據(jù)庫信息的完整。

4.4.3 安全性能

用戶注冊(cè)后要保證用戶信息的安全性,對(duì)于密碼可以采用加密技術(shù)。后臺(tái)的操作使用過濾器要驗(yàn)證用戶的權(quán)限和狀態(tài),避免跨權(quán)限操作。同時(shí)網(wǎng)站要避免SQL注入,影響數(shù)據(jù)庫的安全性。

五、系統(tǒng)設(shè)計(jì)

5.1 概要設(shè)計(jì)

5.1.1 系統(tǒng)設(shè)計(jì)目的和原則

作為公司門戶網(wǎng)站,起到宣傳公司企業(yè)品牌的作用。以往一個(gè)公司的知名度只能通過電視,報(bào)紙去進(jìn)行宣傳,或者通過產(chǎn)品擴(kuò)大公司的知名度。往往廣大消費(fèi)者只知道公司的產(chǎn)品,不知道公司的其它信息。通過門戶網(wǎng)站,廣大用戶可以了解公司的詳細(xì)信息。網(wǎng)站能幫助企業(yè)增強(qiáng)處理信息的能力提高企業(yè)在新經(jīng)濟(jì)時(shí)代的競(jìng)爭(zhēng)力,降低宣傳成本,提高效率,也可以為國內(nèi)、外所有客戶提供全面、周到的網(wǎng)上咨詢、交流、洽談、訂購等服務(wù)。

設(shè)計(jì)本系統(tǒng)需要采用先進(jìn)的應(yīng)用框架和以實(shí)用性為根本準(zhǔn)則,使得系統(tǒng)既能滿足業(yè)務(wù)需求,又能適應(yīng)將來發(fā)展需要。

實(shí)用性原則,是本系統(tǒng)的最基本原則,直接衡量系統(tǒng)的成敗。如果開發(fā)出來的東西不實(shí)用,不能解決實(shí)際問題,不能展示出公司的形象和信息,那么系統(tǒng)必將是失敗的。

適應(yīng)性原則,本系統(tǒng)要能適應(yīng)于多種運(yùn)行環(huán)境,來應(yīng)對(duì)未來變化的環(huán)境和需求。慮了在建設(shè)平臺(tái)上保證系統(tǒng)的可靠性和安全性。系統(tǒng)設(shè)計(jì)中,應(yīng)有適量冗余及其他保護(hù)措施,平臺(tái)和應(yīng)用軟件具有良好的容錯(cuò)性。

可靠性原則,本系統(tǒng)應(yīng)該是可靠的,在出現(xiàn)異常時(shí)應(yīng)該有人性化的異常信息方便用戶理解原因,或采取適當(dāng)?shù)膽?yīng)對(duì)方案。

拓展性原則,考慮到的網(wǎng)站業(yè)務(wù)建設(shè)是一個(gè)循序漸進(jìn)、不斷擴(kuò)充的過程,系統(tǒng)采用積木式結(jié)構(gòu),整體構(gòu)架可以與原有系統(tǒng)進(jìn)行無縫連接,為今后系統(tǒng)擴(kuò)展和集成留有擴(kuò)充余量[9]。

總體規(guī)劃、分層實(shí)施原則,在開始設(shè)計(jì)之前應(yīng)該對(duì)Web系統(tǒng)進(jìn)行總體設(shè)計(jì),然后在總體設(shè)計(jì)指導(dǎo)下分布開發(fā)。本系統(tǒng)的前臺(tái)和后臺(tái)基本J2EE技術(shù),融合了多元信息,采用分層開發(fā):表現(xiàn)層、控制層、業(yè)務(wù)邏輯層、模型層、數(shù)據(jù)訪問層等,在適應(yīng)系統(tǒng)需求的準(zhǔn)則下,降低耦合的分層結(jié)構(gòu),能夠提高開發(fā)效率,降低項(xiàng)目風(fēng)險(xiǎn),實(shí)現(xiàn)各個(gè)模塊的功能設(shè)計(jì),從而完成整個(gè)系統(tǒng)的開發(fā)。

5.1.2 系統(tǒng)概述

本系統(tǒng)為公司門戶網(wǎng)站系統(tǒng),其中分為前門展示模塊與后臺(tái)管理模塊。其中前臺(tái)展示模塊,是公司與廣大消費(fèi)者用戶信息交互的橋梁,前臺(tái)的信息展示中的公司信息,新聞信息,產(chǎn)品信息,視頻信息均由后臺(tái)發(fā)布,由后臺(tái)進(jìn)行管理,后臺(tái)的操作影響到前臺(tái)的顯示。同時(shí)前臺(tái)支持用戶留言,獲得用戶信息的反饋,實(shí)現(xiàn)用戶和企業(yè)的溝通。用戶通過在前臺(tái)注冊(cè)成為企業(yè)會(huì)員,可以獲取公司企業(yè)的信息動(dòng)態(tài),用戶瀏覽和注冊(cè)簡(jiǎn)單易用,并且使用無刷新驗(yàn)證和提交技術(shù),提高用戶體驗(yàn)。

后臺(tái)主要是資源的管理,通過在后臺(tái)信息的管理,實(shí)現(xiàn)前臺(tái)內(nèi)容的更新。隨時(shí)可以根據(jù)公司需求,對(duì)公司信息進(jìn)行修改,隨時(shí)可以發(fā)表信息,發(fā)布產(chǎn)品,發(fā)布視頻,也可以刪除某些資源,并且對(duì)某些信息的訪問等進(jìn)行統(tǒng)計(jì)。后臺(tái)信息的增刪改查都使用無刷新技術(shù),方便管理人員的操作。圖片上傳是用無刷新多文件上傳技術(shù),減少不必要的操作。支持多格式視頻上傳,程序自動(dòng)轉(zhuǎn)換視頻格式,以保證前臺(tái)視頻能夠正常播放,同時(shí)視頻轉(zhuǎn)換采用多線程技術(shù),提高系統(tǒng)的使用效率。在發(fā)布新聞的時(shí)候,可以選擇群發(fā) 郵件,把公司最新動(dòng)態(tài)發(fā)布到用戶郵箱。是客戶第一時(shí)間獲得企業(yè)最新動(dòng)態(tài)。

系統(tǒng)的總體要求是在網(wǎng)絡(luò)中實(shí)現(xiàn)公司資源的信息化,是用戶在網(wǎng)絡(luò)中能夠了解公司信息,企業(yè)動(dòng)態(tài),了解公司產(chǎn)品,提高公司以及產(chǎn)品知名度,樹立企業(yè)形象,提高公司的競(jìng)爭(zhēng)力,是公司走向更大的輝煌。

5.2 系統(tǒng)模塊設(shè)計(jì)

根據(jù)對(duì)該系統(tǒng)功能進(jìn)行分析,該系統(tǒng)的總體功能模塊如圖4–1所示,前臺(tái)功能模塊如圖4–2所示,后臺(tái)功能模塊如圖4–3所示。







門戶網(wǎng)站分為前臺(tái)顯示和后臺(tái)管理兩大部分,其中前臺(tái)顯示包括新聞中心,產(chǎn)品中心,視頻中心,公司信息介紹,留言中心,加盟注冊(cè)等基本功能。如圖4–2所示。







后臺(tái)管理主要包括新聞管理,產(chǎn)品管理,視頻管理,信息管理,留言管理,用戶管理等。根據(jù)不同模塊功能不同,如圖4–3所示。







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

5.3.1 E-R圖的設(shè)計(jì)

根據(jù)數(shù)據(jù)分析,以及抽象實(shí)體的描述和實(shí)體間的聯(lián)系,公司門戶網(wǎng)站生成的E-R圖分別為圖4–4,圖4–5,圖4–6,圖4–7,圖4–8,圖4–9所示。







用戶實(shí)體有12個(gè)屬性:編號(hào)、用戶名、密碼、省份、城市、用戶權(quán)限、性別、郵箱、手機(jī)號(hào)、注冊(cè)時(shí)間、激活碼、狀態(tài)。







新聞實(shí)體有5個(gè)屬性:編號(hào)、標(biāo)題、新聞內(nèi)容、點(diǎn)擊量、發(fā)布時(shí)間。







產(chǎn)品實(shí)體有7個(gè)屬性:編號(hào)、產(chǎn)品名稱、大圖片路徑、小圖片路徑、圖片名稱、上傳時(shí)間、信息描述。







視頻類型實(shí)體有9個(gè)屬性:視頻編號(hào)、點(diǎn)擊量、下載量、視頻名稱、路徑、上傳時(shí)間、視頻信息、圖片路徑、視頻狀態(tài)。







留言信息實(shí)體有7個(gè)屬性:編號(hào)、用戶名、郵箱、手機(jī)號(hào)、標(biāo)題、內(nèi)容、留言時(shí)間。







公司信息實(shí)體有2個(gè)屬性:編號(hào)、內(nèi)容。

5.3.2 數(shù)據(jù)表的設(shè)計(jì)

在3.3節(jié)數(shù)據(jù)需求分析和節(jié)E-R圖設(shè)計(jì),可以將其概念結(jié)構(gòu)轉(zhuǎn)化為數(shù)據(jù)庫所支持的實(shí)際數(shù)據(jù)模型,即數(shù)據(jù)庫邏輯結(jié)構(gòu)[10]。門戶網(wǎng)站系統(tǒng)的數(shù)據(jù)庫表如表4–1所示。

序號(hào)數(shù)據(jù)庫表數(shù)據(jù)庫表存儲(chǔ)內(nèi)容
1user用戶信息表
2message用戶留言表
3news新聞信息表
4picture產(chǎn)品圖片信息表
5video視頻信息表
6companyinfo公司信息表
用戶信息表除了記錄用戶的基本信息外,還保存用戶的激活類型,默認(rèn)為0,當(dāng)程序收到用戶的激活后,修改數(shù)據(jù)庫acticetype為1,表示用戶激活。用戶信息表如表4–2用戶信息表所示。

字段名類型長(zhǎng)度允許空值注釋
idint11主鍵,自增
activecodevarchar30激活碼
activetypeint11激活狀態(tài)
cityvarchar50城市
countryvarchar20國家
emailvarchar255郵箱
namevarchar50用戶名
passwordvarchar50密碼
powerint11權(quán)限
provincevarchar50省份
regtimevarchar50注冊(cè)時(shí)間
sexvarchar4性別
新聞信息表包含5條字段,主鍵自動(dòng)遞增,click記錄新聞點(diǎn)擊量,title和content字段分別用來存儲(chǔ)標(biāo)題和創(chuàng)建時(shí)間。uptime字段用來存放新聞上傳時(shí)間。新聞信息表如表4–3所示。

字段名類型長(zhǎng)度允許空值注釋
idint11主鍵,自增
clickint30新聞點(diǎn)擊量
contentlongtext0內(nèi)容
titlevarchar255標(biāo)題
uptimevarchar100發(fā)布時(shí)間
產(chǎn)品信息表包含7條字段,其中pname用來存放上傳到服務(wù)器后,根據(jù)時(shí)間戳生成的文件名,上傳產(chǎn)品圖像會(huì)自動(dòng)縮小存放一份,小圖片路徑記錄在smallscr下,原始圖片路徑記錄在src下。產(chǎn)品信息表如表4–4所示。

字段名類型長(zhǎng)度允許空值注釋
idint11主鍵,自增
infolongtext0產(chǎn)品信息
pnamevarchar50文件名
smallsrcvarchar255小圖片路徑
srcvarchar255大圖片路徑
titlevarchar50標(biāo)題
uptimevarchar50上傳時(shí)間
視頻信息表cd字段用來記錄視頻的狀態(tài), 1表示視頻上傳成功,2表示正在轉(zhuǎn)換,3表示轉(zhuǎn)換成功。Psrc字段用來存放視頻截圖的圖片路徑。視頻信息表如表4–5所示。

字段名類型長(zhǎng)度允許空值注釋
idint11主鍵,自增
cdint11視頻狀態(tài)
clickint11點(diǎn)擊量
downloadint11下載量
psrcvarchar255圖片路徑
titlevarchar40標(biāo)題
uptimevarchar60上傳時(shí)間
vinfolongtext0視頻信息
vnamevarchar60視頻名稱
vsrcvarchar255視頻路徑
留言信息表有7個(gè)字段,記錄用戶的留言信息。留言信息表如表4–6所示。

字段名類型長(zhǎng)度允許空值注釋
idint11主鍵,自增
contentlongtext0內(nèi)容
mailvarchar100郵箱
namevarchar50用戶名
phonevarchar20用戶電話
titlevarchar100留言標(biāo)題
ctimevarchar50留言時(shí)間
公司信息表有2個(gè)字段,用來記錄公司的每條信息。公司信息表如表4–7所示。

字段名類型長(zhǎng)度允許空值注釋
idint11主鍵,自增
contentlongtext0內(nèi)容

六、系統(tǒng)實(shí)現(xiàn)

6.1 系統(tǒng)開發(fā)工具的選擇

6.1.1 開發(fā)工具和組件

本系統(tǒng)使用JDK _03,編譯器為MyEclipse10.0,數(shù)據(jù)庫為 MySQL Server5.0,服務(wù)器為Tomcat7.0.26,使用的框架有Strust2,Hibernate4.0,Spring3.1。

MyEclipse10.0做為Java企業(yè)級(jí)工作平臺(tái),利用它我們可以在數(shù)據(jù)庫和J2EE的開發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率,對(duì)各種開源產(chǎn)品的支持十分不錯(cuò),它是功能豐富的J2EE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持Html,Struts,JSP,CSS,JavaScript,Spring,SQL,Hibernate。

數(shù)據(jù)庫采用MySQL Server5.0。MySQL作為關(guān)系型數(shù)據(jù)庫管理系統(tǒng),具有標(biāo)準(zhǔn)的SQL語言支持,同時(shí)數(shù)據(jù)庫體積小、速度快、適應(yīng)于所有平臺(tái),靈活性強(qiáng),而且開源,可以使用免費(fèi)版,適用于中小型網(wǎng)站的使用。

服務(wù)器采用Tomcat,它是Apache 軟件基金會(huì)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun 和其他一些公司及個(gè)人共同開發(fā)而成。支持最新的Servlet 和JSP 規(guī)范。Tomcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,是目前比較流行的Web 應(yīng)用服務(wù)器。

6.1.2 相關(guān)插件工具

在系統(tǒng)的前臺(tái)和后臺(tái)中,需要使用相關(guān)的插件,提高網(wǎng)站的整體性能。使用到JavaScript插件有jQuery,上傳插件SWFUpload,表單驗(yàn)證插件jQuery Inline Form Validation,視頻格式轉(zhuǎn)換工具ffmpeg,視頻播放插件CoolPlayer。

jQuery是一個(gè)優(yōu)秀的JavaScript框架。它是輕量級(jí)的js庫,它兼容CSS3,還兼容各種瀏覽器。jQuery使用戶能更方便地處理HTML documents、events、實(shí)現(xiàn)動(dòng)畫效果,并且方便地為網(wǎng)站提供AJAX交互。它的文檔說明很全,而且各種應(yīng)用也說得很詳細(xì),同時(shí)還有許多成熟的插件可供選擇。在表單驗(yàn)證中我們使用到了jQuery Inline Form Validation插件。

SWFUpload是一個(gè)客戶端文件上傳工具,它通過整合Flash與JavaScript技術(shù)為WEB開發(fā)者提供了一個(gè)具有豐富功能繼而超越傳統(tǒng)標(biāo)簽的文件上傳模式。可以同時(shí)AJAX的無刷新上傳多個(gè)文件,顯示上傳進(jìn)度,擁有良好的瀏覽器兼容性。

FFmpeg是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計(jì)算機(jī)程序。它包括了目前領(lǐng)先的音/視頻編碼庫。 FFmpeg是在Linux下開發(fā)出來的,但它可以在包括Windows在內(nèi)的大多數(shù)操作系統(tǒng)中編譯??梢暂p易地實(shí)現(xiàn)多種視頻格式之間的相互轉(zhuǎn)換,把眾多視頻格式轉(zhuǎn)成現(xiàn)在視頻網(wǎng)站所采用的flv格式。

CoolPlayer是一款國內(nèi)自主研發(fā)的具有高清處理能力的萬能播放器,擁有超強(qiáng)的解碼能力和容錯(cuò)機(jī)制,支持幾乎所有格式的音視頻文件播放,在網(wǎng)絡(luò)視頻播放方面,支持HTTP、FTP、BT、電騾、COOL、CPTP等幾乎所有協(xié)議的視頻邊下邊播,視頻資源流暢、高清,視頻下載快速,用戶體驗(yàn)極佳。

6.2 開發(fā)環(huán)境搭建

  1. 打開MyEclipse 10,Window->Preferences->Java->Installd JREs->add->Standard VM中選擇本地JDK。
  2. 點(diǎn)擊NEW->File->Web Project新建一個(gè)Web項(xiàng)目,命名為enterprise。
  3. 把項(xiàng)目需要的jar包拷貝在項(xiàng)目/WebRoot/WEB-INF/lib目錄下。
  4. 在MyEclipse的Windows->Preferences->Myeclipse->Server->Tomcat中配置tomcat,然后點(diǎn)擊
圖標(biāo),選擇選擇enterprise項(xiàng)目以及tomcat服務(wù)器,點(diǎn)擊add。

  1. 項(xiàng)目添加到服務(wù)器后,點(diǎn)擊
圖標(biāo),選擇服務(wù)器點(diǎn)擊start,開啟服務(wù)器?;蛘哂覔繇?xiàng)目,選擇Debug as->MyEclipse Server Application運(yùn)行服務(wù)器。

  1. 當(dāng)訪問到http://localhost:8080/enterprise/index.jsp頁面成功表示項(xiàng)目部署成功[11]。

6.3 系統(tǒng)文件結(jié)構(gòu)

網(wǎng)站類結(jié)構(gòu)如圖5–1所示。







網(wǎng)站頁面結(jié)構(gòu)如圖5–2所示。







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

系統(tǒng)使用到了SSH框架,Struts2負(fù)責(zé)Action的控制,Hibernate負(fù)責(zé)數(shù)據(jù)持久化,Spring作為中間件負(fù)責(zé)組織管理容器,在程序中需要使用到一些配置文件。其中包括Spring的配置文件,Struts2的配置文件,數(shù)據(jù)庫連接的配置等[12]。

數(shù)據(jù)庫配置文件jdbc.properties代碼如下。

jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/newsjdbc.username=rootjdbc.password=網(wǎng)站的Spring配置文件beans.xml代碼如下。

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <context:annotation-config /> <context:component-scan base-package="com.qianyan" /><bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <value>classpath:jdbc.properties</value> </property> </bean> <bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="packagesToScan"> <list> <value>com.qianyan.entity</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> </bean> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!-- 事務(wù)管理配置 --> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <aop:config> <aop:pointcut id="bussinessService" expression="execution(public * com.qianyan.service..*.*(..))" /> <aop:advisor pointcut-ref="bussinessService" advice-ref="txAdvice" /> </aop:config> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes><tx:method name="get*" read-only="false" propagation="NOT_SUPPORTED"/> <tx:method name="find*" read-only="false" propagation="NOT_SUPPORTED"/> <tx:method name="save*" propagation="REQUIRED"/> <tx:method name="add*" propagation="REQUIRED"/> <tx:method name="update*" propagation="REQUIRED"/> <tx:method name="delete*" propagation="REQUIRED"/> </tx:attributes> </tx:advice></beans>網(wǎng)站struts2的配置文件struts.xml代碼如下。

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><struts> <!-- 通過常量配置Struts 2的國際化資源信息 --> <constant name="struts.custom.i18n.resources" value="global"/> <!-- 通過常量配置Struts 2所使用的解碼集--> <constant name="struts.i18n.encoding" value="UTF-8"/> <!-- 配置Struts上傳文件的最大上限 --> <constant name="struts.multipart.maxSize" value="10000000000" /> <package name="json" namespace="/validate" extends="json-default"> <action name="validate" class="com.qianyan.action.ValidateAction" method="vali"> <result type="json"> <param name="excludeProperties">msg</param> </result> </action> </package> <!-- 配置本系統(tǒng)所使用的包 --> <package name="lu" extends="struts-default"> <interceptors> <interceptor name="Login" class="com.qianyan.interceptor.AdminLogin"></interceptor> </interceptors> <action name="Admin_*" class="com.qianyan.action.AdminAction" method="{1}"> <result name="adminloginSucc">/WEB-INF/admin/adminmain.jsp</result> <result name="adminlogin">/WEB-INF/admin/login.jsp</result> <result name="adminlistnews">/WEB-INF/admin/listnews.jsp</result> <result name="adminlistmessages">/WEB-INF/admin/listmessages.jsp</result> <result name="adminlistusers">/WEB-INF/admin/listusers.jsp</result> <result name="adminlistvideos">/WEB-INF/admin/listvideos.jsp</result> <result name="adminlistpictures">/WEB-INF/admin/listpictures.jsp</result> <result name="admingetcompanyinfo">/WEB-INF/admin/companyinfo.jsp</result> <result name="adminaddnews">/WEB-INF/admin/addnews.jsp</result> <result name="addvideo">/WEB-INF/admin/addvideo.jsp</result> <result name="addnews">/WEB-INF/admin/addnews.jsp</result> <result name="addcompanyinfo">/admin/view/addcompanyinfo.jsp</result> <result name="compupdateinput">/WEB-INF/view/updateinputcompanyinfo.jsp</result> <result name="pictureupload">/WEB-INF/admin/pictureupload.jsp</result><result name="autoupload">/WEB-INF/admin/autoupload.jsp</result> <result name="admingetnews">/WEB-INF/admin/newsview.jsp</result> <result name="updatepictureinput">/WEB-INF/admin/pictureupdate.jsp</result> <result name="pictureupdateSucc">/WEB-INF/view/success.jsp</result> <result name="getvideo">/WEB-INF/admin/videoshow.jsp</result> <result name="getuser">/WEB-INF/admin/userinfo.jsp</result> <result name="deleteadminSucc">/WEB-INF/view/success.jsp</result> <result name="addadminSucc">/WEB-INF/view/success.jsp</result> <result name="Succ">/WEB-INF/view/success.jsp</result> <interceptor-ref name="Login"></interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </action> <!-- 采用通配符匹配action --> <action name="*_*" class="com.qianyan.action.{1}Action" method="{2}"> <!-- /WEB-INF 下防止用戶直接訪問 --> <result name="mainpage">/main.jsp</result> <result name="error">/WEB-INF/view/error.jsp</result> <result name="addvideo">/WEB-INF/view/addvideo.jsp</result> <result name="addvideoSucc">/WEB-INF/view/success.jsp</result> <result name="listvideo">/WEB-INF/view/listvideo.jsp</result> <result name="getvideo">/WEB-INF/view/videoshow.jsp</result> <result name="deletevideo">/WEB-INF/view/success.jsp</result> <result name="videoupdateinput">/WEB-INF/view/updatevideo.jsp</result> <result name="videoupdatesuccess">/WEB-INF/view/success.jsp</result> <result name="addnews">/WEB-INF/view/addnews.jsp</result> <result name="addnewsSucc">/WEB-INF/view/success.jsp</result> <result name="deleteSucc">/WEB-INF/view/success.jsp</result> <result name="listnews">/WEB-INF/view/listnews.jsp</result> <result name="getnews">/WEB-INF/view/newsview.jsp</result> <result name="demo">/WEB-INF/view/demo.jsp</result> <result name="getcompanyinfo">/WEB-INF/view/companyinfo.jsp</result> <result name="addcompanyinfo">/WEB-INF/view/addcompanyinfo.jsp</result> <result name="compupdateinput">/WEB-INF/view/updateinputcompanyinfo.jsp</result> <result name="connect">/WEB-INF/view/connect.jsp</result> <result name="register">/WEB-INF/view/register.jsp</result> <result name="usersaveSucc">/WEB-INF/view/success.jsp</result> <result name="changlocal">/index.jsp</result> <result name="listpictures">/WEB-INF/view/listpicture.jsp</result> <result name="savePicSucc">/WEB-INF/view/success.jsp</result> <result name="deletePicSucc">/WEB-INF/view/success.jsp</result> <result name="pictureupload">/WEB-INF/view/pictureupload.jsp</result> <result name="autoupload">/WEB-INF/view/autoupload.jsp</result> <result name="listbynum">/WEB-INF/view/picturewall.jsp</result> <result name="getpicture">/WEB-INF/view/pictureview.jsp</result> <result name="pictureupdateSucc">/WEB-INF/view/success.jsp</result> <result name="uservaliSucc">/WEB-INF/view/success.jsp</result> </action> <action name="download" class="com.qianyan.action.DownloadAction"> <param name="inputPath">videos/flv/</param> <result type="stream"> <param name="contentType">application/octet-stream</param> <!--${downloadFileName}相當(dāng)于調(diào)用action的getDownloadFileName()方法--> <param name="contentDisposition">attachment;filename="${downloadFileName}"</param> <param name="inputName">targetFile</param> </result> </action> <action name="admin" class="com.qianyan.action.AdminAction" method="login"> <result name="adminlogin">/WEB-INF/admin/login.jsp</result> </action> </package></struts>

6.5 業(yè)務(wù)邏輯實(shí)現(xiàn)步驟

通過SSH框架,對(duì)系統(tǒng)進(jìn)行代碼分層,以上傳視頻舉例進(jìn)行說明。

6.5.1 視圖層

上傳視頻界面如圖5-3所示。







管理員登陸后臺(tái)后,可進(jìn)入視頻管理模塊上傳視頻頁面[13],填寫視頻信息,選擇視頻文件。代碼如下:

<form action="Video_add" method="post" enctype="multipart/form-data" name="form" id="form1"> <table width="100%" border="0" cellpadding="2" cellspacing="1" bgcolor="#D1DDAA" align="center" style="margin-top:8px"> <tr bgcolor="#E7E7E7"> <td height="24" colspan="10" align="center">&nbsp;添加視頻信息&nbsp;</td> </tr> <tr> <td width="80" height="40">選擇視頻:</td> <td bgcolor="#FFFFFF"><input name="file" type="file" >&nbsp;&nbsp;&nbsp;*(上傳的視頻只能是avi,asf,asx,3gp,mpg,mov,mp4,wmv,flv格式) </td> </tr> <tr> <td width="80" height="40">視頻標(biāo)題:</td> <td bgcolor="#FFFFFF"><input name="title" type="text" ></td> </tr> <tr> <td width="80" height="40">視頻類別:</td><td bgcolor="#FFFFFF"><select name="typeid"> <option value="1">教學(xué)視頻</option> <option value="2">娛樂視頻</option> </select> </td> </tr> <tr> <td width="80" height="40">視頻描述:</td> <td bgcolor="#FFFFFF"><textarea name="vinfo" rows="5" cols="60"></textarea></td> </tr> <tr> <td width="40" height="40" bgcolor="#FFFFFF" ><div align="center" id="load"></div></td> <td bgcolor="#FFFFFF"> <input type="button" id="submitf" value=" 上傳視頻 "> &nbsp;&nbsp; <input type="reset" name="Reset" value=" 重新選擇 "></td> </tr> </table></form>將表單信息請(qǐng)求發(fā)送給相應(yīng)的action,也就是Video_add。

6.5.2 Action層

采用通配方式把 配置在struts 的struts.xml中,框架可以找到com.qianyan.action 包下面VideoAction.java的add方法。處理方法代碼如下:

//添加視頻public String add() { // 第一步:先檢查視頻格式 // System.out.println(fileContentType); String format = fileFileName.substring( fileFileName.lastIndexOf(".") + 1, fileFileName.length()); if (!checkFormat(format.trim())) { message = "您上傳的視頻文件格式不正確,請(qǐng)選擇正確的視頻格式"; return "error"; } // 第二步:寫文件 String serialName = String.valueOf(System.currentTimeMillis());// 設(shè)置存儲(chǔ)名字 String upfilePath = ServletActionContext.getServletContext() .getRealPath("/videos/") + "/upload/" + fileFileName; // 設(shè)置上傳到服務(wù)器文件路徑 String flvpath = ServletActionContext.getServletContext().getRealPath( "/videos/") + "/flv/" + serialName + ".flv"; String cutPicPath = ServletActionContext.getServletContext() .getRealPath("/videos/") + "/pic/" + serialName + ".jpg"; File tarFile = new File(upfilePath); try { writeFile(file, tarFile); } catch (IOException e) { System.out.println("寫文件失敗"); message = "文件上傳到服務(wù)器失?。?!"; e.printStackTrace(); return "error"; } Video video = new Video(); video.setTitle(title); video.setVinfo(vinfo); video.setClick(0); video.setDownload(0); video.setVname(serialName + ".flv"); video.setUptime(DateTime.getDateTime()); video.setVsrc("/videos/flv/" + serialName + ".flv"); video.setPsrc("/videos/pic/" + serialName + ".jpg"); video.setCd(1); // 3代表要求格式 videoservice.addVideo(video); boolean istrue =false; if(!format.equalsIgnoreCase("flv")){ //不是flv System.out.println("視頻需要類型轉(zhuǎn)化"); ConvertVideoThread cvt = new ConvertVideoThread(); cvt.setVideoservice(videoservice); cvt.setVideo(video); cvt.setCutPicPath(cutPicPath); cvt.setFlvFilePath(flvpath); cvt.setUpFilePath(upfilePath); cvt.setServerPath(ServletActionContext.getServletContext().getRealPath("/")); cvt.thread.start(); message = "上傳視頻成功,等待視頻類型轉(zhuǎn)化"; } else{ //是flv 僅僅需要截圖 istrue = cutpic(upfilePath, flvpath, cutPicPath); File flvFile = new File(flvpath); try { writeFile(file, flvFile); } catch (IOException e) { System.out.println("寫文件失敗"); message = "文件上傳到服務(wù)器失敗??!"; e.printStackTrace(); return "error"; } video.setCd(3); // 3代表要求格式 videoservice.updateVideo(video); message = "上傳flv文件成功"; } return "addvideoSucc"; }VideoAction的add方法對(duì)上傳視頻信息的判斷和處理,程序判斷如果不是flv格式的視頻,通過ConvertVideoThread多線程類進(jìn)行視頻類型轉(zhuǎn)換。

private VideoService videoservice;public VideoService getVideoservice() { return videoservice;}@Resource(name = "videoservice")public void setVideoservice(VideoService videoservice) { this.videoservice = videoservice;}在action類中,使用注解Spring注入service,獲得service對(duì)象,通過service對(duì)象,調(diào)用videoservice.addVideo(video)方法,保存視頻信息。

6.5.3 Service層

@Component("videoservice")public class VideoService { private VideoDao videodao; public VideoDao getVideodao() { return videodao; } @Resource(name="videoDao") public void setVideodao(VideoDao videodao) { this.videodao = videodao; } public void addVideo(Video video){ videodao.save(video); } ...}通過@Component("videoservice")注釋把VideoService 類作為service層。在VideoService 類中通過@Resource(name="videoDao")注解注入DAO,然后使用addVideo方法調(diào)用videodao.save(video),實(shí)現(xiàn)video實(shí)體類的持久化操作。

6.5.4 DAO層

程序中,使用到了BaseDao基礎(chǔ)數(shù)據(jù)庫持久化接口類,以及BaseDaoImpl基礎(chǔ)數(shù)據(jù)庫持久化實(shí)現(xiàn)類。VideoDao通過泛型繼承BaseDao類,添加自己特殊的Dao訪問接口,然后VideoDaoImpl實(shí)現(xiàn)類通過泛型繼承BaseDaoImpl類并且實(shí)現(xiàn)VideoDao接口,即可繼承通用的數(shù)據(jù)庫操作方法,然后再自己實(shí)現(xiàn)VideoDao中的特殊持久化操作。

public class BaseDaoImpl<T,ID extends Serializable> implements BaseDao<T, ID> { private HibernateTemplate hibernateTemplate; public HibernateTemplate getHibernateTemplate() { return hibernateTemplate; } @Resource(name="hibernateTemplate") public void setHibernateTemplate(HibernateTemplate hibernateTemplate) { this.hibernateTemplate = hibernateTemplate; } public void save(T entity) { hibernateTemplate.save(entity); }}門戶網(wǎng)站的所有業(yè)務(wù)邏輯功能都是依據(jù)此流程開發(fā)實(shí)現(xiàn)的。這也就是J2EE多層架構(gòu)的精髓所在。Spring的作用貫穿了整個(gè)項(xiàng)目,將Web層、Action層、Service層、DAO層無縫整合,實(shí)現(xiàn)了高層去調(diào)用底層,各層高內(nèi)聚低耦合,增強(qiáng)了可擴(kuò)展性[14]。

6.6 網(wǎng)站主要功能的實(shí)現(xiàn)

網(wǎng)站的主要功能主要分為前臺(tái)顯示和后臺(tái)管理兩大部分,根據(jù)前面的系統(tǒng)分析和設(shè)計(jì),最終實(shí)現(xiàn)了門戶網(wǎng)站的相關(guān)的功能。

6.6.1 前臺(tái)顯示

網(wǎng)站前臺(tái)首頁

公司門戶網(wǎng)站前臺(tái)主頁面,是進(jìn)入網(wǎng)站的第一個(gè)頁面,在首頁中要顯示出一些主要的信息,比如公司信息,聯(lián)系方式,最新動(dòng)態(tài),以及自動(dòng)切換的圖片顯示。首頁要簡(jiǎn)潔美觀大氣,給用戶一個(gè)好的印象。前臺(tái)首頁如圖5–4所示。







新聞中心

新聞中心,顯示公司發(fā)布的新聞信息,列表按照新聞發(fā)布時(shí)間進(jìn)行排序,用戶可通過新聞中心了解企業(yè)動(dòng)態(tài)。新聞中心如圖5–5所示。







產(chǎn)品中心

產(chǎn)品中心,顯示公司的產(chǎn)品信息,點(diǎn)擊圖片可進(jìn)入產(chǎn)品信息的詳情頁,包括產(chǎn)品介紹等信息。產(chǎn)品中心如圖5–6所示。







視頻中心

視頻中心,用于顯示公司的視頻信息,左側(cè)有視頻點(diǎn)擊排行和下載排行,點(diǎn)擊視頻可進(jìn)入視頻詳情頁,進(jìn)行視頻的觀看,同時(shí)支持視頻下載。視頻中心模塊如圖5–7所示。







關(guān)于我們

關(guān)于我們,用于顯示公司的詳細(xì)信息,左側(cè)可以進(jìn)行選擇,查看公司介紹,公司動(dòng)態(tài),公司大事記,企業(yè)文化,薪酬福利。關(guān)于我們模塊如圖5–8所示。







聯(lián)系我們

聯(lián)系我們模塊,是用戶進(jìn)行留言的地方,留言采用無刷新驗(yàn)證和提交方式,提高用戶體驗(yàn)。通過CKEDITOR插件插件,可以對(duì)留言信息進(jìn)行樣式處理。模塊如圖5–9所示。







加入我們

加入我們模塊,是用戶進(jìn)行注冊(cè)的地方,表單使用FormValidate插件進(jìn)行ajax無刷新驗(yàn)證,注冊(cè)后會(huì)向用戶郵箱發(fā)送一封激活郵件,用戶可以通過點(diǎn)擊郵件相關(guān)鏈接進(jìn)行激活,激活郵箱可接收企業(yè)新聞消息。模塊如圖5–10所示。







6.6.2 后臺(tái)管理

后臺(tái)登陸

管理員可對(duì)后臺(tái)信息進(jìn)行管理,首先要在后臺(tái)登陸頁進(jìn)行登陸,驗(yàn)證用戶名和密碼,以及相關(guān)權(quán)限,登陸不成功,會(huì)進(jìn)行提示。后臺(tái)登陸界面如圖5–11所示。







網(wǎng)站信息管理

網(wǎng)站信息管理用于管理公司的基本信息,用于修改前臺(tái)顯示的公司基本信息。網(wǎng)站信息管理如圖5–12所示。







新聞管理

在左側(cè)選項(xiàng)卡中,選擇添加新聞,可以發(fā)布新聞,同時(shí)可以選擇發(fā)送郵件,在網(wǎng)站發(fā)布新聞的同時(shí),也將給注冊(cè)用戶郵箱發(fā)送新聞。新聞列表顯示全部新聞,可進(jìn)行修改和刪除,點(diǎn)擊新聞標(biāo)題,可進(jìn)入修改頁。新聞管理模塊如圖5–13所示。







產(chǎn)品管理

產(chǎn)品列表顯示產(chǎn)品的信息,可以修改和刪除。左側(cè)選項(xiàng)卡,可以選擇普通上傳模式和快速上傳兩種模式。普通模式可以填寫產(chǎn)品具體信息,選擇上傳文件進(jìn)行上傳。產(chǎn)品管理模塊圖5–14所示。







快速上傳模式采用swfupload插件進(jìn)行ajax無刷新多文件上傳方式,如圖5–15所示。







視頻管理

視頻中心可以進(jìn)行視頻的上傳,視頻格式的轉(zhuǎn)換使用多線程技術(shù)在后臺(tái)進(jìn)行,不影響系統(tǒng)的使用,當(dāng)視頻轉(zhuǎn)換時(shí),顯示視頻狀態(tài)轉(zhuǎn)換中,轉(zhuǎn)換成功后自動(dòng)更新狀態(tài)。視頻列表可以對(duì)視頻信息進(jìn)行修改和刪除。視頻管理模塊如圖5–16所示。







留言管理

留言中心管理用于對(duì)用戶的留言信息進(jìn)行查看和管理,如圖5–17所示。







用戶管理

用戶管理如圖5–18所示,用于對(duì)注冊(cè)用戶的信息管理,可進(jìn)行用戶信息的查看,刪除,權(quán)限提升等操作。







七、系統(tǒng)測(cè)試與運(yùn)行

系統(tǒng)測(cè)試,英文是System Testing。是將已經(jīng)確認(rèn)的、計(jì)算機(jī)硬件、外設(shè)、網(wǎng)絡(luò)等其他元素結(jié)合在一起,進(jìn)行信息系統(tǒng)的各種組裝測(cè)試和確認(rèn)測(cè)試,系統(tǒng)測(cè)試是針對(duì)整個(gè)產(chǎn)品系統(tǒng)進(jìn)行的測(cè)試。

7.1 測(cè)試目的

系統(tǒng)測(cè)試是軟件開發(fā)過程的重要組成部分,用來確認(rèn)一個(gè)程序的品質(zhì)或性能是否符合開發(fā)之前所提出的一些要求。系統(tǒng)測(cè)試的目的是為了保證軟件產(chǎn)品的最終質(zhì)量,在軟件開發(fā)的過程中,對(duì)軟件產(chǎn)品進(jìn)行質(zhì)量控制。并希望能以最少的人力和時(shí)間發(fā)現(xiàn)潛在的各種錯(cuò)誤和缺陷。

7.2 測(cè)試時(shí)間

測(cè)試活動(dòng)計(jì)劃起止日期實(shí)際起止日期進(jìn)度偏差備注
制定測(cè)試計(jì)劃
設(shè)計(jì)測(cè)試用例
測(cè)試執(zhí)行
測(cè)試總結(jié)

7.3 測(cè)試過程

為保證系統(tǒng)能夠正常運(yùn)行,在完成整個(gè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)后,我對(duì)其進(jìn)行了全面的測(cè)試。系統(tǒng)測(cè)試非常重要,其中測(cè)試過程中的記錄文檔等也尤為重要,我主要對(duì)以下幾個(gè)方面進(jìn)行了全面的測(cè)試,如表6–2所示。

測(cè)試類型測(cè) 試 內(nèi) 容測(cè) 試 目 的測(cè)試工具和方法
功能測(cè)試前臺(tái)首頁:查看新聞,查看產(chǎn)品,播放視頻,下載視頻,在線留言以及注冊(cè)功能測(cè)試。;核實(shí)所有功能均已正常實(shí)現(xiàn);1.流程檢驗(yàn):各個(gè)業(yè)務(wù)流程符合常規(guī)邏輯,用戶使用時(shí)不會(huì)產(chǎn)生疑問。;2、數(shù)據(jù)精確:各數(shù)據(jù)類型的輸入輸出時(shí)統(tǒng)計(jì)精確。采用黑盒測(cè)試,使用邊界值測(cè)試、等價(jià)類劃分、數(shù)據(jù)驅(qū)動(dòng)等測(cè)試方法,進(jìn)行手工測(cè)試;
功能測(cè)試管理后臺(tái):管理員登錄系統(tǒng),增加修改和刪除新聞,上傳產(chǎn)品信息和圖片,上傳視頻以及系統(tǒng)轉(zhuǎn)換視頻,刪除留言,提高用戶權(quán)限等。核實(shí)所有功能均已正常實(shí)現(xiàn);1.流程檢驗(yàn):各個(gè)業(yè)務(wù)流程符合常規(guī)邏輯,用戶使用時(shí)不會(huì)產(chǎn)生疑問。;2、數(shù)據(jù)精確:各數(shù)據(jù)類型的輸入輸出時(shí)統(tǒng)計(jì)精確。采用黑盒測(cè)試,使用邊界值測(cè)試、等價(jià)類劃分、數(shù)據(jù)驅(qū)動(dòng)等測(cè)試方法,進(jìn)行手工測(cè)試;
用戶界面(UI)測(cè)試1.導(dǎo)航、鏈接、頁面結(jié)構(gòu)包括菜單、背景、顏色、字體、按鈕名稱、Title、提示信息的一致性等。;2.友好性、易用性、合理性、一致性、正確性等核實(shí)各個(gè)窗口風(fēng)格(包括顏色、字體、提示信息、圖標(biāo)、Title等等)都與基準(zhǔn)版本保持一致,或符合可接受標(biāo)準(zhǔn),能夠保證用戶界面的友好性、易操作性,而且符合用戶操作習(xí)慣。WEB測(cè)試通用方法;手工測(cè)試
安全性和訪問控制測(cè)試密碼:登錄、普通注冊(cè)用戶、管理員用戶;;權(quán)限限制;;通過修改URL非法訪問;;登錄超時(shí)限制等等;1.應(yīng)用程序級(jí)別的安全性:核實(shí)用戶只能操作其所擁有權(quán)限能操作的功能。;2.系統(tǒng)級(jí)別的安全性:核實(shí)只有具備系統(tǒng)訪問權(quán)限的用戶才能訪問系統(tǒng)。黑盒測(cè)試、手工測(cè)試
性能測(cè)試最大并發(fā)數(shù);;查詢?nèi)罩?,產(chǎn)品,視頻時(shí),注冊(cè)新用戶時(shí)以及登錄時(shí)系統(tǒng)的響應(yīng)時(shí)間;核實(shí)系統(tǒng)在大流量的數(shù)據(jù)與多用戶操作時(shí)軟件性能的穩(wěn)定性,不造成系統(tǒng)崩潰或相關(guān)的異?,F(xiàn)象

7.4 測(cè)試結(jié)果

通過對(duì)以上內(nèi)容進(jìn)行測(cè)試,系統(tǒng)在正常操作的情況下,不會(huì)出現(xiàn)異常。在輸入非法數(shù)據(jù)時(shí),也能夠進(jìn)行提示。總體來說,系統(tǒng)比較穩(wěn)定,系統(tǒng)設(shè)計(jì)達(dá)到了預(yù)期目標(biāo)。

7.5 結(jié)論

本文以門戶網(wǎng)站的應(yīng)用理念為中心,結(jié)合網(wǎng)站特點(diǎn),對(duì)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)過程進(jìn)行了分析。對(duì)J2EE平臺(tái)深入分析的基礎(chǔ)上,以SSH框架等關(guān)鍵技術(shù)作為主要研究對(duì)象。從用戶需求分析到底層數(shù)據(jù)庫的建設(shè)、再到代碼的編寫、系統(tǒng)的測(cè)試,逐步完成。本文完成了以下工作:

  1. 分析了研究背景與意義
  2. 對(duì)本系統(tǒng)所用的相關(guān)技術(shù)進(jìn)行了基本介紹
  3. 對(duì)系統(tǒng)進(jìn)行分析,包括用戶功能需求分析、數(shù)據(jù)需求分析、系統(tǒng)可行性研究、性能需求分析
  4. 對(duì)系統(tǒng)進(jìn)行設(shè)計(jì),包括系統(tǒng)開發(fā)工具的選擇、系統(tǒng)概要設(shè)計(jì)、系統(tǒng)模塊總體設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)
  5. 進(jìn)行編碼與實(shí)現(xiàn),包括系統(tǒng)開發(fā)環(huán)境的搭建、文件結(jié)構(gòu)、配置文件、業(yè)務(wù)邏輯分析以及門戶網(wǎng)站系統(tǒng)主要功能的實(shí)現(xiàn)
  6. 對(duì)系統(tǒng)進(jìn)行綜合測(cè)試,包括測(cè)試目的的編寫、測(cè)試時(shí)間的制定、測(cè)試過程的記錄、測(cè)試結(jié)果的分析與總結(jié)

八、結(jié)束語

忙碌了幾個(gè)月,畢業(yè)設(shè)計(jì)終于告一段落。其實(shí)這個(gè)項(xiàng)目不是短時(shí)間內(nèi)完成的,從大三就開始積累各方面知識(shí),從框架技術(shù),到各種組件和插件,再到頁面效果,都是一點(diǎn)一滴的積累,通過一次一次的修改調(diào)試,最后才把一個(gè)個(gè)小項(xiàng)目組建成一個(gè)大項(xiàng)目。里面基本用到了我大學(xué)學(xué)到的所有東西。雖然作品的各部分功能都已經(jīng)實(shí)現(xiàn),但是和真正的門戶網(wǎng)站比起來還有很多不足。

本次畢業(yè)設(shè)計(jì)我學(xué)到的最多的就是如何查閱書籍和資料,并充分利用網(wǎng)上資源。幾乎系統(tǒng)出現(xiàn)的所有問題,在網(wǎng)上合理查詢都會(huì)找到解決辦法,學(xué)會(huì)如何解決問題將使我終身受益匪淺。同時(shí)系統(tǒng)的前期設(shè)計(jì)和規(guī)劃也很關(guān)鍵,從環(huán)境的搭建,數(shù)據(jù)庫設(shè)計(jì),再到整體架構(gòu)都很重要,提前考慮好各種情況,才能在后期遇到問題而從容不驚。

還有就是要嚴(yán)格按照軟件開發(fā)的標(biāo)準(zhǔn)和流程去開發(fā),用軟件工程的思想去行動(dòng),這樣一切都顯得井然有序,而且更為標(biāo)準(zhǔn),同時(shí)能使我們養(yǎng)成良好的開發(fā)習(xí)慣。

當(dāng)然程序中還有許多不完善的地方,目前功能還是有點(diǎn)單一,后期我還會(huì)對(duì)這個(gè)系統(tǒng)不斷完善,不斷打磨,使這個(gè)系統(tǒng)更加完美。

關(guān)鍵詞:設(shè)計(jì),實(shí)現(xiàn),通用,門戶

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉