摘要
作為文化產業(yè)的一部分屈溉,動漫影響了我國一代又一代青少年宵统,據錢江晚報調查顯示劫笙,有超過七成的95后愿意從事與動漫相關的行業(yè)趣钱,可見其對青少年影響力之大涌献。
動漫論壇作為最先開始熱愛動漫人士進行交流的方式之一,是愛好者們共享信息首有,尋找同伴的重要渠道之一燕垃。在這次畢業(yè)設計中,使用MVC模式井联,采用MySQL5.0數據庫和JSP技術卜壕,開發(fā)了界面友好、操作簡單易懂的動漫論壇烙常。
在設計過程中轴捎,在以下論文里說明了九重天動漫論壇系統(tǒng)的設計方案,主要包括系統(tǒng)運用的關鍵技術蚕脏,數據庫設計侦副,對各個功能模塊的詳細設計以及實現,本次設計主要實現論壇系統(tǒng)中以下幾個功能:注冊會員驼鞭,會員登錄秦驯,管理員登錄,瀏覽帖子挣棕,發(fā)帖回帖译隘,管理員具有刪除用戶,管理板塊洛心,能夠增加固耘、刪除、修改板塊信息的功能词身。
關鍵詞:動漫論壇厅目、JSP、MySQL法严。
Design and implementation of Animation Forum Based on JSP
As part of the cultural industry, animation has affected our generations, according to Qianjiang Evening News survey, more than 70% of the 95 are willing to engage in animation related industries, visible to the influence of the youth.
Anime forum, as one of the first ways to love the animation lovers, is one of the important channels for lovers to share information and find their companions. Through this graduation project, developed a friendly interface, easy to understand animation forum. In the design process, the use of MVC mode, using MySQL5.0 database and JSP technology.
In the following thesis illustrates the design scheme of the nine day anime forum system, including key technology, system using the database design, each functional module of the detailed design and implementation of the design of the main functions of the forum system to achieve the following: Member registration, member login, the administrator login, browse posts, post replies. The administrator has to delete the user management module, can add, delete and modify the function of the information sector.
Keywords:Animation Forum, JSP, MySQL.
目錄
3. 系統(tǒng)開發(fā)環(huán)境及技術介紹 5
?動漫產業(yè)作為文化產業(yè)的一部分璧瞬,對我國青少年有著深遠的影響。作為擁有完整產業(yè)鏈的動漫強國日本渐夸,僅動畫與漫畫占GDP的0.4%嗤锉,其衍生了電視、電影、音像出版、傳統(tǒng)出版赖欣、游戲軟件開發(fā)扇谣、游戲機硬件制造隆判、服裝筛峭、小商品跛溉、餐飲等等行業(yè)≌┖罚現如今触菜,我國動漫產業(yè)發(fā)展迅速九榔,由《秦時明月》《鎮(zhèn)魂街》等優(yōu)質動畫為首掀起了國漫熱潮,2015的《大圣歸來》涡相、2016的《大魚海棠》收益頗豐哲泊。十二五期間國家明確要支持和壯大國有動漫企業(yè),使其在發(fā)展產業(yè)和繁榮市場方面發(fā)揮主導作用催蝗。同時支持各類所有制動漫企業(yè)的健康發(fā)展切威。
?動漫論壇作為動漫愛好者最早開始交流的平臺之一,由于該產業(yè)的獨特性丙号,線上交流是愛好者們進行交互的主要方式∠入現在國內外著名的ACG論壇,如天使動漫論壇犬缨、精靈動漫論壇等注冊人數均已過萬喳魏。
?為了是廣大動漫愛好者更好的進行交流,本次課題設計了九重天動漫論壇怀薛。該論壇系統(tǒng)的設計方案包括論壇的設計與實現的相關技術刺彩、開發(fā)環(huán)境,數據庫設計乾戏,對各個功能模塊的詳細設計,包括注冊會員三热,會員登錄鼓择,管理員登錄,瀏覽帖子就漾,發(fā)帖回帖呐能,管理員具有刪除用戶,管理板塊抑堡,能夠增加摆出、刪除、修改板塊信息的功能首妖。
??bbs誕生于20世紀70年代的美國偎漫,主要用來成員之間的交流,隨著互聯網的發(fā)展有缆,其許多特性被后面的應用取代象踊,90年代bbs的功能主要轉移到了我們現在所熟知的論壇上來温亲。又值90年代動漫發(fā)展迅速,動漫論壇便成為了愛好者相互交流的主要途徑之一杯矩。由于互聯網發(fā)展迅猛栈虚,通訊方式和通訊工具的多元化,論壇不如鼎盛時期一樣人氣爆棚史隆,但作為最先開始傳播訊息的供人民交流的平臺之一魂务,直到今天論壇也在發(fā)揮其功能。依舊是愛好者們交流泌射、共享信息粘姜、分享資源必不可少的平臺。
?動漫論壇系統(tǒng)有以下幾個特點:
人性化的界面
?一個動漫論壇能否吸引人魄幕,其界面的美觀是必不可少的相艇,對于愛好者來講,毫不夸張的說纯陨,一個是否讓人感覺舒適坛芽、友好界面是決定其是否使用該論壇的要素之一。人性化的界面翼抠,讓用戶在使用時更加舒適咙轩。其界面風格也會由熱門作品、節(jié)日等因素影響定期更換阴颖,保證了新鮮度活喊,是用戶不易產生審美疲勞。
完整的管理功能
?論壇系統(tǒng)一般有明確的制度量愧,為此需要一套合理完整的管理功能钾菊,由于我們無法左右他人的思想和發(fā)言,會不可避免的出現過激的言論和不健康的內容偎肃,因此煞烫,一套完整的管理功能顯得尤為重要。它約束用戶的行為累颂,定期清理不良信息滞详。對于論壇的主題,帖子有著編輯增加修改的功能紊馏,對于用戶也刪除封號等功能料饥,通過這些管理功能的實現來保證廣大用戶使用論壇的感受。
覆蓋 范圍廣
?論壇的成員可以來自各個地方朱监,大家因為同一個興趣愛好聚集起來岸啡,由于是線上活動,所以對于成員的地域約束不是很大赫编,因此論壇中成員的覆蓋范圍較廣
話題性明確
??作為動漫論壇凰狞,其主題相當明確篇裁,用戶也是針對愛好者這一群體∩娜簦可以在論壇中討論關于ACG相關的話題达布。
?論壇作為一種著重依靠內容和話題去促進用戶交流的平臺,只要話題還存在逾冬,其就有發(fā)展的可能性黍聂,現在的論壇已經足夠完善和成熟,與曾經的頂峰時期相比身腻,并不會再和那時一樣聚集全網絡的目標产还,這并不是一件壞事,只能說明我們的交流方式日益多樣化嘀趟,成熟化脐区。而具有主題鮮明的論壇,比如動漫論壇將會繼續(xù)存在并且活躍下去∷矗現如今國內動漫產業(yè)發(fā)展迅猛牛隅,動漫論壇今后也將乘著國漫大發(fā)展的東風,走向更好的未來酌泰。
1.5所做的主要工作
首先媒佣,對論壇進行可行性分析和需求分析,掌握所做論壇都需要哪些功能陵刹。論壇分為兩大模塊默伍,分為前臺帖子瀏覽模塊、后臺帖子管理模塊衰琐,在后臺帖子管理模塊當中也糊,應該具有對帖子的管理功能,對注冊用戶的管理的功能羡宙,在前臺帖子瀏覽模塊當中狸剃,應該具有帖子的瀏覽、發(fā)表新的帖子辛辨、注冊用戶看完帖子之后的回帖等等捕捂。
然后瑟枫,要對論壇進行系統(tǒng)的設計斗搞,它包括各個功能模塊的設計和數據庫結構的設計。論壇采用動態(tài)服務器網頁JAVA作為開發(fā)語言慷妙,MySQL作為后臺數據庫來開發(fā)僻焚。功能模塊的設計,分為前臺帖子瀏覽模塊設計膝擂,后臺帖子管理模塊設計虑啤,在功能模塊設計中隙弛,要確定各個分模塊之間的聯系,以及前臺模塊與后臺模塊之間的聯系狞山。在數據庫結構設計中全闷,要考慮建立幾個數據表。各個數據表之間的關系萍启,以及如何把網頁與數據庫連接起來总珠。
最后,就是系統(tǒng)的實現勘纯,根據前面所做的工作局服,對論壇進行詳細的設計與實現,通過參考大量的書籍掌握Java語言的用法驳遵,以及怎樣用JDBC連接數據庫的淫奔。再實現各個功能模塊。
?(1)闡述整個個性化頁面的系統(tǒng)結構及工作原理堤结;分析了系統(tǒng)實現中的特殊性唆迁、難點和重點。
(2)設計實現用戶管理霍殴、帖子管理媒惕、版面管理、數據庫管理来庭、瀏覽查找功能等妒蔚。
(3)分析并解決實現中的若干技術問題。?
(4)建立完整的網上論壇月弛,進行測試并分析結果肴盏。
???可行性研究的目的就是用最小的代價在盡可能短的時間里確定問題是否能夠解決。但是這個階段的目的不是解決用戶提出的問題帽衙,而是確定這個問題是否值得去解決菜皂。其主要任務是,首先需要進行概要的分析研究厉萝,初步確定項目的規(guī)模和目標恍飘,確定項目的約束和限制,必須分析幾種可能的利弊谴垫,從而判定原系統(tǒng)的目標和規(guī)模是否現實章母,系統(tǒng)完成后帶來的效益是否大到值得投資開發(fā)這個系統(tǒng)的程度。因此翩剪,可行性研究實際上就是一次大大的簡化了的系統(tǒng)分析和系統(tǒng)設計的過程乳怎,即以抽象的方式進行分析和研究。
首先需要進一步分析和澄清之前一部的問題定義前弯。一般都要從經濟蚪缀、技術秫逝、操作和法律四個方面來體驗每種解法的可行性,做出明確結論來供用戶參考询枚。
可行性分析通過對項目的前期投入违帆、帶來的收益、技術金蜀、環(huán)境影響前方、后續(xù)的影響等多方面的研究分析,對項目是否值得投資廉油、是否建設等提出意見惠险。為項目的決策提供了綜合性的系統(tǒng)分析方法。
首先要進行成本——效益分析抒线。從開發(fā)所需的成本和資源班巩,潛在的時長和前景等方面進行估算,確定要開發(fā)的項目是否值得投資開發(fā)嘶炭,即要分析在整個軟件生存周期中所花費的代價與得到的效益之間的度量抱慌。
本動漫論壇系統(tǒng)是一個實現愛好者相互交流的系統(tǒng),采用MVC結構體系眨猎;本系統(tǒng)使用的開發(fā)工具為MyEclipse8.5抑进,均可以在網上免費下載并安裝使用;MY SQL是本系統(tǒng)的后臺數據庫睡陪,同樣也可以在網上免費下載使用寺渗。因此,基本無需支付任何費用就可以使用這些開發(fā)工具兰迫。另外信殊,本系統(tǒng)完全由個人開發(fā),除了個人的時間和精力的消耗之外,基本上沒有什么經濟方面的開發(fā)成本汁果。?
本系統(tǒng)的設計與開發(fā)是非商業(yè)性的涡拘,雖然沒有經濟方面的收益,但對于本人而言据德,既加深了本人對JSP技術的了解和掌握鳄乏,也為以后的軟件系統(tǒng)的設計和開發(fā)積累了一定的實踐經驗。?
對要開發(fā)項目的功能棘利、性能和限制條件進行分析橱野,評價系統(tǒng)所采用的技術是否先進,使用現在的技術是否能實現系統(tǒng)打到的目標赡译。技術可行性是從該項目實施的技術角度來探討該項目是否可一實施仲吏。要從軟硬件不铆、環(huán)境以及技術人員等方面來做綜合的考慮蝌焚。
動漫論壇系統(tǒng)的開發(fā)主要包括前臺和后臺兩個方面裹唆,不管是用戶還是系統(tǒng)管理員都是通過瀏覽器(如火狐,IE等)進入該系統(tǒng)只洒。對于系統(tǒng)前臺许帐,要求系統(tǒng)的界面友好、美觀大方毕谴、操作方便等要求成畦,實現注冊會員,會員登錄涝开,瀏覽帖子循帐,發(fā)表帖子,回復帖子的功能舀武;對于系統(tǒng)后臺則要求信息更新及時拄养、數據存儲安全可靠、數據一致性高及易維護等要求银舱,要實現管理員登錄瘪匿,刪除用戶,管理板塊寻馏,能夠增加棋弥、刪除、修改板塊信息的功能诚欠。
本系統(tǒng)采用JSP技術顽染,開發(fā)調試相對簡單,靈活使用css可以使界面更加簡潔美觀友好轰绵,?MyEclipse8.5集成開發(fā)環(huán)境是一套完整的開發(fā)工具集家乘,可以用于生成基于JSP的應用程序,還提供MySQL數據庫各種操作藏澳,這些大大提高了編程的效率和代碼質量仁锯,而現在開發(fā)所需語言技術都是在大學期間學過的,從而在技術上為本系統(tǒng)的設計和開發(fā)提供了可能翔悠。
本系統(tǒng)操作簡單业崖,功能齊全。各個模塊的操作都簡單易懂蓄愁,沒有復雜的實現方式双炕,再加上現如今互聯網飛速發(fā)展,當前信息化技術已經相當普及撮抓,各類操作人員水平都有相當的高度妇斤,所以在運行上是可行的。
軟件需求分析是軟件開發(fā)期的第一個階段,是軟件生存周期最重要的一步站超,是關系到軟件開發(fā)成敗的關鍵步驟荸恕。他在問題定義和可行性研究階段之后進行。它的基本任務是準確地回答“系統(tǒng)必須做什么死相?”這個問題融求。雖然在可行性研究階段粗略了解了用戶的需求,甚至還提出了一些可行的方案算撮,但是可行性研究的基本目的是最小的代價在盡可能短的時間內確定問題是否存在可行的解法生宛,因此許多細節(jié)都被忽略了,一個微笑的錯漏都可能導致誤解或鑄成系統(tǒng)的大錯肮柜,在糾正時付出巨大的代價陷舅。因而可行性研究不能代替需求分析,他實際上并沒有準確地回答“系統(tǒng)必須做什么审洞?”這個關鍵問題蔑赘。
軟件需求分析是整個系統(tǒng)開發(fā)的基礎。在此階段結束前预明,系統(tǒng)分析員應該寫出軟件需求規(guī)格說明書缩赛,以書面的形式準確地描述軟件需求。在此過程中撰糠,分析員和用戶都是起著關鍵的酥馍、必不可少的作用。
雙方確認對軟件系統(tǒng)有下述幾方面的綜合要求:
功能阅酪、性能旨袒、可靠、可用术辐、出錯砚尽、接口、約束辉词、逆向以及將來可能發(fā)生的必孤。
所謂需求分析,就是要弄清楚問題的要求瑞躺,我們要清楚地知道對于用戶來講敷搪,他要實現什么功能,他希望我們做到什么幢哨。在這個階段與客戶的交流十分重要赡勘,只有明確了客戶的需求,才能制定出正確的計劃捞镰,才能做出完整的闸与、另其滿意的項目毙替,若一開始沒有明確客戶需求,那我們所追求的目標就是不正確的践樱,制定的計劃和努力的方向也隨之發(fā)生了偏轉厂画,最后可能與客戶需要的想去甚遠,需要重頭再來映胁,這樣就造成了大量資源、人力甲雅、財力的浪費解孙。需求分析完成的好,對今后項目的開發(fā)百益而無一害抛人,可以加快設計開發(fā)的效率弛姜,避免返工,節(jié)省時間妖枚,避免造成不必要的浪費廷臼。
指所開發(fā)軟件系統(tǒng)必須提供的服務,劃分出系統(tǒng)必須完成的所有功能绝页。在本動漫論壇系統(tǒng)中荠商,存在下列功能需求:
A.面向普通用戶的功能需求
注冊用戶
如果用戶為非會員用戶,通過注冊续誉,經審核通過之后成為會員莱没,獲得一個登陸身份。
登錄
如果用戶已經是注冊會員酷鸦,可以進行登錄饰躲,登陸后實現別的功能誓禁。
瀏覽帖子
?用戶查看系統(tǒng)中的帖子蜘拉,了解最新的資訊和各種動態(tài)等信息。
發(fā)布新帖
用戶可以發(fā)表一些帖子濒持,來與其他論壇用戶共享信息摔握。
回復帖子
對于自己或者別的會員發(fā)表的帖子寄狼,可以進行回復。
B.面向管理員的功能需求
1氨淌、管理員登錄
???對于已經登錄的用戶例嘱,若權限為管理員,可以進行管理員的登錄宁舰,登陸之后才能有權限進行下一步操作拼卵。
帖子管理
???管理員可以對發(fā)表的帖子進行查詢、修改蛮艰、刪除等操作腋腮,對好的帖子進行標識,刪除或轉移不適合的帖子。
模塊管理
???論壇中的模塊即寡,管理員可對其進行添加徊哑、修改、刪除等操作聪富。
用戶管理
???用戶注冊成功后莺丑,管理員可以對用戶進行添加、刪除操作墩蔓。
C.面向游客的功能需求:
游客可以對論壇進行訪問梢莽,瀏覽帖子的功能,但不能參與回復操作奸披,也沒有發(fā)布帖子的權限昏名。
動漫論壇系統(tǒng)比較重要的一點莫過于界面的設計,一個動漫論壇是否能吸引用戶的第一印象取決于該界面是否友好阵面,因此友好的界面也是該系統(tǒng)必不可少的轻局。與其他論壇系統(tǒng)風格不同的是,動漫論壇要有自己獨特的二次元風格样刷,讓愛好者有親切仑扑、熟悉的感覺。
????本動漫論壇系統(tǒng)的運行平臺設置分為硬件環(huán)境和軟件環(huán)境置鼻。
硬件環(huán)境:系統(tǒng)的硬件環(huán)境配置為處理器Intel COREi5-3230M夫壁,內存4G,硬盤500G沃疮。
軟件環(huán)境:系統(tǒng)的軟件環(huán)境配置為:操作系統(tǒng):Windows 7盒让,數據庫:MySql,JDK1.8司蔬、MyEclipse8.5開發(fā)工具包和MyEclipse自帶的Tomcat服務器邑茄。
3.2.1 ?MyEclipse8.5
MyEclipse是一個非常好的集成開發(fā)環(huán)境,旨在簡化多操作系統(tǒng)軟件工具的開發(fā)過程俊啼,可用于管理各種開發(fā)任務肺缕,包括測試,性能調優(yōu)和程序調試授帕,還可以從 針對多個供應商的第三方應用開發(fā)工具同木。 通過集成大量插件,Eclipse的功能可以擴展到支持各種不同的應用程序跛十。主要用于Java彤路、Java EE以及移動應用的開發(fā)。MyEclipse的功能非常強大芥映,支持也十分廣泛洲尊,尤其是對各種開源產品的支持相當不錯远豺。
3.2.2 ?MySql
MySQL是一個關聯的數據庫管理系統(tǒng),由瑞典MySQL AB?公司開發(fā)坞嘀,它將數據與不同表中的數據進行關聯躯护,而不是將所有數據放在大型存儲庫中。 這提高了速度并提高了靈活性丽涩。 MySQL的SQL結構化查詢語言是用于訪問數據庫的最常用的標準化語言棺滞。MySQL是開源的,所以不需要支付其他的費用矢渊,可以到官方的網站進行下載继准。MySQL不僅支持中小型的數據庫,也支持擁有上萬條數據記錄的大型數據庫昆淡。而且MySQL是適合于多個系統(tǒng)上的锰瘸,它支持很多語言刽严。也正是由于其體積小昂灵,速度快,總體擁有成本低舞萄,特別是開源這一功能眨补,許多中小型網站為了降低網站的總體擁有成本,并選擇MySQL作為網站數據庫倒脓。
??本系統(tǒng)中使用了JSP技術撑螺、JDBC技術、MVC模式與struts框架技術崎弃,下面將簡單介紹這些技術甘晤。
JSP和servelet一樣都屬于“web層”,比起html這種直接把文件傳到服務器供用戶瀏覽的“靜態(tài)網頁技術”饲做,JSP屬于“動態(tài)網頁技術”线婚。所謂“動態(tài)網頁技術”就是根據客戶發(fā)出的請求來做出響應,并且生成頁面并返回給用戶盆均。顯而易見塞弊,比起“靜態(tài)網頁技術”JSP是有很多好處的,比如靈活性和數據保密等方面泪姨。當然游沿,也存在著不足,那就是其響應速度相對較慢肮砾,因此現在解決這一問題的方法就是把“動態(tài)網頁”中相對固定的部分作為緩存诀黍。JSP將網頁邏輯與網頁設計的顯示分離,支持可重用的基于組件的設計仗处,使基于Web的應用程序的開發(fā)變得迅速和容易蔗草。 JSP(JavaServer Pages)是一種動態(tài)頁面技術咒彤。
JSP是面向服務器的,因此支持任何瀏覽器咒精。當Web服務器和JSP引擎遇到訪問JSP網頁的請求時镶柱,JSP引擎將請求對象發(fā)送給服務器端的相關組件,比如JavaBean組件模叙、Servlet或EJB等歇拆,然后由服務器端組件處理這些請示,可能需要從數據庫或數據存儲中檢索信息范咨,然后服務器端組件再將響應對象返回JSP引擎故觅。JSP引擎將響應對象傳遞給JSP頁面,根據JSP頁面的HTML格式完成數據編排渠啊,最后Web服務器和JSP引擎將格式化后的JSP頁面以HTML格式返回客戶瀏覽器输吏。這就是當前網站構建中廣泛采用的瀏覽器——Web服務器——后臺數據庫的三層架構模式。因為JSP所有程序操作都在服務器端執(zhí)行替蛉,網絡上傳送給客戶端的僅是得到的結果贯溅。
JDBC(Java Data Base Connectivity,java數據庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關系數據庫提供統(tǒng)一訪問躲查,它由一組用Java語言編寫的類和接口組成它浅。有了JDBC,向各種關系數據發(fā)送SQL語句就是一件很容易的事镣煮。換言之姐霍,有了JDBC API,就不必為訪問Sybase數據庫專門寫一個程序典唇,為訪問Oracle數據庫又專門寫一個程序镊折,或為訪問Informix數據庫又編寫另一個程序等等,程序員只需用JDBC API寫一個程序就夠了介衔,它可向相應數據庫發(fā)送SQL調用恨胚。同時,將Java語言和JDBC結合起來使程序員不必為不同的平臺編寫不同的應用程序夜牡,只須寫一遍程序就可以讓它在任何平臺上運行与纽,這也是Java語言“編寫一次,處處運行”的優(yōu)勢塘装。簡單來說急迂。JDBC可以做三件事情:與數據庫建立連接、發(fā)送操縱數據庫的語句蹦肴、返回處理結果僚碎。Java數據庫連接體系結構是用于Java應用程序連接數據庫的標準方法。
3.3.3 ?MVC模式與Struts框架技術
MVC模式:
MVC是一個設計模式阴幌,它強制性的使應用程序的輸入勺阐、處理和輸出分開卷中。使用MVC應用程序被分成三個核心部件:模型、視圖渊抽、控制器蟆豫。它們各自處理自己的任務。
視圖V:
視圖是用戶看到并與之交互的界面懒闷。對老式的Web應用程序來說十减,視圖就是由HTML元素組成的界面,在新式的Web應用程序中愤估,HTML依舊在視圖中扮演著重要的角色帮辟,但一些新的技術已層出不窮,它們包括Macromedia?Flash和像XHTML玩焰,XML/XSL由驹,WML等一些標識語言和Web?services.
如何處理應用程序的界面變得越來越有挑戰(zhàn)性。MVC一個大的好處是它能為你的應用程序處理很多不同的視圖昔园。在視圖中其實沒有真正的處理發(fā)生蔓榄,不管這些數據是聯機存儲的還是一個雇員列表,作為視圖來講蒿赢,它只是作為一種輸出數據并允許用戶操縱的方式润樱。
模型M
模型表示企業(yè)數據和業(yè)務規(guī)則渣触。在MVC的三個部件中羡棵,模型擁有最多的處理任務。被模型返回的數據是中立的嗅钻,就是說模型與數據格式無關皂冰,這樣一個模型能為多個視圖提供數據。由于應用于模型的代碼只需寫一次就可以被多個視圖重用养篓,所以減少了代碼的重復性秃流。
控制器C
控制器接受用戶的輸入并調用模型和視圖去完成用戶的需求。所以當單擊Web頁面中的超鏈接和發(fā)送HTML表單時柳弄,控制器本身不輸出任何東西和做任何處理舶胀。它只是接收請求并決定調用哪個模型構件去處理請求,然后再確定用哪個視圖來顯示返回的數據碧注。
Struts框架技術:
Struts 框架就是基于Model 2?的架構嚣伐,也就是基于MVC模式的框架技術。它是一個免費的開源的WEB層的應用框架,具有很高的可配置性萍丐,和有一個不斷增長的特性列表轩端。一個前端控制組件,一系列動作類逝变,動作映射基茵,處理XML的實用工具類奋构,服務器端java bean?的自動填充,支持驗證的WEB?表單拱层,國際化支持弥臼,生成HTML,實現表現邏輯和模板組成了struts的靈魂根灯。
九重天動漫論壇系統(tǒng)在設計時應滿足以下幾個目標:
1.使用人機交互的操作邮丰,查詢信息快捷行您,方便后臺管理,確保數據庫的穩(wěn)定性剪廉,其次是盡可能使界面美觀娃循。
2.為用戶提供一個方便、快捷的專業(yè)特色信息查看功能斗蒋。
3.實現在線添加專業(yè)特色捌斧。
4. 操作簡單,易于理解泉沾,便于使用捞蚂。
5. 屏幕設計簡潔明快,屏幕元素布局合理爆哑。
6.用戶隨時都可以查看自己發(fā)表的建議洞难。
7.系統(tǒng)要盡可能的設計成便于管理員維護和方便操作。
8.系統(tǒng)運行穩(wěn)定安全可靠。
九重天動漫論壇的總體設計包括兩大部分:一是前臺的總體設計队贱,也就是對于普通用戶模塊的設計色冀,包括注冊會員,會員登錄柱嫌,瀏覽帖子锋恬,發(fā)表帖子,回復帖子的功能编丘;二是后臺的設計与学,也就是對于管理員的模塊設計,包括管理員對版塊進行增加修改刪除的操作嘉抓,對用戶進行刪除操作索守,對帖子進行刪除操作等基本功能。
功能結構如圖4.1.1
會員注冊與登錄
訪問到論壇主頁時抑片,所有用戶都默認為游客卵佛,只能執(zhí)行瀏覽、搜索帖子的功能敞斋,希望進行下一步操作需要進行會員登陸截汪。
如果用戶為非會員用戶,通過注冊植捎,經審核通過之后成為會員衙解,獲得一個登陸身份;登陸之后可以進行發(fā)帖焰枢,評論等功能蚓峦。
會員登錄
如果用戶為會員,可以直接登陸医咨。登陸之后才能進行發(fā)帖枫匾、評論等功能架诞。
瀏覽帖子
訪問到論壇時拟淮,頁面會顯示版塊、分區(qū)和發(fā)表的帖子谴忧,用戶可以直接瀏覽帖子的內容很泊,也可以選擇感興趣的版塊或者分區(qū),從里面瀏覽該分區(qū)內的帖子的內容沾谓。該模塊沒有權限設置委造,無論是會員還是管理員都可以進行操作。
發(fā)表帖子
用戶登陸后可以發(fā)表一些帖子來與他人共享最新資訊均驶。
5昏兆、回復帖子
用戶登陸后可以在自己或別人發(fā)表的帖子下發(fā)表評論或者回復,發(fā)表自己的想法妇穴。
會員在登錄后可進行的操作如圖4.1.2所示:
1爬虱、管理員登錄
???對于已經登錄的用戶隶债,若權限為管理員,可以進行管理員的登錄跑筝,登陸之后才能有權限進行下一步操作死讹。
2、帖子管理
????管理員可以對發(fā)表的帖子進行查詢曲梗、刪除等操作赞警。
3、分區(qū)管理
論壇中的分區(qū)虏两,管理員可對其進行添加愧旦、修改、刪除等操作定罢。
4忘瓦、版塊管理(子版塊管理)
論壇中的分區(qū)下有不同的版塊,可以對指定分區(qū)下的版塊進行添加引颈、修改耕皮、刪除等操作。
子版塊位于版塊之內蝙场,可以對指定版塊進行添加子版塊凌停,編輯和刪除子版塊的操作。
5售滤、用戶管理
用戶注冊成功后罚拟,管理員可以對用戶進行刪除操作。
管理員模塊設計結構如圖4.2.1
良好的數據庫設計完箩,可以大大方便在開發(fā)過程中的編程赐俗。一個合理、有限的數據庫設計可降低程序的復雜性弊知,使程序開發(fā)的過程更為容易阻逮。
本系統(tǒng)是一個中小型的動漫論壇系統(tǒng),考慮到開發(fā)成本秩彤、用戶信息量客戶需求等問題叔扼,決定采用MYSQL作為項目中的數據庫。
MySQL相對來說是個小型關系型數據庫管理系統(tǒng)漫雷,由瑞典的MySQL AB公司開發(fā)瓜富,在2008年被SUN公司收購。而2009年,SUN又被Oracle收購.Mysql是最流行的關系型數據庫管理系統(tǒng)降盹,在WEB應用方面MySQL是最好的RDBMS(Relational Database Management System:關系數據庫管理系統(tǒng))應用軟件之一与柑。MySQL是一種關聯數據庫管理系統(tǒng),關聯數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內价捧,這樣就增加了速度并提高了靈活性每辟。MySQL軟件采用了雙授權政策(本詞條“授權政策”),由于其體積小干旧、速度快渠欺、總體擁有成本低,尤其是開放源碼這一特點椎眯,一般中小型網站的開發(fā)都選擇MySQL作為網站數據庫挠将。由于其社區(qū)版的性能卓越,搭配PHP和Apache可組成良好的開發(fā)環(huán)境编整。
通過對系統(tǒng)的需求和功能的分析將系統(tǒng)的數據結構主要劃分為四個部分:用戶舔稀、管理員、帖子掌测、模塊這四個内贮。
用戶執(zhí)行的主要是注冊會員,會員登錄汞斧,瀏覽帖子夜郁,發(fā)表帖子,回復帖子的功能粘勒。
管理員則主要進行后臺管理竞端,包括對分區(qū)、版塊以及子版塊進行增加修改刪除的操作庙睡,對用戶進行刪除操作事富,對帖子進行刪除操作等基本功能。
帖子是用戶之間進行交流的直接手段乘陪,其中包括帖子的題目统台,內容,發(fā)帖人啡邑,發(fā)帖時間贱勃,所屬板塊信息。
模塊是最先展示給用戶的谣拣,包括具體的分區(qū)募寨、板塊和子版塊。模塊間的關系森缠,如:同級、上下層的關系要把握好仪缸。
從這上面的信息贵涵,我們可以將數據庫這樣設計:
設計四個表,信息如下:
?t_user用于存放用戶注冊信息。
?t_topic用于存放版面信息宾茂。
?t_threads用于存放貼子信息瓷马。
?t_forums用于存放論壇類別介紹。
這四個表的詳細的邏輯設計詳見4.2.3.
??E-R模型的基本概念
ER圖即實體關系圖跨晴,是描述實體和關系的圖欧聘。ER圖構建實體間的關系模型。ER圖的思想是:項目所有參與者能理解ER圖端盆。ER圖的構成要素是:實體怀骤,關系類型,屬性焕妙。實體是現實事物的形象或者抽象描述蒋伦,必須有業(yè)務意義。特性是用來描繪實體焚鹊,關系存在于實體之間
(1)實體:現實世界中的各種事物痕届;
(2)屬性:事物的特性;
(3)聯系:事物之間的關系末患。實體的關系有一對一研叫、一對多、多對多聯系璧针。
根據系統(tǒng)的總體設計蓝撇,我們可以看出看系統(tǒng)的主要實體有用戶、管理員陈莽、帖子渤昌、模塊這四個。
大體的概念模型設計如下圖4.2.2所示
表1 t_user(用戶信息表)
序號名稱別名類型長度
1id編號int11
2userName用戶名varchar50
3userPW用戶密碼varchar50
4realName真實姓名varchar50
5email郵箱varchar100
6userType用戶權限int11
7isDel刪除標記int11
該表用于存放用戶注冊信息
id是t_user表的主鍵走搁,是表示用戶的編號独柑。
userName是用戶名,是用戶登錄所需要的信息之一私植。
userPW是用戶密碼忌栅,和用戶名一起作用于用戶登錄。
userPW是用戶真實姓名曲稼,用于用戶注冊索绪,對管理員可見。
Email是郵箱贫悄,用于注冊瑞驱,對管理員可見。
Usertype 是用戶類型窄坦,用來表示用戶的權限唤反,我們設置usertype為0的是管理員纵隔,具有更高的權限衅谷,usertype為1的是普通用戶,只能實現前端的功能。
isDel是刪除標記个少,表示該用戶是否被刪除蔽介,被刪除用戶發(fā)表帖子依舊能顯示在論壇中干花,所以刪除用戶不是講用戶從數據庫中移除绪氛,而是將其刪除標記置為1。
表2 ?t_forums(論壇類別介紹表)
序號名稱別名類型長度
1fid模塊編號int11
2type類型varchar10
3name名字varchar100
4fup上級編號int11
5status狀態(tài)smallint6
該表用于存放論壇類別介紹
fid是編號名斟,用來表示管理員最近添加或者修改刪除的分區(qū)脑慧、版塊、子版塊蒸眠。是該介紹表的主鍵
Type表示的是類型漾橙,用來表示管理員實施操作是對分區(qū)、版塊還是子版塊進行的楞卡,通過type表示區(qū)分三者霜运。
Name是名稱,表示管理員實施操作時的分區(qū)蒋腮、版塊及子版塊的名稱淘捡。
Fup表示的上級模塊,默認最頂層的為0池摧,即每個分區(qū)的上層為0焦除,每個版塊的上層對應的編號是每個分區(qū)的編號(fid),每個子版塊對應的上層編號是每個模塊對應的編號(fid)作彤。
Status表示狀態(tài)膘魄,即這些模塊存在與否,對于存在的記為“1”不存在的記為“0”.
表3 ?t_topic(版面信息表)
序號名稱別名類型長度
1pid新帖編號int11
2fid模塊編號int11
3author作者varchar100
4authorid作者idint11
5subject標題varchar100
6view觀看int11
7replies回復int11
8addtime發(fā)表時間datetime0
該表用于存放版面信息竭讳。
Pid即新帖編號创葡,也就是發(fā)布的新的帖子的編號,是該表的主鍵绢慢。
fid是編號灿渴,用來表示新帖所屬的模塊(子版塊)。
Author表示發(fā)帖的作者名字胰舆。
Authorid 表示發(fā)帖的作者編號骚露。
Subject 表示發(fā)表的新帖子的內容。
View 表示有多少觀看量(瀏覽量)缚窿。
Replies 表示回復帖子的數量棘幸。
Addtime 表示帖子發(fā)布的時間。
表4 ?t_threads(貼子信息表)
序號名稱別名類型長度
1tid帖子編號int11
2pid新帖編號int11
3fid題目編號int11
4ftype類型int11
5author作者varchar50
6authorid作者idint11
7subject標題varchar100
8Content內容varchar10000
9addtime發(fā)表時間datetime0
10tnum帖子數量int11
該表用于存放貼子信息滨攻。
Tid 即帖子的編號够话,這個帖子可以表示新發(fā)布的新帖蓝翰,也可以表示是回復的帖子光绕,是該表的主鍵女嘲。
Pid 即新帖編號,也就是發(fā)布的新的帖子的編號诞帐,如果帖子是回復帖子的話欣尼,該編號反應的是回復帖子所屬于的帖子的編號。
Fid 是編號停蕉,用來表示新帖所屬的模塊(子版塊)愕鼓。
Ftype 表示帖子的類型,如果帖子的類型標志為“0”嘖表示該帖是新發(fā)布的帖子慧起,如果帖子的類型標識為“1”菇晃,則表示該帖子是回復別的帖子的帖子。
Author表示發(fā)帖的作者蚓挤。
Authorid 表示發(fā)帖作者的編號磺送。
Subject 表示帖子的題目。
Content 存放帖子的內容灿意。
Addtime 表示帖子發(fā)布的時間估灿。
tnum 表示帖子的數量。
論壇中所有的操作所產生的數據如:注冊缤剧,登錄馅袁,瀏覽帖子,發(fā)表帖子荒辕,回復貼子所產生的數據都需要放到數據庫中存儲汗销。數據庫中以數據表來存放各個功能模塊相關的數據,數據庫的設計對系統(tǒng)非常重要
數據庫設計的合理與否抵窒,安全性弛针,穩(wěn)定性這些方面都直接影響著計算機論壇的運作。一個好的數據庫設計方案估脆,能夠使網站的效率事半功倍钦奋。在對數據庫的設計要格外的認真的分析,考慮的要周全細致疙赠。
要確定數據庫的物理結構付材,在關系數據庫MYSQL中主要是指存取和存儲結構。若物理設計滿足設計要求圃阳,即可實施厌衔,否則,需要重新設計或者修改物理結構捍岳,嚴重時甚至需要返回邏輯設計階段對數據模型進行修改富寿。
數據庫是眾多用戶共享的系統(tǒng)睬隶,很多時候對同一關系需要建立多條存取路徑才能滿足多用戶的多種需求。現代技術的飛速發(fā)展使得數據庫存儲變更簡單页徐、方便苏潜、易行。索引法和聚簌法都可以使物理設計順利實現变勇。
????????????????JSP簡介
JSP(JavaServer Pages)是由Sun Microsystems公司倡導恤左、許多公司參與一起建立的一種動態(tài)網頁技術標準。JSP技術有點類似ASP技術搀绣,它是在傳統(tǒng)的網頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標記(tag)飞袋,從而形成JSP文件(*.jsp)。 用JSP開發(fā)的Web應用是跨平臺的链患,即能在Linux下運行巧鸭,也能在其他操作系統(tǒng)上運行。 JSP技術使用Java編程語言編寫類XML的tags和scriptlets麻捻,來封裝產生動態(tài)網頁的處理邏輯纲仍。網頁還能通過tags和scriptlets訪問存在于服務端的資源的應用邏輯。JSP將網頁邏輯與網頁設計和顯示分離芯肤,支持可重用的基于組件的設計巷折,使基于Web的應用程序的開發(fā)變得迅速和容易。
Web服務器在遇到訪問JSP網頁的請求時崖咨,首先執(zhí)行其中的程序段锻拘,然后將執(zhí)行結果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數據庫击蹲、重新定向網頁等署拟,以實現建立動態(tài)網頁所需要的功能。
JSP與Java Servlet一樣歌豺,是在服務器端執(zhí)行的推穷,通常返回該客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽类咧。 JSP的1.0規(guī)范的最后版本是1999年9月推出的馒铃,12月又推出了1.1規(guī)范。目前較新的是JSP1.2規(guī)范痕惋,JSP2.0規(guī)范的征求意見稿也已出臺区宇。
JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務器在頁面被客戶端請求以后對這些Java代碼進行處理值戳,然后將生成的HTML頁面返回給客戶端的瀏覽器议谷。Java Servlet 是JSP的技術基礎,而且大型的Web應用程序的開發(fā)需要Java Servlet和JSP配合才能完成堕虹。JSP具備了Java技術的簡單易用卧晓,完全的面向對象芬首,具有平臺無關性且安全可靠,主要面向因特網的所有特點逼裆。
JSP技術的強勢
(1)一次編寫郁稍,到處運行。在這一點上Java比PHP更出色波附,除了系統(tǒng)之外艺晴,代碼不用做任何更改昼钻。
(2)系統(tǒng)的多平臺支持掸屡。基本上可以在所有平臺上的任意環(huán)境中開發(fā)然评,在任意環(huán)境中進行系統(tǒng)部署仅财,在任意環(huán)境中擴展。相比ASP/PHP的局限性是顯而易見的碗淌。
(3)強大的可伸縮性盏求。從只有一個小的Jar文件就可以運行Servlet/JSP,到由多臺服務器進行集群和負載均衡亿眠,到多臺Application進行事務處理碎罚,消息處理,一臺服務器到無數臺服務器纳像,Java顯示了一個巨大的生命力荆烈。
(4)多樣化和功能強大的開發(fā)工具支持。這一點與ASP很像竟趾,Java已經有了許多非常優(yōu)秀的開發(fā)工具憔购,而且許多可以免費得到,并且其中許多已經可以順利的運行于多種平臺之下岔帽。
JSP技術的弱勢
(1) 與ASP一樣玫鸟,Java的一些優(yōu)勢正是它致命的問題所在。正是由于為了跨平臺的功能犀勒,為了極度的伸縮能力屎飘,所以極大的增加了產品的復雜性。
(2) Java的運行速度是用class常駐內存來完成的贾费,所以它在一些情況下所使用的內存比起用戶數量來說確實是“最低性能價格比”了钦购。從另一方面,它還需要硬盤空間來儲存一系列的.java文件和.class文件铸本,以及對應的版本文件肮雨。
JSP六種內置對象:
request, response, out, session, application, config, pagecontext, page, exception.
一.request對象:
該對象封裝了用戶提交的信息,通過調用該對象相應的方法可以獲取封裝的信息箱玷,即使用該對象可以獲取用戶提交信息怨规。
二.response對象:
對客戶的請求做出動態(tài)的響應陌宿,向客戶端發(fā)送數據。
三.session對象
1.什么是session:session對象是一個JSP內置對象波丰,它在第一個JSP頁面被裝載時自動創(chuàng)建壳坪,完成會話期管理。
從一個客戶打開瀏覽器并連接到服務器開始掰烟,到客戶關閉瀏覽器離開這個服務器結束爽蝴,被稱為一個會話。當一個客戶訪問一個服務器時纫骑,可能會在這個服務器的幾個頁面之間反復連接蝎亚,反復刷新一個頁面,服務器應當通過某種辦法知道這是同一個客戶先馆,這就需要session對象发框。
2.session對象的ID:當一個客戶首次訪問服務器上的一個JSP頁面時,JSP引擎產生一個session對象煤墙,同時分配一個String類型的ID號梅惯,JSP引擎同時將這個ID號發(fā)送到客戶端,存放在Cookie中仿野,這樣session對象和客戶之間就建立了一一對應的關系铣减。當客戶再訪問連接該服務器的其他頁面時,不再分配給客戶新的session對象脚作,直到客戶關閉瀏覽器后葫哗,服務器端該客戶的session對象才取消,并且和客戶的會話對應關系消失鳖枕。當客戶重新打開瀏覽器再連接到該服務器時魄梯,服務器為該客戶再創(chuàng)建一個新的session對象。
四.aplication對象
1.什么是application:
服務器啟動后就產生了這個application對象宾符,當客戶再所訪問的網站的各個頁面之間瀏覽時酿秸,這個application對象都是同一個,直到服務器關閉魏烫。但是與session不同的是辣苏,所有客戶的application對象都是同一個,即所有客戶共享這個內置的application對象哄褒。
2.application對象常用方法:
(1)public void setAttribute(String key,Object obj): 將參數Object指定的對象obj添加到
application對象中稀蟋,并為添加的對象指定一個索引關鍵字。
public Object getAttribute(String key): 獲取application對象中含有關鍵字的對象呐赡。?
?????????????????????JSP的好處
從根本上退客,JSP頁面能夠執(zhí)行的任何任務都可以用servler來完成。然而,這種底層的等同性并不意味著servler和JSP頁面對于所有的情況都等同適用萌狂。問題不在于技術的能力档玻,而是二者在便利性、生產率和可維護性上的不同茫藏。畢竟误趴,在特定平臺上能夠用Java編程語言完成的事情,同樣可以用匯編語言來完成务傲,但是選擇哪種語言依舊十分重要凉当。
和單獨使用servler相比,JSP提供下述好處:
JSP中HTML的編寫與維護更為簡單售葡。JSP中可以使用常規(guī)的HTML:沒有額外的反斜杠看杭,沒有額外的雙引號,也沒有暗含的Java語法天通。能夠使用標準的網站開發(fā)工具泊窘。即使對那些對JSP一無所知的HTML工具,我們也可以使用像寒,因為它們會忽略JSP標簽(JSP tags)」霞郑可以對開發(fā)團隊進行劃分诺祸。Java程序員可以致力于動態(tài)代碼。Web開發(fā)人員可以將經理集中在表示層(presentation layer)上祭芦。對于大型的項目筷笨,這種劃分極為重要。依據開發(fā)團隊的大小龟劲,及項目的復雜程度胃夏,可以對靜態(tài)HTML和動態(tài)內容進行弱分離(weaker separation)和強分離(stronger separation)。
在此昌跌,這個討論并不是讓您停止使用servlets仰禀,只使用JSP。幾乎所有的項目都會同時用到這兩種技術蚕愤。針對項目中的某些請求答恶,您可能會在MVC構架下組合使用這兩項技術。我們總是希望用適當的工具完成相對應的工作萍诱,僅僅是servlet并不能填滿您的工具箱悬嗓。
二、JSP相對于競爭技術的優(yōu)勢
許多年前裕坊,Marty受到邀請,參加一個有關軟件技術的小型(20個人)研討會.做在Marty旁邊的人是James Gosling--- Java編程語言的發(fā)明者包竹。隔幾個位置,是來自華盛頓一家大型軟件公司的高級經理。在討論過程中,研討會的主席提出了Jini的議題,這在當時是一項新的Java技術.主席向該經理詢問他的想法.他繼續(xù)說,他們會持續(xù)關注這項技術,如果這項技術變得流行起來,他們會遵循公司的“接受并擴充(embrace and extend)”的策略.此時, Gosling隨意地插話說“你的意思其實就是不接受且不擴充(disgrace and distend)≈芟梗”
在此, Gosling的抱怨顯示出悟狱,他感到這個公司會從其他公司那里拿走技術,用于他們自己的目的.但你猜這次怎么樣?這次鞋子穿在了另一只腳上。Java社團沒有發(fā)明這一思想----將頁面設計成由靜態(tài)HTML和用特殊標簽標記的動態(tài)代碼混合組成.堰氓。ColdFusion多年前就已經這樣做了挤渐。甚至ASP(來自于前述經理所在公司的一項產品)都在JSP出現之前推廣了這種方式。實際上,JSP不只采用了這種通用概念,它甚至使用許多和ASP相同的特殊標簽双絮。
因此,問題變成:為什么使用JSP,而不使用其他技術呢?我們的第一反應是我們不是在爭論所有的人應該做什么浴麻。其他這些技術中,有一些也很不錯,在某些情況下也的確是合情合理的選擇.然而,在其他情形中,JSP明顯要更好一些。下面給出幾個理由囤攀。
與.NET和Active Server Pages (ASP)相比.NET是Microsoft精心設計的一項技術软免。ASP.NET是與servlets和JSP直接競爭的技術。JSP的優(yōu)勢體現在兩個方面焚挠。
首先,JSP可以移植到多種操作系統(tǒng)和Web服務器,您不必僅僅局限于部署在Windows 和IIS上盡管核心.NET平臺可以在好幾種非Windows平臺上運行膏萧,但ASP這一部分不可以。您不能期望可以將重要的ASP.NET應用部署到多種服務器和操作系統(tǒng)蝌衔。對于某些應用榛泛,這種差異沒有什么影響。但有些應用噩斟,這種差異卻非常重要曹锨。
其次,對于某些應用剃允,底層語言的選擇至關重要沛简。例如,盡管.NET的C#語言設計優(yōu)良斥废,且和Java類似椒楣,但熟悉核心C#語法和眾多工具庫的程序員很少。此外,許多開發(fā)者依舊使用最初版本的ASP牡肉。相對于這個版本,JSP在動態(tài)代碼方面擁有明顯的優(yōu)勢捧灰。使用JSP,動態(tài)部分是用Java編寫的,而非VBScript過其他ASP專有的語言,因此JSP更為強勁,更適合于要求組件重用的復雜應用。
當將JSP與之前版本的ColdFusion對比時荚板,您可能會得到相同的結論凤壁。應用JSP,您可以使用Java編寫“真正的代碼”跪另,不必依賴于特定的服務器產品拧抖。然而,當前版本的ColdFusion滿足J2EE服務器的環(huán)境免绿,允許開發(fā)者容易的混合使用ColdFusion和Servlet/JSP代碼唧席。
PHP(“PHP:Hypertext Preprocessor”的遞歸字母縮寫詞)是免費的、開放源代碼的、HTML嵌入其中的腳本語言淌哟,與ASP和JSP都有某種程度的類似迹卢。JSP的一項優(yōu)勢是動態(tài)部分用Java編寫,而Java已經在聯網徒仓、數據庫訪問腐碱、分布式對象等方面擁有廣泛的API,而PHP需要學習全新的掉弛、應用相對廣泛的語言症见。JSP的第二項優(yōu)勢是,和PHP相比殃饿,JSP擁有極為廣泛的工具和服務器提供商的支持谋作。
?原則上,JSP并沒有提供Servlet不能完成的功能乎芳。實際上遵蚜,JSP文檔在后臺被自動轉換成Servlet。但是編寫(和修改)常規(guī)的HTML奈惑,要比無數println語句生成HTML要方便得多吭净。另外,通過將表示與內容分離携取,可以為不同的人分配不同的任務:網頁設計人員使用熟悉的工具構建HTML攒钳,要么為Servlet程序員留出空間插入動態(tài)內容,要么通過XML標簽間接調用動態(tài)內容雷滋。
?這是否表示您只可以學習JSP,將Servlet丟到一邊呢文兢?當然不是晤斩!由于以下4種原因,JSP開發(fā)人員需要了解Servlet:
(1)JSP頁面會轉換成Servlet姆坚。不了解Servlet就無法知道JSP如何工作澳泵。
(2)JSP由靜態(tài)HTML、專用的JSP標簽和Java代碼組成兼呵。哪種類型的Java代碼呢兔辅?當然是Servlet代碼!如果不了解Servlet編程击喂,那么就無法編寫這種代碼维苔。
(3)一些任務用Servlet完成比用JSP來完成要好。JSP擅長生成由大量組織有序的結構化HTML或其他字符數據組成的頁面懂昂。Servlet擅長生成二進制數據介时,構建結構多樣的頁面,以及執(zhí)行輸出很少或者沒有輸出的任務(比如重定向)。
(4)有些任務更適合于組合使用Servlet和JSP來完成沸柔,而非單獨使用Servlet或JSP循衰。
JavaScript相比,JavaScript和Java編程語言完全是兩碼事褐澎,前者一般用于在客戶端動態(tài)生成HTML会钝,在瀏覽器載入文檔時構建網頁的部分內容。這是一項有用的功能工三,一般與JSP的功能(只在服務器端運行)并不發(fā)生重疊迁酸。和常規(guī)HTML頁面一樣,JSP頁面依舊可以包括用于JavaScript的SCRIPT標簽徒蟆。實際上胁出,JSP甚至能夠用來動態(tài)生成發(fā)送到客戶端的JavaScript。因此段审,JavaScript不是一項競爭技術全蝶,它是一項補充技術。
JavaScript也可以用在服務器端寺枉,最因人注意的是SUN ONE(以前的iPlanet)抑淫、IIS和BroadVision服務器。然而姥闪,Java更為強大靈活始苇、可靠且可移植。
完整畢設下載:https://www.huzhan.com/code/goods332329.html
完整畢設:https://www.huzhan.com/code/goods332329.html