版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、湖南農(nóng)業(yè)大學(xué)全日制普通本科生畢業(yè)設(shè)計在線學(xué)習(xí)網(wǎng)站(論壇)的設(shè)計與開發(fā)以學(xué)習(xí)Java語言為例DESIGNANDDEVELOPMENTOFONLINELEARNINGWEBSITE(BBS)TOLEARNTHEJAVALANGUAGE,FOREXAMPLE學(xué)生姓名:曾攀鋒學(xué)號:201240922228年級專業(yè)及班級:2012級教育技術(shù)學(xué)(2)班指導(dǎo)老師及職稱:張翼然講師學(xué)院:教育學(xué)院湖南長沙提交日期:2016年05月湖南農(nóng)業(yè)大學(xué)全日制普通本科生畢業(yè)設(shè)計誠信聲明本人鄭重聲明:所呈交的本科畢業(yè)設(shè)計是本人在指導(dǎo)老師的指導(dǎo)下,進行研究工作所取得的成果,成果不存在知識產(chǎn)權(quán)爭議。除文中已經(jīng)注明引用的內(nèi)容外,本
2、論文不含任何其他個人或集體已經(jīng)發(fā)表或撰寫過的作品成果。對本文的研究做出重要貢獻的個人和集體在文中均作了明確的說明并表示了謝意。本人完全意識到本聲明的法律結(jié)果由本人承擔(dān)。畢業(yè)設(shè)計作者簽名:摘要-1-關(guān)鍵詞-1-1 前言-2-2 緒論-2-2.1.1 課題研究的背景-2-2.1.2 課題研究的意義-2-2.2國內(nèi)外研究現(xiàn)狀、水平和發(fā)展趨勢-3-2.2.1 國內(nèi)外研究現(xiàn)狀-3-2.2.2 未來BBS發(fā)展趨勢-3-3 Java語言-4-3.1 發(fā)展背景-4-3.2 Bizfoundaction集成開發(fā)工具-4-3.3 spring框架-4-3.4 JDBC-4-3.5 事件驅(qū)動模型-5-4 mySQL
3、數(shù)據(jù)庫-5-4.1 基本信息-5-5開發(fā)背景-6-5.1 需求分析-6-5.2 系統(tǒng)設(shè)計-6-6總結(jié)與展望-23-7參考文獻-24-致謝-24-在線學(xué)習(xí)網(wǎng)站(論壇)的設(shè)計與開發(fā)以學(xué)習(xí)Java語言為例學(xué)生:曾攀鋒指導(dǎo)老師:張翼然(湖南農(nóng)業(yè)大學(xué)教育學(xué)院,長沙410128)摘要:在線學(xué)習(xí)系統(tǒng)(論壇)是BBS下面的一個分支,其本質(zhì)差不多,所以下面我就簡稱學(xué)習(xí)論壇系統(tǒng)為BBS如今,互聯(lián)網(wǎng)在飛速發(fā)展,從互聯(lián)網(wǎng)快速獲取、發(fā)布和傳遞信息漸漸地成為了人們的習(xí)慣。而隨著計算機網(wǎng)絡(luò)的快速發(fā)展與普及,BBS論壇也隨著得到了快速的發(fā)展。本系統(tǒng)主要是采用java+jsp+spring+ajax等開發(fā)技術(shù)進行開發(fā)。Java
4、語言具有集成、封裝、多態(tài)等優(yōu)良的性能,使用springmvc最大的好處就是,頁面結(jié)構(gòu)與程序分離,有著良好的適用性、可移植性和超強的可擴展性。所以本系統(tǒng)主要使用java語言作為開發(fā),采用Web工程的開發(fā)模式和使用mySQ嗽據(jù)庫的兩層架構(gòu)模式,實現(xiàn)在線學(xué)習(xí)論壇網(wǎng)站的開發(fā)與設(shè)計。從而對信息的管理更加及時、高效和工作效率的提高。本網(wǎng)站利用BizFoundation集成開發(fā)工具實現(xiàn)了一個簡單的在線學(xué)習(xí)BBS系統(tǒng),并且詳細討論了該系統(tǒng)的實現(xiàn)過程、結(jié)構(gòu)和源代碼。關(guān)鍵詞:在線學(xué)習(xí);網(wǎng)頁設(shè)計;學(xué)習(xí)平臺;Designanddevelopmentofonlinelearningwebsite(BBS)Tolearn
5、theJavalanguage,forexampleAbstract:Today,theInternetintherapiddevelopmentoffast,publishandtransmitinformationfromtheInternetgraduallybecomethehabitofpeople.Withtherapiddevelopmentofcomputernetworkandpopularization,BBSBBSalsoasgotrapiddevelopment.ThissystemmainlyUSESJava+JSP+spring+ajaxdevelopmenttec
6、hnologyfordevelopment,etc.TheJavalanguagehasexcellentpropertiessuchasintegration,encapsulation,polymorphism,isthemainbenefitofusingthespringMVC,pagestructureandseparationprocess,hasagoodapplicability,portabilityandstrongextensibility.SothissystemmainlyUSESJavaasadevelopmentlanguage,USEStheWebenginee
7、ringdevelopmentmodeandtwolayerarchitecturemodeusingthemySQLdatabase,realizetheonlinelearningBBSWebsitedevelopmentanddesign.Thusthemanagementofinformationmoretimely,efficient,andimproveworkefficiency.ThissiteUSESBizFoundationintegrateddevelopmenttoolimplementsasimpleBBSonlinelearningsystem,andtheimpl
8、ementationprocessofthesystemarediscussedindetail,thestructureandsourcecode.KeywordsOnlinelearning;Webpagedesign;Learningplatform;1前言如今,便隨著互聯(lián)網(wǎng)的飛速發(fā)展,它已經(jīng)涉及到人們生活的各個方面。網(wǎng)絡(luò)在線學(xué)習(xí)系統(tǒng),可以不同地域的人們輕松的相互討論各種問題,還可以實現(xiàn)不在同一地區(qū)的人們在這個虛擬的環(huán)境中進行思想的傳遞與交流。這樣的話,地球就變成了一個真正地球村?,F(xiàn)在一些大型的門戶網(wǎng)站為了給自己網(wǎng)站增加人氣,都開發(fā)出了自己的網(wǎng)絡(luò)在線論壇,同時也加快了信息在互聯(lián)網(wǎng)的傳遞速
9、度。甚至,一些企業(yè)公司為了方便企業(yè)內(nèi)員工進行生活、技術(shù)等問題的相互協(xié)助與交流,專門開發(fā)了自己的論壇。網(wǎng)絡(luò)在線系統(tǒng)的設(shè)計主要是模仿現(xiàn)在最流行的BBS的設(shè)計模式,模擬它的分析、開發(fā)模式,網(wǎng)站實際需求出發(fā)點,創(chuàng)建概念模型,同時設(shè)計出合理的數(shù)據(jù)庫表。本系統(tǒng)的服務(wù)器是阿里都在用的tomcat,開發(fā)語言選用現(xiàn)在主流的開發(fā)語言之一java+javascript,開發(fā)工具是BizFoundation集成開發(fā)環(huán)境,后臺數(shù)據(jù)庫選用mySQL該系統(tǒng)以WE的平臺,前臺只允許注冊并且登陸了的用戶在論壇上進行發(fā)帖,發(fā)布者和管理員可以對帖子作操作。實現(xiàn)在線學(xué)習(xí)系統(tǒng),需要運用jsp技術(shù)、java技術(shù)、ajax技術(shù)、mysql
10、數(shù)據(jù)庫等等,并且對該系統(tǒng)作詳細的設(shè)計與分析。在后臺服務(wù)器上,選用java語言和tomcat服務(wù)器等技術(shù)來開發(fā)本網(wǎng)站。2緒論2.1 課題研究背景與意義2.1.1 課題研究的背景在二十一世紀,因為因特網(wǎng)的存在,地球早已變成了一個“地球村”。英特網(wǎng)已經(jīng)融入了我們的生活,無論是吃飯、出行、閱讀、學(xué)習(xí)、玩游戲、購物、買車票、看新聞、學(xué)日志等都會第一時間想到英特網(wǎng),向它尋求幫助。當然,別忘了搜索引擎技術(shù),它能最快速度的找到我們想要的資源。總之,英特網(wǎng)已經(jīng)成為了我們生活的“朋友”,一個超大的知識庫,無私的提供著幫助。本篇論文,圍繞著在線學(xué)習(xí)網(wǎng)站的設(shè)計與開發(fā)。2.1.2 課題研究的意義在線學(xué)習(xí)系統(tǒng)是學(xué)習(xí)者相互
11、交流的系統(tǒng),它不像傳統(tǒng)的學(xué)習(xí)方式,受限于面對面學(xué)習(xí),不受任何限制,隨時隨地都可以學(xué)習(xí)。本系統(tǒng),主要面對的用戶是在線大學(xué)生和初入職場的程序員。對于初學(xué)者和初入職場的人來說,遇到困難是在所難免的,并不可能每個小問題都會向身邊的人或者老師請教。所以最方便就是網(wǎng)上學(xué)習(xí)。有些問題可能有許多人遇到,但只要“大牛”在網(wǎng)站上留下解決問題的辦法,就可以幫助若干個學(xué)員學(xué)習(xí)。這樣一來可以幫助那些遇到問題的人解決問題,還可以讓“大牛們”提高他的水平面和存在感。本系統(tǒng)的宗旨是為廣大網(wǎng)民提供一個交流平臺,能夠在此暢所欲言,發(fā)表自己的觀點、看法、學(xué)習(xí)問題和優(yōu)質(zhì)的源代碼,同時結(jié)交朋友為生活添色加彩。2.2 國內(nèi)外研究現(xiàn)狀、水
12、平和發(fā)展趨勢2.2.1 國內(nèi)外研究現(xiàn)狀BBS在開發(fā)的最早期,是用來公布股票等信息的,而且必須要在蘋果機上運行。1978年,在美國芝加哥開發(fā)出一套基于8080芯片的CBBS/Chicago(ComputerizedBulletinBoardSystem/Chicago),第一個BBS系統(tǒng)從此誕生。之后蘋果機問世,基于蘋果機開發(fā)了大眾信息系統(tǒng)和BulletinBoardSystem兩種BBS系統(tǒng)。1981年,當舊M個人計算機誕生時,并沒有開發(fā)出自己的BBS系統(tǒng)。直到1982年,BussLane用Basic語言為舊M個人計算機編寫了第一個BBS系統(tǒng)。之后經(jīng)過不斷的維護與開發(fā),終于在1983年,Cap
13、italPCUserGroup組織的會員改寫出了個人計算機的BBS系統(tǒng)。在Thomas修改和整理后,終于完成了個人電腦的第一版BBS系統(tǒng)一RBBS-PC這個系統(tǒng)最大的特點就是,源代碼開放,便于日后的修改和維護,此后其他設(shè)計人員在設(shè)計BBS系統(tǒng)時,都以此作為框架。因此,RBBS-PCI得了BBS“鼻祖”的美譽?,F(xiàn)如今國內(nèi)最流行的開發(fā)模式MV映式,M是模型,V是視圖,C是控制器。MVCF發(fā)模式是優(yōu)秀的設(shè)計思想,層與層之間各自管理自己的任務(wù),使代碼解耦。然而java語言會使MVC奠式的優(yōu)點更加突出,不管是windows系統(tǒng)、UNIX系統(tǒng)、Linux系統(tǒng)、mac系統(tǒng),只要裝了各平臺的JDK,者B可以在
14、tomcat服務(wù)器上正常運行,這就是java跨平臺的優(yōu)越性。據(jù)163網(wǎng)易數(shù)碼報道,java拿下了2015年年度編程語言冠軍,這就得益于web網(wǎng)站的流行和BBS類網(wǎng)站對java的影響。2.2.2 未來BBS發(fā)展趨勢web2.0時代已經(jīng)來臨,web2.0與傳統(tǒng)的互聯(lián)網(wǎng)最主要的區(qū)別就是用戶與用戶、零售業(yè)與企業(yè)之間的關(guān)系更加密切了,web2.0時代帶來了巨大的商業(yè)價值。在web2.0時代,社區(qū)用戶會急劇增多,遠遠大于web1.0的速度。360董事長曾說過:“未來將是社區(qū)時代,誰擁有了用戶,就主導(dǎo)了流量”,可想而知,一個用戶企業(yè)流量對他有多么重要。隨著web2.0普及,BBS論壇系統(tǒng)將朝下面兩個方向發(fā)展
15、:(1)朝著即時群聊方面發(fā)展:實現(xiàn)即時群聊可以運用ajax技術(shù),在ajax技術(shù)之前,更新頁面某個東西必須刷新整個頁面。而使用ajax技術(shù),從服務(wù)器獲取數(shù)據(jù),就能實現(xiàn)局部刷新。把這項技術(shù)運用到BBS論壇系統(tǒng)中,用戶更容易看到別人剛剛發(fā)的帖子,并參與討論。(2)朝著圖片展示方面發(fā)展:現(xiàn)在朋友圈非?;穑S便發(fā)個生活照片,下面就十幾條評論。說明圖片更加簡明扼要的說明事情,給人豐富的想象空間,形式新穎,可以表達人們心情,比文字更加容易表達情感。一個有著豐富圖片資源的網(wǎng)站,用戶還會少嗎?3Javam3.1 發(fā)展背景java平臺和語言原本只是sun公司的一個內(nèi)部項目,因為傳統(tǒng)的c語言的API及其難用,經(jīng)常搞
16、得工程師焦頭爛額。所以sun公司的工程師決定,在C+語言的基礎(chǔ)上開發(fā)出一種新的語言,使其具有跨平臺、面向?qū)ο蟮木幊棠J?、繼承、封裝、多態(tài)等特性。java發(fā)展的主要事件:(1) 1995年5月java誕生;(2) 1996年1月JDK1.1誕生;(3) 1998年12月JAVA平臺的J2EE發(fā)布;(4) 2000年5月JDK1.3誕生;(5) 2002年2月JDK1.4誕生;(6) 2009年4月被Oracle公司收購;(7) 2011年7月java7.0發(fā)布(8) 2014年3月java8.0發(fā)布java出生到今天,已經(jīng)有21年了,和c語言/c+語言這些前輩比起來還年輕了許多。有為哲學(xué)家曾說過
17、:“事務(wù)的發(fā)生是必然的。java也一樣,互聯(lián)網(wǎng)的迅速發(fā)展導(dǎo)致了java的迅速發(fā)展。很快java已經(jīng)成為了世界上最受歡迎的語言了,現(xiàn)在已經(jīng)是編程語言排行榜第一名。3.2 Bizfoundaction集成開發(fā)工具該平臺凝聚了中軟國際十多年來全國性大型工程以及大量應(yīng)用軟件開發(fā)項目在應(yīng)用設(shè)計開發(fā)、工程化管理、集成與實施方面的最佳實踐與寶貴經(jīng)驗。本著“創(chuàng)造、分享、共成長”的企業(yè)發(fā)展理念。BizFoundation應(yīng)用開發(fā)平臺基于J2EE、Eclipse等開放平臺和技術(shù)體系,采用SOA架構(gòu)和獨有的構(gòu)件技術(shù),為應(yīng)用開發(fā)提供了全生命周期的支持。從需求分析、設(shè)計開發(fā)、條試打包、安裝部署到上線后的管理監(jiān)控,每個環(huán)
18、節(jié)都非常重視,大大提升了應(yīng)用開發(fā)的效率和管理水平。3.3 spring框架Spring是一個輕量級的控制反轉(zhuǎn)(IOC)和面向切面(AOP)的容器框架。輕量:是相對于ejb而言,更輕巧,功能強大。IOC:spring通過控制反轉(zhuǎn)的方式,來降低代碼的耦合度。基本上就是spring幫你管理對象,我們只管用就是。AOP面向切面編程,來降低各組件之間的耦合度,增強程序的擴展性。Spring能在任何java程序中使用,優(yōu)點:降低代碼代碼侵入、減少代碼污染、獨立于服務(wù)器、DI機制減少業(yè)務(wù)對象的替換來提高解耦、更好的復(fù)用性、提供與第三方持久層的整合來簡化數(shù)據(jù)庫、開發(fā)者可以選擇spring的一部分而不是全部。3
19、.4 JDBCJDBC(JavaDataBaseConnectivity,java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的JavaAPI,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC提供了一種基準,據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫應(yīng)用程序,同時,JDBC也是個商標名。運用JDBC技術(shù),我們就可以輕松操作數(shù)據(jù)庫,對數(shù)據(jù)庫里面的數(shù)據(jù)進行增刪改查。簡單地說,JDBC可做三件事:與數(shù)據(jù)庫建立連接、發(fā)送操作數(shù)據(jù)庫的語句并處理結(jié)果。3.5 事件驅(qū)動模型在Java編程技術(shù)中,最常用的可視化編程當屬JavaSwing技術(shù),JavaSwing為
20、開發(fā)者提供了很多現(xiàn)成的組件,如:按鈕(JButton),單選按鈕(JRadioButton)等。為了管理用戶與組成程序圖形用戶界面的組件間的交互,必須理解在Java中如何處理事件。假設(shè)用戶單擊了程序圖形用戶界面中的一個按鈕,其實該按鈕就是這個事件的源(可以引發(fā)事件的物體)。所有的JavaSwing對象都有感知自己被操作的能力,因此JButton按鈕也具有這樣能力。一個事件通常必須有一個源對象,這里就是JButton對象。當單擊按鈕時,JButton組件類會生成一個用于存放該事件參數(shù)的ActionEvent的對象,該對象包含了事件及事件源的信息。如下圖所示:JButton處理流程4mySQL數(shù)據(jù)
21、庫4.1 基本信息MySQL一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQIAB公司開發(fā),目前屬于Oracle旗下公司,并且是一個開源的軟件。MySQLft流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在WEB應(yīng)用方面MySQLl最好RDBM(RelationalDatabaseManagementSystem,關(guān)系數(shù)據(jù)庫管理系統(tǒng))應(yīng)用軟件之一。MySQ說一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是Oracle一樣將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性。5開發(fā)背景5.1 需求分析在線學(xué)習(xí)型論壇面向的群體主要是學(xué)生和程序開發(fā)人員,可以討論關(guān)于生活和學(xué)習(xí)方面的各種經(jīng)驗和問題等。通過
22、對其他典型的學(xué)習(xí)論壇的考察,分析,要求本系統(tǒng)具有以下特點:1)要求系統(tǒng)具有良好的頁面設(shè)計,配色要搭調(diào)。2)功能強大,操作簡單,擴展性強,穩(wěn)定性好。3)網(wǎng)上運行穩(wěn)定,安全可靠。4)要有特色,具有其他網(wǎng)站沒有的功能。5.2 系統(tǒng)設(shè)計5.2.1 系統(tǒng)目標開發(fā)網(wǎng)上在線論壇最終目標是為了給用戶提供一個良好的技術(shù)交流平臺,給用戶良好的體驗。為了給用戶最好的體驗,本系統(tǒng)在設(shè)計時應(yīng)實現(xiàn)下面幾個目標:1)系統(tǒng)頁面友好,美觀,配色不單調(diào);2)合理管理論壇相關(guān)信息;3)容易維護和擴展系統(tǒng)功能;4)系統(tǒng)運行穩(wěn)定、可靠、操作界面簡單、功能強大。5)具有搜索功能,快速查到用戶想要的信息。5.2.2系統(tǒng)功能結(jié)構(gòu)在線學(xué)習(xí)網(wǎng)站
23、是一個平臺,提供網(wǎng)友間相互交流和學(xué)習(xí)的一個平臺。我的設(shè)計就是,游客進入網(wǎng)站是可以回答已注冊用戶提出的問題的,還可以查看別人已回答的問題。但是游客不可以提問,必須要注冊后才能提問。功能結(jié)構(gòu)如下圖所示:用戶注冊刪除帖子瀏覽帖子內(nèi)容刪除用戶信息修改用戶信息添加用戶信息添加新帖子信息用戶登錄在線學(xué)習(xí)網(wǎng)站結(jié)構(gòu)圖4.2.3業(yè)務(wù)流程圖秋雨論壇會員注冊用戶登錄5.2.4構(gòu)建開發(fā)環(huán)境網(wǎng)站開發(fā)工具:BizFoundation集成開發(fā)環(huán)境ResourceOneStudio網(wǎng)站開發(fā)語言:java,javascript,SQL;網(wǎng)站后臺數(shù)據(jù)庫:mySQL5.5網(wǎng)站開發(fā)技術(shù):Ajax,jsp,spring框架,Hiber
24、nate框架等;開發(fā)運行環(huán)境平臺:Windows8.1;Web服務(wù)器:tomcat;5.2.5數(shù)據(jù)庫設(shè)計本系統(tǒng)采用mySQL5.5t據(jù)庫,庫名稱為mytest;其中包含10張表。下面是數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計。數(shù)據(jù)庫設(shè)計概要:表1中包含本論壇所有的數(shù)據(jù)庫表Table 1 containstheBBSalldatabasetables用戶信息表Java語百類表Net語言類走c+語言類表數(shù)據(jù)表c語言類表一php語言類表python語言類表html語言類表Javascript語言類表其他語言類表數(shù)據(jù)庫表設(shè)計:表2會員人員表Table 2 memberstafftableIDIDVarchar主鍵Usern
25、ame用戶名VarcharNullPassword密碼VarcharNullNameVarcharNull表3Java語百類表Table 3 theJavalanguageclasstableIDIDVarchar外鍵java_id主鍵Varchar主鍵java_title問題VarcharNulljava_body回答VarcharNull表4Net語百類表Tlanguageclasstable字段名稱字段類型IDIDVarchar外鍵Net_id主鍵Varchar主鍵Net_title問題VarcharNullNet_body回答VarcharNull表4c語百類表Table4cclass
26、table字段名稱IDIDVarchar外鍵cid主鍵Varchar主鍵cbody回答VarcharNullc_title問題VarcharNull表5Php語百類表Table5thePhplanguageclasstable字段名字段名稱字段類型IDIDVarchar外鍵php_id主鍵Varchar主鍵phpbody回答VarcharNullphptitle問題VarcharNull表6javascript語百類表Table6thejavascriptlanguageclasstable字段名稱字段類型IDIDVarchar外鍵Javascript_idVarchar-9-Javascri
27、pt_body回答VarcharNullJavascript_title問題VarcharNull表7html語百類表Table7HTMLtable字段名字段名稱字段類型屬性IDIDVarchar外鍵html_id主鍵Varchar主鍵html_body回答VarcharNullhtml_title問題VarcharNull表8python語百類表Table8pythonlanguageclasstable字段名字段名稱字段類型屬性IDIDVarchar外鍵pythonl_id主鍵Varchar主鍵python_body回答VarcharNullpython_title問題VarcharNul
28、l表9other語百類表Table9otherlanguageclasstable字段名字段名稱字段類型屬性IDIDVarchar外鍵otherid主鍵Varchar主鍵otherbody回答VarcharNullother_title問題VarcharNull5.2.6主頁頁面預(yù)覽及其解釋 網(wǎng)上在線學(xué)習(xí)主頁-10-秋雨論壇口CHC*HTMLMm型1勺叱PHPMHIfl景由日什:&SE*已工亡電,tRffSS*r二里看可對總朝*-,癡組3蓄tti.K-K*E上男然由小人事?*升在黑垢病:至九圖1網(wǎng)上在線學(xué)習(xí)主頁上圖1注釋:上圖是本網(wǎng)站的主頁,幾乎包含了本網(wǎng)站的所有功能。頁面簡潔,
29、布局清晰,各功能問耦合度低,便于日后對網(wǎng)站的維護與開發(fā)。 功能導(dǎo)航區(qū)秋雨論壇Javs匚語音C+HTMLjavascriptnetPythonPHP箕他搜索內(nèi)容 -幺是美七我M回番 4幺曷HWe我木叵圈 萬之友現(xiàn)舊袈壬卻回答,卜也是直向有方我不回音 一M克向匯矛空無回落: L笈是數(shù)目我裳回答 比呈jag我來回答圖2功能導(dǎo)航區(qū)圖2注解:本功能區(qū)運用中軟國際開發(fā)的BizFoundation前端“導(dǎo)航條”,如下列代碼所示:秋雨論壇Javaahref=ahref=ahref=ahref=C語音#cUPC+#htmlHTML#jsjavascript#-11-PythonPHP
30、其他從上面代碼可知:每一個li標簽后面都有一個a標簽,而且它的“href”屬性都是連接到匹配的“id”中。例如連接到下面“java”類的“div”,代碼如下:這個“div”是存放“java類問題”的,很明顯,現(xiàn)在這個“ul”里面是沒有數(shù)據(jù)的,而我實際的網(wǎng)頁里面是有會員提出來的問題的。所有我運用Ajax技術(shù),動態(tài)向服務(wù)器獲取數(shù)據(jù),而服務(wù)器直接從數(shù)據(jù)庫獲取數(shù)據(jù),這樣就一直保證首頁的數(shù)據(jù)是最新的。代碼如下:functionloadJavaLi()$.ajax(/向服務(wù)器發(fā)送ajax請求url:java/loadTitle,/請求地址type:post,/請求方式data:username:usern
31、ame,/發(fā)送用戶名到服務(wù)器dataType:json,/按照“json”對象方式發(fā)送success:function(result)/從服務(wù)器成功獲取數(shù)據(jù)varjava_title=result.java_title.substring(0,result.java_title.lastIndexOf(,);varjava_id=result.java_id.substring(0,result.java_id.lastIndexOf(,);varj_titles=java_title.split(,);varj_ids=java_id.split(,);for(vari=0;ij_title
32、s.length;i+)varj_id=j_idsi;varlis=+j_titlesi+;var$java_li=$(lis);$(#java_ul).append($java_li);/動態(tài)拼一條“l(fā)i”/至ul”T一,error:function()alert(加載java類問題失敗)/失敗時,彈出框-12-);)搜索功能圖3搜索功能此功能是本系統(tǒng)的核心功能之一,此功能能讓用戶已最快速度查到自己想問的問題。但做起來也比較復(fù)雜。下面是服務(wù)器端java代碼:/當會員按下回車鍵時,就會發(fā)送ajax請求到此方法,此方法就會從數(shù)據(jù)庫拿/到數(shù)據(jù),返回跟搜索內(nèi)容相關(guān)的數(shù)據(jù)。publicJ
33、avaloadTitleAndBody(Stringso)/so:頁面?zhèn)鞯臄?shù)據(jù)Javajava=newJava();Stringtitles=;Stringbodys=;/定義數(shù)據(jù)庫查詢語句Stringjava_sql=selectjava_title,java_bodyfromp_javawherejava_titlelike?;/執(zhí)行SQLIQueryjava_iq=dao.createQuery(java_sql,%+so+%);/獲取從數(shù)瓶上查到的數(shù)據(jù)Listjava_list=java_iq.list();/利用加代器遍立合ListIteratorjava_it=java_list.
34、listIterator();while(java_it.hasNext()Objectstr=java_it.next();bodys+=(+str).substring(11,(str+).indexOf(,)+,;titles+=(+str).substring(str+).indexOf(,)+13,(str+).indexOf()+,;/c語言類SQLStringc_sql=selectc_title,c_bodyfromp_cwherec_titlelike?;IQueryc_iq=dao.createQuery(c_sql,%+so+%);Listc_list=c_iq.list
35、();ListIteratorc_it=c_list.listIterator();while(c_it.hasNext()-13-Objectstr=c_it.next();bodys+=(+str).substring(8,(str+).indexOf(,)+,;titles+=(+str).substring(str+).indexOf(,)+10,(str+).indexOf()+,;/C+類SQLStringcUP_sql=selectcUP_title,cUP_bodyfromp_cUPwherecUP_titlelike?;IQuerycUP_iq=dao.createQuery
36、(cUP_sql,%+so+%);ListcUP_list=cUP_iq.list();ListIteratorcUP_it=cUP_list.listIterator();while(cUP_it.hasNext()Objectstr=cUP_it.next();bodys+=(+str).substring(10,(str+).indexOf(,)+,;titles+=(+str).substring(str+).indexOf(,)+12,(str+).indexOf()+,;/html類SQLStringhtml_sql=selecthtml_title,html_bodyfromp_
37、htmlwherehtml_titlelike?;IQueryhtml_iq=dao.createQuery(html_sql,%+so+%);Listhtml_list=html_iq.list();ListIteratorhtml_it=html_list.listIterator();while(html_it.hasNext()Objectstr=html_it.next();bodys+=(+str).substring(11,(str+).indexOf(,)+,;titles+=(+str).substring(str+).indexOf(,)+13,(str+).indexOf
38、()+,;/javascript類SQLStringjavascript_sql=selectjava_title,java_bodyfromp_javascriptwherejava_titlelike?;IQueryjavascript_iq=dao.createQuery(javascript_sql,%+so+%);Listjavascript_list=javascript_iq.list();ListIteratorjavascript_it=javascript_list.listIterator();while(javascript_it.hasNext()-14-Object
39、str=javascript_it.next();bodys+=(+str).substring(11,(str+).indexOf(,)+,;titles+=(+str).substring(str+).indexOf(,)+13,(str+).indexOf()+,;/net類SQLStringnet_sql=selectnet_title,net_bodyfromp_netwherenet_titlelike?;IQuerynet_iq=dao.createQuery(net_sql,%+so+%);Listnet_list=net_iq.list();ListIteratornet_i
40、t=net_list.listIterator();while(net_it.hasNext()Objectstr=net_it.next();titles+=(+str).substring(11,(str+).indexOf(,)+,;bodys+=(+str).substring(str+).indexOf(,)+11,(str+).indexOf()+,;/Python類SQLStringpython_sql=selectpython_title,python_bodyfromP_pythonwherepython_titlelike?;IQuerypython_iq=dao.crea
41、teQuery(python_sql,%+so+%);Listpython_list=python_iq.list();ListIteratorpython_it=python_list.listIterator();while(python_it.hasNext()Objectstr=python_it.next();bodys+=(+str).substring(13,(str+).indexOf(,)+,;titles+=(+str).substring(str+).indexOf(,)+15,(str+).indexOf()+,;/php類SQLStringphp_sql=select
42、php_title,php_bodyfromp_phpwherephp_titlelike?;IQueryphp_iq=dao.createQuery(php_sql,%+so+%);Listphp_list=php_iq.list();ListIteratorphp_it=php_list.listIterator();while(php_it.hasNext()Objectstr=php_it.next();-15-titles+=r+str).substring(11,(str+).indexOf(,)+T;bodys+=(+str).substring(str+).indexOf(,)
43、+11,(str+).indexOf()+,;/其他類SQLStringother_sql=selectother_title,other_bodyfromp_otherwhereother_titlelike?;IQueryother_iq=dao.createQuery(other_sql,%+so+%);Listother_list=other_iq.list();ListIteratorother_it=other_list.listIterator();while(other_it.hasNext()Objectstr=other_it.next();titles+=+str).su
44、bstring(13,(str+).indexOf(,)+T;bodys+=(+str).substring(str+).indexOf(,)+13,(str+).indexOf()+,;java.setJava_title(titles);java.setJava_body(bodys);/將數(shù)據(jù)返京給控制器returnjava;注冊與登錄圖4注冊與登錄上圖是會員登錄或者注冊的頁面。為了減少服務(wù)器的壓力,我在前端頁面就做了判斷,如果賬號密碼為空或者輸入非法字符,就不能想服務(wù)器發(fā)請求。下面是js前端代碼:-16-/定義一個開關(guān)varflag=true;functionsave(b
45、utton)form=button.form;/獲取注冊輸入框的值varusername=$(#username).val();varpassword=$(#password).val();varpassword2=$(#password2).val();varb=password=password2;varname=$(#name).val();/先判斷輸入框不能為空if(username=)$(#alertUserName).html(用戶不能為空);$(#alertUserName).css(color,red);if(password=)$(#alertPassword).html(密
46、碼不能為空);$(#alertPassword).css(color,red);if(name=)$(#alertName).html(姓名不能為空);$(#alertName).css(color,red);比較兩次輸入的密碼值if(!b)$(#alertPassword2).html(與之前輸入的密碼不一致);$(#alertPassword2).css(color,red);if(name!=&username!=&password!=&b)if(flag)form.submit();elsealert(輸入的信息有誤!);/當用戶名輸入框的焦點失去時$(#username).blur(
47、function()varusername=$(#username).val();varreg=/Aa-zA-Zdw3,11a-zA-Zd$/;/匹配用戶名格式,如果不匹配,做出對應(yīng)的響應(yīng)。if(reg.test(username)$(#alertUserName).html(用戶名格式正確);flag=true;-17-else$(#alertUserName).html(用戶名格式不正確);$(#alertUserName).css(color,red);flag=false;);/匹配密碼格式,如果不匹配,做出對應(yīng)的響應(yīng)$(#password).blur(function()varpas
48、sword=$(#password).val();$(#alertPassword).html();varreg=/Aw!#$%A&*()_6,20$/;if(!reg.test(password)$(#alertPassword).html(輸入的密碼格式不正確);$(#alertPassword).css(color,red);flag=false;flag=true;);/判斷跟上一次輸入密碼相不相同$(#password2).blur(function()varpassword2=$(#password2).val();varpassword=$(#password).val();$(
49、#alertPassword2).html();if(password!=password2)$(#alertPassword2).html(兩次輸入的密碼不一樣);$(#alertPassword2).css(color,red);flag=false;flag=true;);/匹配姓名的格式$(#name).blur(function()varname=$(#name).val();$(#alertName).html();varreg=/A(u4e00-u9fa5+)|(a-zA-Z+)$/;if(!reg.test(name)$(#alertName).html(姓名格式不正確);$(
50、#alertName).css(color,red);flag=false;flag=true;);在登錄時,為了防止黑客攻擊本網(wǎng)站。所有,我在用戶登錄時,添加了驗證碼的輸入框。imgalt=點擊更換onclick=this.src=loadCode;-18-src=,直接從服務(wù)器端加載一張驗證碼圖片來。圖片必須有干擾線,字母或者數(shù)字隨機4位。Java代碼如下:publicvoidloadCode()throwsIOExceptionBufferedlmagebi=newBufferedImage(60,20,BufferedImage.TYPE_USHORT_555_RGBGraphicsg=bi.getGraphics();g.setC010r(Color.GREENg.fillRect(0,0,60,20);Randomran=newRandom();g.setC010r(Color.GRAYfor(inti=0;i15;i+)g.drawLine(ran.nextInt(61),ran.nextInt(61),ran.nextInt(61),ran.nextInt(61);/設(shè)置驗證碼Stringcode=;Stringstr=qwertyuiopasdfghjklzxcvbnm
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度外墻仿石裝飾工程承攬合同4篇
- 2025年度農(nóng)業(yè)科技成果轉(zhuǎn)化交易合同3篇
- 2025年度田地流轉(zhuǎn)與農(nóng)業(yè)科技服務(wù)一體化合同
- 2025版美團團購合作合同范本更新版3篇
- 二零二五年度勞動合同追訴期限認定標準與爭議調(diào)解方案3篇
- 2025年度個人獨資企業(yè)整體出售及債務(wù)承接合同
- 二零二五年度總經(jīng)理崗位聘請及考核細則合同3篇
- 2025年度木結(jié)構(gòu)建筑綠色建材認證合同
- 二零二五版智能門窗安裝服務(wù)合同范本4篇
- 2025年度跨境電商貨物倉儲、運輸及配送合同2篇
- 特魯索綜合征
- 《向心力》 教學(xué)課件
- 結(jié)構(gòu)力學(xué)數(shù)值方法:邊界元法(BEM):邊界元法的基本原理與步驟
- 2024年山東省泰安市高考語文一模試卷
- 工程建設(shè)行業(yè)標準內(nèi)置保溫現(xiàn)澆混凝土復(fù)合剪力墻技術(shù)規(guī)程
- 北師大版物理九年級全一冊課件
- 2024年第三師圖木舒克市市場監(jiān)督管理局招錄2人《行政職業(yè)能力測驗》高頻考點、難點(含詳細答案)
- RFJ 006-2021 RFP型人防過濾吸收器制造與驗收規(guī)范(暫行)
- 盆腔炎教學(xué)查房課件
- 新概念英語課件NCE3-lesson15(共34張)
- GB/T 3683-2023橡膠軟管及軟管組合件油基或水基流體適用的鋼絲編織增強液壓型規(guī)范
評論
0/150
提交評論