版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、2020年4月19日網(wǎng)站設(shè)計與實現(xiàn)文檔僅供參考,不當(dāng)之處,請聯(lián)系改正。 畢業(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)品的信息,一種比較便捷的方式便是經(jīng)過網(wǎng)絡(luò)來訪問。xx網(wǎng)站設(shè)計,它將需求、產(chǎn)品銷售與客戶服務(wù)高度緊密的結(jié)合在一起,大大提高了效率,方便客戶了解及訂購合適的軟件來提高工作效率,使得客戶與企業(yè)能夠輕松交互。網(wǎng)站以jsp作為前臺的主要展示工具,使用MVC設(shè)計模式,按照工廠模式解耦,設(shè)計程序的底層使用Hibernate持久層框架。Spring容器
2、管理對象,Struts2結(jié)合jsp做前臺展示,實現(xiàn)了產(chǎn)品發(fā)布與展示,新聞發(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
3、want to be in a shorter period of 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
4、 customer to understand and order 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
5、Hibernate persistence layer framework, 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 fu
6、nctions.Key words : System;Electronic commerce;The game development.Software development目 錄TOC o 1-3 h u HYPERLINK l _Toc21896 1 引言 PAGEREF _Toc21896 1 HYPERLINK l _Toc26036 1.1 研究背景 PAGEREF _Toc26036 1 HYPERLINK l _Toc22643 1.2 研究意義 PAGEREF _Toc22643 2 HYPERLINK l _Toc19167 2 網(wǎng)站系統(tǒng)相關(guān)技術(shù)及工具介紹 PAGEREF
7、_Toc19167 3 HYPERLINK l _Toc13904 2.1 服務(wù)器Tomcat7.0簡介 PAGEREF _Toc13904 3 HYPERLINK l _Toc975 2.2 JAVA語言 PAGEREF _Toc975 3 HYPERLINK l _Toc9232 2.3 MySQL PAGEREF _Toc9232 4 HYPERLINK l _Toc16513 2.4 Hibernate PAGEREF _Toc16513 4 HYPERLINK l _Toc27973 2.5 Spring框架 PAGEREF _Toc27973 5 HYPERLINK l _Toc1
8、3217 2.6 MVC開發(fā)模式介紹 PAGEREF _Toc13217 5 HYPERLINK l _Toc16837 3 需求分析及總體設(shè)計介紹 PAGEREF _Toc16837 7 HYPERLINK l _Toc24097 3.1 需求分析 PAGEREF _Toc24097 7 HYPERLINK l _Toc13669 3.2 項目架構(gòu) PAGEREF _Toc13669 8 HYPERLINK l _Toc26755 3.3 系統(tǒng)工作原理 PAGEREF _Toc26755 9 HYPERLINK l _Toc10903 3.4模型設(shè)計 PAGEREF _Toc10903 10
9、 HYPERLINK l _Toc32644 3.4.1控制層設(shè)計 PAGEREF _Toc32644 10 HYPERLINK l _Toc26352 3.4.2業(yè)務(wù)層設(shè)計 PAGEREF _Toc26352 11 HYPERLINK l _Toc5895 3.4.3工具類設(shè)計 PAGEREF _Toc5895 16 HYPERLINK l _Toc18653 3.4.4持久層設(shè)計 PAGEREF _Toc18653 18 HYPERLINK l _Toc19828 4 網(wǎng)站的前臺設(shè)計與實現(xiàn) PAGEREF _Toc19828 20 HYPERLINK l _Toc4121 4.1 首頁設(shè)計
10、 PAGEREF _Toc4121 20 HYPERLINK l _Toc15071 4.2 產(chǎn)品展示 PAGEREF _Toc15071 21 HYPERLINK l _Toc30360 4.3新聞中心 PAGEREF _Toc30360 21 HYPERLINK l _Toc4800 4.4 留言反饋界面展示 PAGEREF _Toc4800 22 HYPERLINK l _Toc1538 4.5 其它界面展示 PAGEREF _Toc1538 23 HYPERLINK l _Toc29691 5 網(wǎng)站的后臺設(shè)計與實現(xiàn) PAGEREF _Toc29691 25 HYPERLINK l _T
11、oc13826 5.1 管理員登錄 PAGEREF _Toc13826 25 HYPERLINK l _Toc25221 5.2 后臺主頁 PAGEREF _Toc25221 25 HYPERLINK l _Toc487 5.3 新聞管理模塊 PAGEREF _Toc487 26 HYPERLINK l _Toc32498 5.4 產(chǎn)品管理模塊 PAGEREF _Toc32498 27 HYPERLINK l _Toc22634 5.5 網(wǎng)站信息管理模塊 PAGEREF _Toc22634 28 HYPERLINK l _Toc29612 5.6 用戶留言管理模塊 PAGEREF _Toc29
12、612 28 HYPERLINK l _Toc7834 5.7 其它模塊 PAGEREF _Toc7834 29 HYPERLINK l _Toc3235 6 系統(tǒng)測試 PAGEREF _Toc3235 30 HYPERLINK l _Toc1854 6.1 測試要求 PAGEREF _Toc1854 30 HYPERLINK l _Toc21940 6.2 測試用例設(shè)計 PAGEREF _Toc21940 30 HYPERLINK l _Toc18991 6.3 測試結(jié)論 PAGEREF _Toc18991 30 HYPERLINK l _Toc15644 7 結(jié)論 PAGEREF _Toc
13、15644 31 HYPERLINK l _Toc25450 謝辭 PAGEREF _Toc25450 32 HYPERLINK l _Toc25265 參考文獻(xiàn) PAGEREF _Toc25265 33XX網(wǎng)站設(shè)計與實現(xiàn)1 引 言1.1 研究背景當(dāng)前,網(wǎng)絡(luò)的發(fā)展趨勢已經(jīng)商業(yè)化和全民普及趨勢。世界上大部分的公司企業(yè)都是以營利為首要目的。在宣傳推廣上,就顯得尤為重要。使用有效的廣告能夠為我們帶來高效益,比如在企業(yè)宣傳,招聘員工信息發(fā)布,網(wǎng)上銷售等方面,網(wǎng)絡(luò)給我們帶來了許多方便?,F(xiàn)在的網(wǎng)絡(luò)儼然已經(jīng)成為了企業(yè)競爭的重要戰(zhàn)略手段。網(wǎng)站的優(yōu)勢源于能夠為企業(yè)提供一個舞臺來展示自己、另一個好處體現(xiàn)在能為消費
14、者更加便捷的提供一個了解企業(yè)的途徑。公司或企業(yè)能夠經(jīng)過網(wǎng)絡(luò)平臺,實時的提供在線客服以供咨詢。利用網(wǎng)絡(luò)推廣和宣傳企業(yè)產(chǎn)品、實時的發(fā)布一些要聞,顧客的需求建議也能夠經(jīng)過留言信息及時的反饋給企業(yè)網(wǎng)站的工作人員。網(wǎng)絡(luò)的普及,使得計算機走進(jìn)了千家萬戶,社會各層人士獲得了平等接觸實時信息的機會。利用這股發(fā)展趨勢,各大企業(yè)在管理和銷售上都能使用到軟件領(lǐng)域的工具來進(jìn)行便捷銷售,便捷辦公,解放一定的勞動力。利用網(wǎng)站推廣產(chǎn)品,推進(jìn)行業(yè)發(fā)展,促進(jìn)產(chǎn)品銷售是一個很好的方案,新的促銷形式,與傳統(tǒng)相比有許多優(yōu)點:它降低產(chǎn)品成本;利用網(wǎng)絡(luò)作為交互平臺;改變傳統(tǒng)的人與人直接碰面交談的方式,能夠降低交互交談時受空間和時間的限制
15、;信息的傳遞及發(fā)布更新更加迅速靈活,新的技術(shù)產(chǎn)品信息上傳后,能夠立即得到推廣和發(fā)現(xiàn),客戶能夠立即看到,對于滿意的產(chǎn)品,能夠直接與客服人員交談,從而大大提高了效率。網(wǎng)站的主要功能是利用網(wǎng)站作為公司企業(yè)產(chǎn)品的展示平臺,將最新產(chǎn)品的一些基本信息以及相關(guān)新聞、公司當(dāng)前概況等信息以網(wǎng)站的形式發(fā)布到網(wǎng)絡(luò)上,以供人們觀看與借鑒。本次的畢業(yè)設(shè)計課題是基于JSP設(shè)計的企業(yè)網(wǎng)站系統(tǒng),它的產(chǎn)生背景源于武夷山市企業(yè)信息化建設(shè)。此設(shè)計更具實際研究意義,目的是綜合所學(xué)知識和利用身邊的網(wǎng)絡(luò)資源,鍛煉動手實踐能力,有利于提高綜合學(xué)習(xí)能力。順利完成設(shè)計課題的前提條件還需要很多課外知識的補充,如MVC開發(fā)模式,當(dāng)前流行的J2EE
16、框架,對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)站,將最新的產(chǎn)品和新聞實時的發(fā)布更新,那么去推廣一個網(wǎng)站相對來講更加的省時省力,這是提高效率的有效途徑。企業(yè)建立網(wǎng)站,這樣能夠很好的對外展示企業(yè)文化,是企業(yè)實力的一種體現(xiàn)方式。今天,各行各業(yè)的競爭日趨激烈,每個企業(yè)所面臨的主要
17、任務(wù)是提高工作效率和工作質(zhì)量。企業(yè)網(wǎng)站的建立能夠大量降低人力資源方面的成本付出,突破了時間和空間的限制,客戶對產(chǎn)品的詳細(xì)了解能夠在任何時間和地點進(jìn)行,能夠即時的進(jìn)行。有了展銷產(chǎn)品的網(wǎng)站平臺,客戶就不需要到實地去查詢產(chǎn)品詳情,能夠借助網(wǎng)絡(luò)平臺聯(lián)系銷售員,經(jīng)過遠(yuǎn)程體驗,大大便捷了交易所帶來的時間問題。鑒于互聯(lián)網(wǎng)的諸多優(yōu)勢以及對國內(nèi)外軟件產(chǎn)品的銷售現(xiàn)狀的研究分析,我此次的設(shè)計是開發(fā)一個集成了發(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ā),對編程興趣人員能夠自由對To
18、mcat服務(wù)器進(jìn)行學(xué)習(xí)和研究。因為它的免費和開源的這些特性。Tomcat得到了極大的推廣,而且經(jīng)過開源社區(qū)的貢獻(xiàn),它的性能也更加強大,趨于完善。Tomcat是純粹的由java代碼編寫。它以小型、輕量級Web服務(wù)器的特點被廣泛的推廣運用并受人喜愛。在個人的電腦上安裝上服務(wù)器軟件,個人的PC電腦自然就成為了一個初具模型服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問量不多的情況下能夠被普遍地使用。在配置好Tomcat服務(wù)器的電腦上,這樣Tomcat就能夠?qū)TML頁面等用戶發(fā)出的訪問請求進(jìn)行響應(yīng)1。我們將web應(yīng)用程序部署到Tomcat服務(wù)器中,就能夠?qū)崿F(xiàn)在本地進(jìn)行web應(yīng)用程序的調(diào)試運行。2.2 JAVA語言Ja
19、va以其面向?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)用。由Java編寫出的源代碼,經(jīng)虛擬機的類加載器編譯成字節(jié)碼文件后,能夠運行在不同的平臺上。這樣就脫離了java的運行環(huán)境,只需要編譯過一次,就能夠到處運行2。Java有一個用戶友好,貼近現(xiàn)實生活的語法。這樣的語言具備著獨特的優(yōu)勢,擁有面向?qū)ο蟮母拍?,穩(wěn)定性,
20、和平臺獨立性,安全性,穩(wěn)定性和支持多線程,動態(tài)等優(yōu)良特性。因為Java多的線程特性,處理器在不同的線程間快速切換。相比其它語言,如C+沒有內(nèi)置的多線程機制,因此C+的多線程就必須調(diào)用操作系統(tǒng)的多線程功能來進(jìn)行多線程程序的設(shè)計。Java在軟件的編程語言設(shè)計中,不單能夠應(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)今世上最重要的語言之一3。2.3 MySQL就當(dāng)前的數(shù)據(jù)分類來看,MySQL的規(guī)模能夠?qū)⑵鋭澐值街行蛿?shù)據(jù)庫,它是由瑞典研發(fā)人員所
21、研發(fā),當(dāng)前已經(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)站的應(yīng)用開發(fā)一般是以MySQL為首選。MySQL的底層應(yīng)用語言以C和C+為主,使用了多種編譯器對其進(jìn)行測試和不斷改進(jìn),在移植性方面,mysql的表現(xiàn)較為突出。多種操作系統(tǒng)對mysql都支持,像通俗常見的就有:Linux、Mac OS、Windows等操作系
22、統(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ù)庫操作方面也更加便捷5。2.4 HibernateHibernate的優(yōu)點:對JDBC的封裝,簡化了許多重復(fù)的代碼。對DAO層編碼工作進(jìn)行了簡化,使開發(fā)能夠集中精力關(guān)心業(yè)務(wù)邏輯。移植性好,它支持多種數(shù)據(jù)庫,這樣更換數(shù)據(jù)庫時代碼的改變量就比較少。該框架沒有實現(xiàn)任何接口,沒有侵入
23、性。是一個輕量級框架。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)該從多的一方維護(hù)。2、避免使用一對一,盡量使用多對一關(guān)聯(lián)關(guān)系。3、配置對象緩存,減少使用集合緩存。4、減少表字段,表關(guān)聯(lián)不要怕多,二級緩存撐腰。Hibernate因為其簡單的學(xué)習(xí)成本,功能完備而且運行高效,受到開發(fā)人員的喜愛。使用Hibernate自帶的查詢語言HQL,能夠使數(shù)據(jù)庫操作方面更加得心應(yīng)手,解決很多開發(fā)上常見的對數(shù)據(jù)庫操作的一系列繁瑣問題,使程序員能夠?qū)?/p>
24、注于解決業(yè)務(wù)邏輯的問題7。2.5 Spring框架Spring是一個輕量級容器,默認(rèn)的許多服務(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)前流行框架的集成,應(yīng)用范圍廣泛,能夠是B/S或者C/S9。本網(wǎng)站系統(tǒng)采用注釋的方式來管理事務(wù)。從三層結(jié)構(gòu)來看,Web層的Struts2框架和Dao層的Hibernate框架都與其進(jìn)行整合。Spring的強大管理及代理等方式,使任何Java應(yīng)用都能夠從Sp
25、ring中受益10。其結(jié)構(gòu)如圖2-1所示:圖2-1 Spring結(jié)構(gòu) 2.6 MVC開發(fā)模式介紹MVC是企業(yè)級應(yīng)用的開發(fā)中常見的設(shè)計模式。它把項目架構(gòu)進(jìn)行分層設(shè)計,分為表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層。MVC即代表模型視圖控制器。模型(Model)即為一些常見的實體類,(如Person類實體),實體類主要用于封裝數(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ù)支持
26、。因為模型的代碼能夠被多個視圖重復(fù)使用,這樣能夠減少代碼的重復(fù)性書寫12。2、視圖視圖提供給用戶使用,而且能夠與之交互的界面。在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)用戶請求數(shù)據(jù),控制器做出響應(yīng)處理,最終將數(shù)據(jù)進(jìn)行封裝,再交給jsp做顯示。因此當(dāng)你點擊在JSP互動環(huán)節(jié)時,控制器接收組件的要求和決策模型的呼叫建立負(fù)責(zé)處理傳入的請求,然后封裝的數(shù)據(jù),確定該視圖顯示界面14。3 需求分析及總體設(shè)計介紹3.1 需求分析x
27、x模型是典型網(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層框架,是基于當(dāng)前流行的SSH,前臺采用JSP技術(shù)作為顯示和交互,在網(wǎng)站的設(shè)計與開發(fā)過程中,利用軟件設(shè)計模式,做到盡量削減體系功能模塊間的耦合。本網(wǎng)站系統(tǒng)前后臺的功能關(guān)系,如圖3-1所示:圖3-1 系統(tǒng)功能分析 前臺(游客瀏覽)部分:企業(yè)文化展示:顯示企業(yè)精神理念,公司福利待遇等信息;經(jīng)營業(yè)務(wù)展示:顯示企業(yè)經(jīng)營范圍內(nèi)業(yè)務(wù)項目;新聞顯示:按最新更新展示新聞條
28、目及詳細(xì);產(chǎn)品顯示:經(jīng)過預(yù)覽圖片或產(chǎn)看詳細(xì)的方式查看產(chǎn)品的詳細(xì)信息;留言反饋:經(jīng)過表單的填寫提交對此網(wǎng)站以及產(chǎn)品的建議或意見。后臺(管理員管理)部分:管理員:管理員登錄;新聞管理:分頁查看所有新聞,對新聞進(jìn)行編輯、批量刪除、添加新聞操作;產(chǎn)品管理:按更新時間順序添加新產(chǎn)品、查看產(chǎn)品詳細(xì)信息、編輯產(chǎn)品、刪除產(chǎn)品信息;網(wǎng)站基本信息管理:更新網(wǎng)站基本信息,企業(yè)理念精神及公司福利,地址和聯(lián)系信息;3.2 項目架構(gòu) 圖3-2 項目架構(gòu) 如圖3-2所示,左邊是項目工程的三層架構(gòu)。Dao層及其接口實現(xiàn)類,這兩個包中的類協(xié)調(diào)負(fù)責(zé)對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行存取操作。而domain包下存放的是實體類,主要是為了對數(shù)據(jù)進(jìn)
29、行封裝和攜帶數(shù)據(jù)。Service及其實現(xiàn)類在三層架構(gòu)中主要是針對業(yè)務(wù)邏輯進(jìn)行編寫的類。Beans.xml、Hibernate.cfg.xml與struts.xml這三個配置文件則是對應(yīng)SSH框架。而perties則是此web應(yīng)用程序中用到的一個自定義配置文件。右邊的是根目錄結(jié)構(gòu),其下是JSP頁面的存放和樣式控制文件等,例如CSS、js文件等。本次的項目設(shè)計遵循MVC設(shè)計模式,利用Spring容器巧妙的創(chuàng)立和管理類,遵循工廠設(shè)計模式對類進(jìn)行解耦,按照三層架構(gòu)進(jìn)行設(shè)計和實現(xiàn),層與層之間類的功能明確,整體結(jié)構(gòu)清晰,便于調(diào)試和管理。3.3 系統(tǒng)工作原理基于web的網(wǎng)站系統(tǒng)是用戶經(jīng)過瀏覽器發(fā)送請求,根據(jù)
30、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ù)層的實現(xiàn)類和DAO層中的類。圖3-3 工作原理3.4模型設(shè)計3.4.1控制層設(shè)計在SSH框架組合下,控制層的代碼由struts2的Action來充當(dāng),根據(jù)請求信息調(diào)用指定action類
31、中的方法來進(jìn)行請求處理,以及返回對應(yīng)的結(jié)果視圖,由jsp將數(shù)據(jù)作為展示給用戶。命名空間以/sys標(biāo)記的為后臺的包,以/cli標(biāo)記的對應(yīng)前臺,一般由網(wǎng)絡(luò)上的游客隨機訪問。在兩大類對應(yīng)的包名下有對應(yīng)前臺和后臺模塊的諸多Action類,代碼如下:Struts2中的前臺配置: /WEB-INF/client/index.jsp /WEB-INF/client/business.jsp /WEB-INF/client/product.jsp /WEB-INF/client/promore.jsp /WEB-INF/client/news.jsp /WEB-INF/client/fullText.jsp
32、3.4.2業(yè)務(wù)層設(shè)計業(yè)務(wù)層由Struts2的action類和一些實體類配合使用,主要是針對業(yè)務(wù)邏輯與數(shù)據(jù)封裝,數(shù)據(jù)攜帶這些請求進(jìn)行處理,然后返回結(jié)果視圖,供頁面做顯示。業(yè)務(wù)層的處理內(nèi)容包含:企業(yè)軟件產(chǎn)品的增刪改查功能、新聞模塊的顯示功能、留言與意見反饋功能、客服在線咨詢等。軟件產(chǎn)品業(yè)務(wù)設(shè)計,靈感來自于一些企業(yè)的門戶網(wǎng)站,其思路是:產(chǎn)品羅列,能夠?qū)Ξa(chǎn)品的詳細(xì)信息查看,在產(chǎn)品的查看過程中能夠即時的聯(lián)系客服人員訂購咨詢或了解詳情。下面是產(chǎn)品業(yè)務(wù)類實現(xiàn)的部分代碼:/ 后臺-顯示產(chǎn)品列表public String list() QueryBuilder queryBuilder = new QueryB
33、uilder(Product.class);queryBuilder.addOrderProperty(updateTime, 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().substri
34、ng(product.getPicFileName().lastIndexOf(.);if (!.jpg.equalsIgnoreCase(suffix) this.addFieldError(msg, 格式錯誤);return addUI; catch (Exception e) this.addFieldError(msg, 請選擇產(chǎn)品圖片);return addUI;/ 文件上傳if (product.getPicFileName() != null) String tmpFileName = product.getPicFileName().substring(product.getP
35、icFileName().lastIndexOf(/) + 1);String UUIDName = UUIDUitls.getUUID() + suffix;String savedPath = ServletActionContext.getServletContext().getRealPath(uploads);File savedFile = new File(savedPath, UUIDName);if (product.getPic() = null) this.addFieldError(warn, 請選擇圖片);return addUI;product.getPic().r
36、enameTo(savedFile);/ 添加記錄到數(shù)據(jù)庫product.setNewName(UUIDName);product.setOglName(tmpFileName);product.setUpdateTime(new Date();productBiz.save(pro);request.setAttribute(msg, 提示:上傳成功);return addUI;留言反饋處理:首先對想要留言的用戶進(jìn)行姓名規(guī)則校驗、電話號碼校驗、郵箱規(guī)則校驗,校驗不經(jīng)過的(包含空)將不提交頁面,當(dāng)非空等檢測經(jīng)過之后,就提交表單,這樣就能夠從數(shù)據(jù)庫中查看到經(jīng)過檢測的用戶留言,能夠避免大量的垃圾留
37、言。新聞?wù)故緲I(yè)務(wù):包括新聞條目,新聞的發(fā)布時間按照更新的時間排序,經(jīng)過分頁對新聞進(jìn)行顯示。新聞模塊的功能實現(xiàn),是從數(shù)據(jù)庫按頁查出當(dāng)前顯示頁的新聞頁集合信息,用list集合封裝,然后借助ognl對其進(jìn)行迭代操作并顯示。而在前臺頁面的分頁功能實現(xiàn),則是由Action去獲取每頁的大小數(shù)和所查看數(shù)據(jù)的當(dāng)前頁碼,動態(tài)的拼湊hql語句,每次去數(shù)據(jù)庫詢出指定頁碼的記錄條數(shù),進(jìn)行封裝到page實體,再將多個page實體封裝成list集合,完成查詢后將返回結(jié)果給頁面進(jìn)行迭代顯示。下面為新聞模塊的部分代碼:/ 新聞列表public String listNews() QueryBuilder queryBuild
38、er = new QueryBuilder(News.class);queryBuilder.addOrderProperty(record, false);PageView pageView = newsService.getPageView(queryBuilder, getPageNum(request);request.setAttribute(news, pageView);return listNews;/ 批量刪除新聞public String del() / 獲取idsString sids = request.getParameterValues(News_ids);Inte
39、ger ids = DataType.converterStringArray2IntegerArray(sids);if (ids != null) / 刪除newsService.deleteSysProductsByIds(ids);return listAction;return null;/ 發(fā)布新聞public String addNews() / 非空判斷titleif (StringUtils.isBlank(news.getTitle() this.addFieldError(msg, 請?zhí)顚懳恼聵?biāo)題);return addNewsUI;/ 如果是事紀(jì)年份不能為空String
40、 suffix = 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() / 新聞有圖片this.addFieldError(msg, 請選擇新聞圖片);return addNewsUI;/ 圖片名不為空的時候驗后綴名try suffix =
41、 news.getPicFileName().substring(news.getPicFileName().lastIndexOf(.);if (!.jpg.equalsIgnoreCase(suffix) this.addFieldError(msg, 格式錯誤);return addNewsUI; catch (Exception e) this.addFieldError(msg, 請選擇圖片);return addNewsUI;/ 新聞發(fā)布者-驗空if (StringUtils.isBlank(news.getName() this.addFieldError(msg, 請?zhí)顚懩纳?/p>
42、份);return addNewsUI;/ 新聞內(nèi)容-驗空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è)置年份 -String temp = news.getYear().substring(0, 4);news.setYear(temp + ); / 2設(shè)置新聞發(fā)布時間,截取news.setPostTime(new Dat
43、e();/ 3.新聞?wù)厝f (news.getContent().length() 100) news.setDigest(news.getContent().substring(0, 99);/ 4.設(shè)置新聞圖片上傳信息圖片上傳if (StringUtils.isNotBlank(news.getPicFileName() / System.out.println(picForm.getPicFileName();String tmpFileName = news.getPicFileName().substring(news.getPicFileName().lastIndexOf(
44、/) + 1);String UUIDName = UUIDUitls.getUUID() + suffix;String savedPath = ServletActionContext.getServletContext().getRealPath(uploads);System.out.println(-新聞添加- + savedPath);File savedFile = new File(savedPath, UUIDName);/ 新聞必須要有圖、事紀(jì)圖片可有可無以下判斷不需要if (news.getPic() = null) this.addFieldError(warn, 請選
45、擇圖片);return addNewsUI;news.getPic().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ù)進(jìn)行類型轉(zhuǎn)換。MD5keyBean.java則是用于對字符串進(jìn)行加密使用,一般是對其成數(shù)據(jù)指紋摘要,是一串32位的明文密碼。而SessionUtils.java是針對登錄用戶能夠設(shè)置服務(wù)器session的存活時間或者退出系統(tǒng)時將user從session中移除出去。UUIDUtil.java用于生成全球唯一id號。代碼示例:DataType.javapublic class DataType publi
47、c 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 Integer Str2Integer(String id
48、)if (StringUtils.isNotBlank(id) return Integer.parseInt(id);return null;public static String Integer2Str(Integer id)if (id!=null) return id.toString();return null;SessionUtils.javapublic class SessionUtils public static void setSysUserToSession(HttpServletRequest request,User user) HttpSession sessi
49、on=request.getSession();if(user=null)return;session.setAttribute(user, user);public static User getSysUserFormSession(HttpServletRequest request) HttpSession session=request.getSession(false); if(session=null) return null; User user=(User)session.getAttribute(user); return user;3.4.4持久層設(shè)計為了解決并發(fā)訪問帶來的
50、問題,此次設(shè)計選用以c3p0數(shù)據(jù)源為其設(shè)計數(shù)據(jù)庫連接池。由每一個實體類對應(yīng)一張表,利用Hibernate的持久化,懶加載,緩存等特性對數(shù)據(jù)進(jìn)行保存、更新和頻繁的查找操作。從Struts2的Action的創(chuàng)立、Service類和Dao對象的創(chuàng)立,使用了當(dāng)前流行的工廠模式,三層架構(gòu)中每一個層的類都對其進(jìn)行抽取接口,而且使用注解加配置文件相結(jié)合,由Spring容器代為管理對象的生命周期,靈活搭配,整個項目工程看起來結(jié)構(gòu)清晰。事務(wù)的控制,同樣是采用注解的方式,這樣的設(shè)計結(jié)構(gòu)一目了然,便于后期系統(tǒng)的維護(hù)和升級15。下面是代碼的部分示例:Hibernate配置文件中的映射:Spring控制反轉(zhuǎn)和事務(wù)管理注
51、解:/*獲取父類的泛型類型*/private Class entityClass=GenericClass.getGenericClass(this.getClass();Resource(name=sessionFactory)public void setSessionFactoryDI(SessionFactory sessionFactory) super.setSessionFactory(sessionFactory);public void save(T t) this.getHibernateTemplate().save(t);public void update(T ent
52、ity) this.getHibernateTemplate().update(entity);事務(wù)注解:Service(newsService)Transactionalpublic class NewsServiceImpl implements NewsService / 事務(wù)注解Transactional(isolation = Isolation.DEFAULT, propagation = Propagation.REQUIRED, readOnly = false)public void save(News news) News downNews = findDownIdIsNu
53、llById();4 網(wǎng)站的前臺設(shè)計與實現(xiàn)在這個章節(jié)將會介紹這次網(wǎng)站設(shè)計的界面部分。xx的前臺是供游客瀏覽新聞、接觸這個門戶網(wǎng)站企業(yè)的基本信息,查看最新設(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)站常見的菜單。其下方為可更新,可自動
54、切換的宣傳圖片。首頁能夠展示出公司最新研發(fā)的軟件產(chǎn)品宣傳,包括宣傳圖片和產(chǎn)品信息。4.2 產(chǎn)品展示圖4-2,產(chǎn)品的展示,能夠是以圖片預(yù)覽的方式連續(xù)翻看產(chǎn)品信息,或可點擊查看詳細(xì):圖4-2 產(chǎn)品展示4.3新聞中心圖4-3,按照后臺的發(fā)布時間順序?qū)⒆钚赂碌男侣勶@示在最前,并顯示時間和新聞標(biāo)題:圖4-3 新聞中心4.4 留言反饋界面展示圖4-4聯(lián)系我們界面:圖4-4 留言反饋界面表單校驗注冊頁面校驗:您的姓名:不能為空;電子郵箱:不能為空;按照郵箱的規(guī)則校驗進(jìn)行約束;電話:不能為空;數(shù)字約束;長度控制在7-15位;留言:不能為空;留言的字符長度不能小于0;表單校驗中,對于以上校驗未經(jīng)過的,表單不予
55、提交。這里的部分校驗是使用的是validate動態(tài)驗證來初步完成校驗,用戶體驗效果較好。4.5 其它界面展示圖4-5企業(yè)年度優(yōu)秀員工界面:圖4-5 企業(yè)年度優(yōu)秀員工界面圖4-6企業(yè)精神文化展示界面: 圖4-6 企業(yè)精神文化展示界面5 網(wǎng)站的后臺設(shè)計與實現(xiàn)網(wǎng)站的后臺設(shè)計是為管理員方便管理網(wǎng)站而設(shè)計的,其中包括新聞中心、產(chǎn)品信息管理、網(wǎng)站信息維護(hù)、用戶留言管理。5.1 管理員登錄后臺管理員登錄頁面,登錄成功后到達(dá)后臺主頁。圖5-1 后臺登錄界面5.2 后臺主頁管理員登錄成功后,到達(dá)主頁。主頁是框架頁,由上、下構(gòu)成,下部框架分為左右。圖5-2 后臺主頁界面上部顯示標(biāo)題和部分簡單菜單,分別為:登錄人員
56、、當(dāng)前系統(tǒng)時間、修改口令及退出系統(tǒng);左部顯示供管理員管理網(wǎng)站的菜單,其中能夠?qū)W(wǎng)站相應(yīng)模塊執(zhí)行增刪改操作。右部默認(rèn)顯示管理員的登錄信息和一些溫馨提示,當(dāng)點擊左部鏈接后,內(nèi)容都將在右部做出顯示。5.3 新聞管理模塊在新聞模塊里的管理編輯頁面:圖5-3 添加新聞界面圖5-4 新聞編輯界面5.4 產(chǎn)品管理模塊在產(chǎn)品展示模塊里的產(chǎn)品頁面:新聞列表頁面:圖5-5 添加新聞界面新聞編輯頁面:圖5-6 產(chǎn)品編輯界面在產(chǎn)品的管理中,能夠執(zhí)行批量刪除等操作。在編輯產(chǎn)品的頁面中,將會對產(chǎn)品的名稱及產(chǎn)品的描述信息做出非空約束等。編輯或添加成功時,系統(tǒng)會有消息提示。5.5 網(wǎng)站信息管理模塊圖5-7 網(wǎng)站信息修改界面5
57、.6 用戶留言管理模塊圖5-8 用戶留言查看界面在用戶留言管理模塊中,能夠執(zhí)行批量刪除、查看留言詳細(xì)、查看留言的網(wǎng)絡(luò)方向來源等操作。5.7 其它模塊網(wǎng)站管理員頁面:圖5-9 網(wǎng)站管理員界面修改管理員口令:圖5-10 修改管理員口令界面公司修改頁面:圖5-11 企業(yè)信息管理界面6 系統(tǒng)測試6.1 測試要求一個模塊的功能的改動是否會對另一個模塊產(chǎn)生不利的影響;下降的子功能緊密程度,達(dá)到預(yù)期的功能要求;測試全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否存在問題;6.2 測試用例設(shè)計以登錄系統(tǒng)測試作為示例,設(shè)計測試用例如表6-1所示:表6-1登入系統(tǒng)測試用例功能特性用戶登錄驗證測試目的對輸入信息進(jìn)行健壯性判斷測試數(shù)據(jù)用戶名稱:wg
58、u 密碼:123序號描述輸入信息期望實際結(jié)果結(jié)論1輸入用戶姓名,按“登陸”按鈕。用戶姓名:wgu,密碼不填彈框提示“用戶名或密碼有誤!”彈框提示“登錄的密碼不能為空!”和預(yù)期的一樣2輸入密碼,按“登陸”按鈕。用戶姓名不填,密碼:123顯示警告信息“用戶名或密碼誤!”彈框提示“用戶登錄名稱不能為空!”和預(yù)期的一樣3輸入用戶姓名和密碼,按“登陸”按鈕。用戶姓名:1,密 碼:1顯示警告信息“用戶名或密碼有誤!”顯示警告“用戶名或密碼錯誤”和預(yù)期的一樣4輸入用戶登錄名和口令,點擊“登陸”按鈕。用戶名:wgu,密 碼:123正確登入到系統(tǒng)管理員操作界面正確登入到系統(tǒng)管理員操作界面和預(yù)期的一樣6.3 測試
59、結(jié)論一開始寫出的代碼調(diào)理較好,則測試容易。測試時,應(yīng)當(dāng)有序的系統(tǒng)測試來檢測潛在的故障,并進(jìn)行定位。同時,問題是最容易在邊界這塊地方發(fā)生,這能夠經(jīng)過手動或程序的方式檢查完成。自動檢測是最理想的,越多越好,因為機器不犯錯誤,不疲勞,而靠實際幻想容易欺騙自己,逃避測試,就隱藏了錯誤。在測試過后,及時出現(xiàn)了新的問題,也容易排查,因為它應(yīng)該是出現(xiàn)在新的代碼里。7 結(jié)論在這次畢業(yè)課題實踐過程當(dāng)中,從最初課題構(gòu)思到整站的設(shè)計完成,其中主要的功能模塊都已基本完成,包括科技產(chǎn)品的展銷功能,新聞發(fā)布與管理,留言意見接收與反饋,經(jīng)營業(yè)務(wù)展示,網(wǎng)站信息更新與管理,企業(yè)基本信息的管理與展示,在線咨詢等功能。網(wǎng)站整體上的
60、設(shè)計給人的覺比較簡單清新舒適,視覺上不易產(chǎn)生疲勞,采用HTML5的頁面效果,令用戶體驗更好。導(dǎo)航中的留言反饋菜單,展示了企業(yè)的地理位置和基本的聯(lián)系信息,便于聯(lián)系或查找時使用。這個模塊在設(shè)計時提供了留言的反饋功能,便于接收廣大群眾的不同意見和看法,以便改進(jìn)產(chǎn)品質(zhì)量、促進(jìn)企業(yè)發(fā)展等問題。設(shè)計功能基本實現(xiàn),可是在設(shè)計上有一些細(xì)枝末節(jié)在當(dāng)初設(shè)計的時候還是沒有考慮到位。比如頁面的圖片素材選取沒有經(jīng)過細(xì)致處理,因此一些色彩上感覺跟設(shè)計風(fēng)格沒有協(xié)調(diào)一致。超鏈接在設(shè)計的時候沒有考慮到適時的打開一個新窗口,只是在進(jìn)入后臺的時候設(shè)計了這個細(xì)節(jié)。前臺的界面風(fēng)格在不斷的調(diào)試與更改的情況下,導(dǎo)致菜單欄導(dǎo)航處的樣式出現(xiàn)細(xì)
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年智能硬件設(shè)備及配套軟件研發(fā)與銷售合同
- 2024年版道路運輸司機合同2篇
- 2021-2022學(xué)年甘肅省白銀市部分學(xué)校高一上學(xué)期第二次聯(lián)考語文試題(解析版)
- 2025造價工程師經(jīng)驗對建設(shè)工程合同的審查意義備考資料
- 2025年陽泉貨運準(zhǔn)駕證模擬考試
- 2024年房地產(chǎn)項目施工監(jiān)理合同范本集錦3篇
- 2024年度高級實習(xí)生個人隱私及商業(yè)秘密保護(hù)協(xié)議3篇
- 洛陽科技職業(yè)學(xué)院《經(jīng)濟(jì)數(shù)學(xué)(一)》2023-2024學(xué)年第一學(xué)期期末試卷
- 高端制造企業(yè)總經(jīng)理聘任合同
- 2024年度船舶買賣居間代理合同實施細(xì)則下載3篇
- 北京海淀區(qū)育英學(xué)校跟崗學(xué)習(xí)總結(jié)
- 中軟統(tǒng)一終端安全管理平臺v90使用手冊
- 護(hù)理質(zhì)量管理PPT通用課件
- 氨水崗位應(yīng)知應(yīng)會手冊.docx
- AQ-C1-19 安全教育記錄表(三級)
- 廣東飼料項目建議書(參考范文)
- 鋁單板、玻璃幕墻建筑施工完整方案
- 六年級數(shù)學(xué)簡便計算易錯題
- 工程造價咨詢公司質(zhì)量控制制度
- 《常用醫(yī)學(xué)檢查》PPT課件.ppt
- 《發(fā)展經(jīng)濟(jì)學(xué)派》PPT課件.ppt
評論
0/150
提交評論