個人博客系統(tǒng)設(shè)計需求分析_第1頁
個人博客系統(tǒng)設(shè)計需求分析_第2頁
個人博客系統(tǒng)設(shè)計需求分析_第3頁
個人博客系統(tǒng)設(shè)計需求分析_第4頁
個人博客系統(tǒng)設(shè)計需求分析_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、個人BLOG系統(tǒng)分析1. 概 述對個人而言,博客可以調(diào)動個人的積極性,充分發(fā)揮個人的創(chuàng)造性。從2002年開始,國內(nèi)博客開始迅猛發(fā)展起來,從最初的只有幾千個嘗鮮者到現(xiàn)在的各式各樣的博客,圈子。在這三年的發(fā)展過程中,主要呈現(xiàn)出如下幾個特點:1.博客是可以將個人信息完整呈現(xiàn)在互聯(lián)網(wǎng)上的載體。2.博客具有“準(zhǔn)實名制”趨勢,有助于信任機(jī)制的建立。本文就此探討了我國博客發(fā)展的幾個要素。1.1個人BLOG的概念BLOG是WEBLOG的縮寫,簡單來說就是網(wǎng)絡(luò)日記。它是1997年12月由美國的JornBarger最早提出的,這些年全球博客獲得了突飛猛進(jìn)的發(fā)展。據(jù)博客搜索Technorati統(tǒng)計,目前全球平均每5

2、.8秒鐘誕生一個博客。它是一個新型的個人互聯(lián)網(wǎng)出版工具,博客使用者可以很方便地用文字、鏈接、影音、圖片建立起個性化的網(wǎng)絡(luò)世界。在Internet飛速發(fā)展的今天,互聯(lián)網(wǎng)成為人們快速獲取、發(fā)布和傳遞信息的重要渠道,它在人們政治、經(jīng)濟(jì)、生活等各個方面發(fā)揮著重要的作用。因此網(wǎng)站建設(shè)在Internet應(yīng)用上的地位顯而易見,倍受人們的重視。為了樹立個人在網(wǎng)絡(luò)上的形象,通過設(shè)計一個個人博客網(wǎng)站,以達(dá)到個人推薦、展現(xiàn)自我的一個平臺,個人博客網(wǎng)站為交流提供綜合的網(wǎng)絡(luò)環(huán)境,同時也為個人的宣傳,發(fā)展,提供了一個平臺。博客秉承了個人網(wǎng)站的自由精神,但是綜合了激發(fā)創(chuàng)造的新模式,使其更具開放和建設(shè)性。它作為一種新表達(dá)的方

3、式,它的傳播不僅情緒,包括大量的智慧、意見和思想。某種意義上說,它也是一種新的文化現(xiàn)象,博客的出現(xiàn)和繁榮,真正凸現(xiàn)網(wǎng)絡(luò)的知識價值,標(biāo)志著互聯(lián)網(wǎng)發(fā)展開始步入更高的階段。1.2個人BLOG具有的特點和主要功能實現(xiàn)一個博客網(wǎng)站,通常是由簡短而且經(jīng)常更新的帖子構(gòu)成,所有文章都是按照年份和日期排列,有些類似斑竹的日記??瓷先テ降瓱o奇,毫無可炫耀之處,但它可以讓每個人零成本、零維護(hù)地創(chuàng)建自己的網(wǎng)絡(luò)媒體,每個都可以隨時把自己的思想火花和靈感更新到博客站點上。零機(jī)制:博客屬于個人所有,是自發(fā)建立和非正式的建設(shè)。BSP不能對博客發(fā)號施令。 零技術(shù):博客不需要作網(wǎng)站的專業(yè)知識,可以像發(fā)郵件一樣簡單地實現(xiàn)博客網(wǎng)頁的

4、呈現(xiàn)。技術(shù)的極度簡化,包括架構(gòu)和申請博客網(wǎng)站、編輯、上傳和修改內(nèi)容等。 零成本:任何一個人都可以像申請免費郵件般免費申請自己的博客網(wǎng)站。不需要注冊域名的成本,不需要租用服務(wù)器空間的成本,不需要許多軟件工具的成本。 零形式:博客頁面的表現(xiàn)形式和文章內(nèi)容的表現(xiàn)方式十分靈活,沒有特定形式。 與個人主頁相比較,博客是使用方便的、交互性強(qiáng)。與傳統(tǒng)的電子郵件、BBS和ICQ這三種互聯(lián)網(wǎng)溝通方式相比,博客是一種較嚴(yán)肅的溝通平臺。BBS公共匿名性很強(qiáng),而個人性很弱,因此缺乏約束。電子郵件和ICQ則是多用于個人間的通訊,而博客是個人性和公共性的結(jié)合。博客是個人在網(wǎng)上展示自己、與別人溝通交流的綜合平臺,它的管理比

5、BBS簡單的多。2. 需求分析信息時代的今天,網(wǎng)絡(luò)已經(jīng)成為人們工作、學(xué)習(xí)的一部分,不斷充實和改變著人們的生活。在網(wǎng)絡(luò)中,構(gòu)建一個個個性化的博客,可以充分地表達(dá)自己的思想,通過發(fā)布文章展示個人才能,舒服個人情感;網(wǎng)友則可以根據(jù)主題發(fā)表個人的意見,表達(dá)自己的想法,與博主進(jìn)行思想交流,樂在其中。2.1 可行性研究2.1.1 經(jīng)濟(jì)可行性博客通過“我的文章”和“相冊上傳”等功能模塊,吸引更多的瀏覽者,增加網(wǎng)站的訪問量,提升網(wǎng)站的影響力;不斷更新網(wǎng)站信息內(nèi)容,使網(wǎng)站信心更加多元化,適合不同的訪問群體;通過網(wǎng)站展現(xiàn)個人魅力,愉悅身心;通過與來訪者的交流,不斷積累經(jīng)驗,吸收新的知識,使網(wǎng)站始終充滿新鮮活力。2

6、.1.2 技術(shù)可行性本系統(tǒng)主要應(yīng)用Servlet技術(shù)開發(fā)。Servlet技術(shù)帶給程序員最大的幫助是它可以處理客戶端傳來的HTTP請求,并返回一個響應(yīng)。Servlet是一個Java類,Java語言能夠?qū)崿F(xiàn)的功能,Servlet基本上都可以實現(xiàn)(圖形界面以外)??偟膩碚f,Servlet技術(shù)具有以下特點。 (1)高效在服務(wù)器上僅有一個Java虛擬機(jī)在運行,它的優(yōu)勢在于當(dāng)多個來自客戶端的請求進(jìn)行訪問時,Servlet為每個請求分配一個線程而不是進(jìn)程。 (2)方便Servlet提供了大的實用工具例程,例如處理很難完成的HTML表單數(shù)據(jù)、讀取和設(shè)置HTTP頭、處理Cookie和跟蹤會話功能。 (3)跨平臺

7、Servlet時用Java類編寫的,它可以在不通過的操作系統(tǒng)平臺和不同的應(yīng)用服務(wù)器平臺下運行。 (4)功能強(qiáng)大在Servlet中,許多使用傳統(tǒng)CGI程序很難完成的任務(wù)都可以用Servlet技術(shù)輕松完成。例如,Servlet能夠直接和Web服務(wù)器交互,而普通的CGI程序則不能,Servlet還能夠在各個程序之間共享數(shù)據(jù),使得數(shù)據(jù)庫連接池之類的的功能很容易實現(xiàn)。 (5)靈活性和可擴(kuò)展性采用Servlet開放的Web應(yīng)用程序,由于Java類的繼承性、構(gòu)造函數(shù)等特點,使得應(yīng)用靈活,可隨意擴(kuò)展。 (6)共享數(shù)據(jù)Servlet之間可通過共享數(shù)據(jù)很容易的實現(xiàn)數(shù)據(jù)庫連接池。它能方便的實現(xiàn)管理用戶的請求,簡化S

8、ession和獲取前一頁面信息的操作,而在CGI之間通信則很差。由于每個CGI程序的調(diào)用都開始一個新的進(jìn)程,調(diào)用間通信要通過文件進(jìn)行,因而相當(dāng)緩慢。同一臺服務(wù)器上的不同CGI程序之間的通信業(yè)相當(dāng)麻煩。 (7)安全有些CGI版本存在明顯的安全弱點,即使是使用最新的標(biāo)準(zhǔn)和PERL等語言,系統(tǒng)也沒有基本安裝框架。而Java定義有完整的安全機(jī)制,包括SSLCA認(rèn)證、安全政策等規(guī)范。3 系統(tǒng)設(shè)計3.1系統(tǒng)目標(biāo)本系統(tǒng)主要實現(xiàn)網(wǎng)站建設(shè)者與訪問者之間的交流,展現(xiàn)網(wǎng)站建設(shè)者的思想。主要實現(xiàn)如下目標(biāo):全面展示博客網(wǎng)站的主題思想 通過發(fā)表“我的文章”,表達(dá)作者的想法和觀點,實現(xiàn)與訪問者的相互交流。通過上傳個人相冊,

9、使訪問者對網(wǎng)站建設(shè)者有進(jìn)一步的了解。用戶可以查看文章,并可以對文章發(fā)表意見。展現(xiàn)最新的的博客列表,方便訪問瀏覽。提供網(wǎng)站統(tǒng)計信息,使訪問者了解網(wǎng)站的基本信息。對文章信息進(jìn)行管理。通過選擇文章類別名稱添加文正內(nèi)容,并可以查詢、修改和刪除文章內(nèi)容。對相冊信息進(jìn)行管理。通過選擇相冊類別名稱上傳相冊圖片信息,并可以查看和刪除相冊內(nèi)容??梢孕薷墓芾韱T登陸信息。3.2 系統(tǒng)功能結(jié)構(gòu)博客網(wǎng)站分為前臺和后臺。其中,根據(jù)博客前臺的特點,可以將其分為博主信息、網(wǎng)絡(luò)日歷、文章查詢、公告查詢及相冊查詢等13部分,其中各個部分及其包括的具體功能模塊如圖3.1所示。博客網(wǎng)前臺查看博主信息查看網(wǎng)站說明網(wǎng)絡(luò)日歷郵箱聯(lián)系文章查

10、詢朋友查詢友情鏈接用戶投票相冊查詢公告查詢文章詳細(xì)查詢文章留言公告詳細(xì)查詢圖3.1博客網(wǎng)前臺功能結(jié)構(gòu)根據(jù)博客網(wǎng)站后臺的特點,可以將其分為用戶設(shè)置、公告管理、個人相冊管理、博客文章管理、投票管理、朋友信息管理及博主信息修改7部分,其中各個部分及其包括的具體功能模塊如圖3.2所示。博客網(wǎng)后臺博客文章管理個人相冊管理公告管理投票管理朋友信息管理公告添加相冊添加相冊設(shè)置發(fā)表博客文章朋友信息添加文章分類朋友信息設(shè)置博主信息修改投票內(nèi)容設(shè)置設(shè)置內(nèi)容添加公告設(shè)置用戶設(shè)置博客文章設(shè)置圖3.2博客網(wǎng)站后臺功能結(jié)構(gòu)3.3 系統(tǒng)流程圖為了更加清晰的表達(dá)系統(tǒng)的業(yè)務(wù)功能模塊,下面給出博客網(wǎng)的系統(tǒng)流程圖。對于不同的角色,

11、其所承擔(dān)的任務(wù)也各自不同,流程圖也不一樣,包括面向用戶的客戶端流程圖和面向系統(tǒng)管理員的的流程圖。面向用戶的客戶端流程圖如圖3.3所示。開始用戶登錄用戶登錄判斷用戶注冊博客網(wǎng)站首頁相冊查看郵件聯(lián)系朋友查看博客說明查看博主信息查看投票投票結(jié)果查看公告信息查看公告信息詳細(xì)查看文章分類文章查看文章詳細(xì)查看文章回復(fù)圖3.3面向用戶的客戶端流程圖面向系統(tǒng)管理員的流程圖如圖3.4所示。開始用戶登錄用戶登錄判斷(是否為系統(tǒng)管理員)博客網(wǎng)前臺頁面博客網(wǎng)后臺頁面博客文章管理個人相冊管理朋友信息管理博主個人信息修改公告管理投票管理用戶管理圖3.4 面向系統(tǒng)管理員的流程圖3.4 開發(fā)環(huán)境在開發(fā)博客網(wǎng)系統(tǒng)時,需要具備下

12、面的軟件環(huán)境。服務(wù)器端:操作系統(tǒng):Windows xpWeb服務(wù)器:Tomcat 6.0Java 開發(fā)包:JDK 1.5以上數(shù)據(jù)庫:SQL Server2000瀏覽器:IE6.0分辨率:最佳效果為1024*768像素客戶端:瀏覽器:IE6.0分辨率:最佳效果為1024*768像素4數(shù)據(jù)庫設(shè)計4.1數(shù)據(jù)庫需求設(shè)計創(chuàng)建博客數(shù)據(jù)庫的第一步是制定實施計劃,該計劃可以在實現(xiàn)數(shù)據(jù)庫時做向?qū)?,也可以在?shù)據(jù)庫實現(xiàn)完成后,用做數(shù)據(jù)庫的功能說明。數(shù)據(jù)庫設(shè)計的復(fù)雜性和細(xì)節(jié)由數(shù)據(jù)庫的應(yīng)用程序的復(fù)雜性、大小及用戶使用情況確定。這里介紹的博客數(shù)據(jù)庫是一個相對簡單的數(shù)據(jù)庫,盡管如此,數(shù)據(jù)庫設(shè)計還是需要經(jīng)過如圖4.1所示的基

13、本步驟。 采集信息表示對象創(chuàng)建對象實體表示每個對象的信息類型表示對象之間的關(guān)系圖4.1 數(shù)據(jù)庫設(shè)計的基本步驟下面詳細(xì)介紹將數(shù)據(jù)庫設(shè)計的基本步驟。4.1.1 采集信息在創(chuàng)建博客數(shù)據(jù)庫之前,必須對博客信息有一個透徹的理解。與博客網(wǎng)中所涉及的每個人進(jìn)行交流,以找出他們所作的工作及他們需要從數(shù)據(jù)庫中獲得的內(nèi)容,這是很重要的。另外,了解該博客系統(tǒng)是否符合實際要求及找出相關(guān)系統(tǒng)的問題、限制和屏蔽也很重要。4.1.2 表示對象在采集信息的過程中,必須標(biāo)識將由博客數(shù)據(jù)庫管理的主要對象或?qū)嶓w。對象可以是一個有形的實體(如用戶),也可以是一個無形的項目(文章、相冊等)。通常會有幾個主要對象,在標(biāo)識了這些對象之后,

14、相關(guān)的項目就會變得清晰。數(shù)據(jù)庫中每個不同的項目都應(yīng)有一個對應(yīng)的表。4.1.3 建立對象實體標(biāo)識了博客系統(tǒng)中的對象后,使用該博客系統(tǒng)的一種直觀表示方式對這些對象進(jìn)行記錄是很重要的。在數(shù)據(jù)庫實現(xiàn)期間,可以使用數(shù)據(jù)庫實體作為參考。4.1.4 標(biāo)識每個對象的信息類型 標(biāo)識必須為各對象存儲的信息類型,這些信息是對象的表中的列(實際上就是數(shù)據(jù)表字段的類型)。4.1.5 標(biāo)識對象之間的關(guān)系 關(guān)系數(shù)據(jù)庫的一個優(yōu)勢是它具有聯(lián)系或關(guān)聯(lián)數(shù)據(jù)庫中各種項目有關(guān)信息的能力??梢詥为毜卮鎯Κ毩⒌男畔㈩愋?,但數(shù)據(jù)庫可以在必要時組合數(shù)據(jù)。在設(shè)計過程中,表示對象間的關(guān)系需要查看各種表,以確定它們邏輯相關(guān)的方式及添加管系列以建立表

15、與另一個表間的關(guān)系。4.2 數(shù)據(jù)庫概念的設(shè)計根據(jù)以上對系統(tǒng)所作的需求分析和系統(tǒng)設(shè)計,規(guī)劃出本系統(tǒng)中使用的數(shù)據(jù)庫實體信息分別為用戶信息實體、公告信息實體、個人相冊信息實體、朋友信息實體、投票信息實體、博客文章信息實體及文章回復(fù)實體。下面將介紹幾個關(guān)鍵實體的E-R圖。用戶信息實體用戶信息實體包括用戶名、密碼、姓名、性別、QQ號碼、主頁、興趣、E-mail地址、管理級別屬性,用戶信息實體的E-R圖如圖所示。用戶用戶名管理級別QQ號碼性別E-mail地址密碼主頁興趣姓名圖4.2用戶信息實體屬性E-R圖個人相冊信息實體個人小相冊信息實體包括相冊存放服務(wù)器端地址、相冊描述信息及相冊上傳時間屬性,個人相冊信

16、息實體的E-R圖如圖所示。個人相冊信息相冊存放服務(wù)器端地址相冊描述信息相冊上傳時間圖4.3 個人相冊信息實體屬性E-R圖博客文章信息實體博客文章信息實體包括文章題目、文章內(nèi)容、文章發(fā)布時間及文章訪問次數(shù)屬性。博客文章信息實體的E-R圖如圖4.4所示。文章信息文章題目文章內(nèi)容文章發(fā)布時間文章訪問次數(shù)圖4.4 博客文章信息實體屬性E-R圖4.3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計本實例包含8個數(shù)據(jù)表,分別為個人相冊信息表,用戶信息表,文章信息表,文章類型信息表,公告信息表,朋友信息表,文章評語信息表,投票信息結(jié)果表。tb_photo表4.1 個人相冊信息表tb_aritcle表4.2 文章信息表tb_aritcl

17、eType表4.3 文章類型信息表tb_consumer表4.4 用戶信息表tb_discuss表4.5 公告信息tb_friend表4.6 朋友信息tb_restore表4.7 文章評語信息tb_vote表4.8 投票信息結(jié)果5 公共模塊設(shè)計在開發(fā)過程中經(jīng)常用到一些公共類,如數(shù)據(jù)庫連接及操作類和字符串處理類,因此,在開發(fā)系統(tǒng)前首先應(yīng)該編寫這些公共類。下面將具體介紹博客網(wǎng)中所需要的公共類的編寫過程。5.1數(shù)據(jù)庫連接及操作類的編寫本網(wǎng)站使用SQL Server 2000數(shù)據(jù)庫系統(tǒng)。安裝完成SQL Server 2000 JDBC Driver就可以編寫與數(shù)據(jù)庫連接的類。JDBConnection

18、.java中不僅提供了數(shù)據(jù)庫的連接,還有根據(jù)數(shù)據(jù)庫獲取的Statement 和 ResultSet 等, com.my.tool.JDBConnection類封裝了關(guān)于數(shù)據(jù)庫的各項操作。代碼如下:public class JDBConnection private final String url = jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=db_BlodMay; /設(shè)置數(shù)據(jù)庫URL驅(qū)動和數(shù)據(jù)庫連接 private final String userName = sa;/設(shè)置連接的用戶名 private final Strin

19、g password = sa;/設(shè)置登陸密碼private Connection con = null;/設(shè)置數(shù)據(jù)庫連接類的對象通過靜態(tài)方法家在數(shù)據(jù)庫驅(qū)動,方法代碼如下: static try Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver).newInstance(); catch (Exception ex) System.out.println(數(shù)據(jù)庫加載失敗);/在控制臺中輸入異常信息 創(chuàng)建數(shù)據(jù)庫連接,方法代碼如下: public boolean creatConnection() try con = Driver

20、Manager.getConnection(url, userName, password);/取得數(shù)據(jù)庫連接 con.setAutoCommit(true);/設(shè)置事務(wù)的自動提交的功能 catch (SQLException e) System.out.println(e.getMessage(); System.out.println(creatConnectionError!); return true;對數(shù)據(jù)庫的增加、修改和刪除的操作,方法代碼如下:public boolean executeUpdate(String sql) if (con = null) creatConnect

21、ion();/取得數(shù)據(jù)庫連接操作 try Statement stmt = con.createStatement();/創(chuàng)建聲明連接 int iCount = stmt.executeUpdate(sql);/執(zhí)行SQL語句 System.out.println(操作成功,所影響的記錄數(shù)為 + String.valueOf(iCount); return true;/如果執(zhí)行成功,則通過關(guān)鍵字return返回true catch (SQLException e) System.out.println(e.getMessage(); return false;/如果執(zhí)行失敗,則通過關(guān)鍵字ret

22、urn返回false 對數(shù)據(jù)庫的查詢操縱,方法代碼如下:public ResultSet executeQuery(String sql) ResultSet rs; try if (con = null) creatConnection();/取得數(shù)據(jù)庫連接操作 Statement stmt = con.createStatement();/執(zhí)行聲明對象連接 try rs = stmt.executeQuery(sql);/執(zhí)行查詢的SQL語句 catch (SQLException e) System.out.println(e.getMessage(); return null; 5.2

23、字符串處理類的編寫在使用JSP開發(fā)網(wǎng)站經(jīng)常要過濾一些特殊字符或轉(zhuǎn)換一些字符,這些功能通常需要編寫一個獨立的類來完成,本系統(tǒng)中通過以下代碼實現(xiàn)字符的過濾和轉(zhuǎn)換:public static String toChinese(String strvalue) try if (strvalue = null) return ;/如果參數(shù)strvalue的值為空,則返回空對象 else strvalue = new String(strvalue.getBytes(ISO8859_1), GBK);/將編碼轉(zhuǎn)換成GBK的格式 return strvalue;/返回轉(zhuǎn)碼內(nèi)容 catch (Exceptio

24、n e) return ;/返回查詢的ResultSet結(jié)果集 在JSP中輸出中文時要考慮中文的亂碼問題,本實例中是利用String類的getByte()方法來解決這一問題。5.3系統(tǒng)配置本網(wǎng)站采用Servlet和JavaBean結(jié)合技術(shù)開發(fā)的。JavaBean技術(shù)實現(xiàn)對數(shù)據(jù)庫的操作不需要在XML文件中進(jìn)行任何的配置,而正常運行Servlet程序還需要進(jìn)行適當(dāng)?shù)呐渲?,配置文件為web.xml。下面將通過本實例詳細(xì)的介紹在web.xml文件中Servlet的配置。關(guān)鍵代碼如下: This is the description of my J2EE component This is the di

25、splay name of my J2EE component ConsumerServlet com.wy.webiter.ConsumerServlet This is the description of my J2EE component This is the display name of my J2EE component FriendServlet com.wy.webiter.FriendServlet This is the description of my J2EE component This is the display name of my J2EE compon

26、ent VoteServlet com.wy.webiter.VoteServlet 6 前臺頁面設(shè)計6.1前臺首頁概述在博客網(wǎng)的前臺首頁設(shè)計中,首先管理員發(fā)布的最新文章展現(xiàn)給用戶,然后再提供文章的分類,顯示博主的信息,最新公告及博客網(wǎng)導(dǎo)航區(qū)功能等功能。圖6.1博客網(wǎng)前臺首頁6.2前臺首頁技術(shù)分析如圖6.2所示首頁中的顯示博主的基本信息,顯示登錄用戶信息,顯示博客的主要功能,顯示博主的朋友圈及版權(quán)信息等功能,并不是僅存于在首頁中,其他功能模塊的子頁面中也需要包括這些部分。因此,可以將這幾個部分分別保存于單獨的文件中,這樣在需要放置相應(yīng)功能時只需包含這些文件即可,如下圖所示。在JSP頁面中包含文

27、件有兩種方法:一種是應(yīng)用指令實現(xiàn),另一種是應(yīng)用動作元素實現(xiàn)。本系統(tǒng)使用的是動作元素,該動作元素用于向當(dāng)前頁面中包含其他的文件,這個文件可以是動態(tài)文件也可以是靜態(tài)文件。指令用來在JSP頁面中包含另一個文件。包含的過程是靜態(tài)的,即在指定文件屬性值時,只能是一個包含相對路徑的文件名,而不能是一個變量,也不可以在所指定的文件后面添加任何參數(shù)。其語法格式如下:動作元素可以指定加載一個靜態(tài)或動態(tài)的文件,但運行結(jié)果不同。如果指定為靜態(tài)文件,那么這種指定僅僅是把指定的文件內(nèi)容加到JSP文件中去,則這個文件不被編譯。如果是動態(tài)文件,那么這個文件,那么這個文件將會被編譯器執(zhí)行。由于在頁面中包含查詢模塊時,只需要將

28、文件內(nèi)容添加到指定的JSP頁面中即可,所以此處可以使用加載靜態(tài)文件的方法包含文件。應(yīng)用動作元素加載靜態(tài)文件的語法格式如下:jsp:include page=”relativeURL | ”flush=”true”/使用指令和動作元素包含文件的區(qū)別是:使用指令包含的頁面,是在編譯階段將該頁面的代碼插入到了主頁面的代碼中,最終包含頁面與被包含頁面生成一個文件。因此,如果被包含頁面的內(nèi)容有改動,需重新編譯該文件。而使用動作元素包含的頁面可以是動態(tài)改變的,它是在JSP文件運行過程中被確定的,程序執(zhí)行的是兩個不同的頁面,即在主頁面中聲明的變量,在被包含的頁面中是不可見的。由此可見,當(dāng)被包含的JSP頁面中

29、包含動態(tài)代碼時,為了不和主頁面中的代碼相沖突,需要使用動作元素包含文件。應(yīng)用動作元素包含查詢頁面的代碼如下: 。head_top.jsphead_Consumer.jsp head_main.jsphead_ringht.jsp head_down.jsp圖6.2前臺首頁的布局6.3 前臺首頁的布局 應(yīng)用動作元素包含文件的方法進(jìn)行前臺首頁布局的代碼如下:  7 用戶登錄模塊設(shè)計7.1 用戶登錄模塊概述用戶登錄模塊具有用戶登錄功能。博客網(wǎng)運行第一個頁面便是用戶登錄頁面,用戶登錄后,可以查看博主所發(fā)表的文章。在用戶登錄頁面中,在用戶名和密碼文本框中輸入用戶名和密碼后,單擊登錄按鈕,系統(tǒng)驗

30、證成功后,用戶將以會員的身份進(jìn)入博客網(wǎng)首頁,之后在網(wǎng)站中可以隨意查看博主發(fā)表的文章。如果登錄的用戶是博主本人,在博主信息顯示區(qū)域中,則出現(xiàn)“進(jìn)入后臺”超鏈接,博主可以直接單擊此超連接,進(jìn)入博客網(wǎng)的后臺進(jìn)行管理。用戶登錄模塊的框架如下圖所示。開始用戶登錄是否通過驗證不顯示“進(jìn)入后臺”超鏈接及其其他相關(guān)信息顯示“進(jìn)入后臺”超鏈接及其其他相關(guān)信息否是圖7.1 用戶登錄模塊的框架7.2 用戶登錄模塊技術(shù)分析在用戶登錄模塊中,涉及的數(shù)據(jù)表是用戶信息表(tb_sonsumer),在用戶信息表中保存著用戶名和密碼等信息,根據(jù)這些信息來創(chuàng)建用戶登錄模塊的form,名稱為Consumer。Servlet的核心在

31、于它的HttpServlet,一般在Servlet里面做頁面的邏輯跳轉(zhuǎn)工作。用戶登錄模塊的Servlet實現(xiàn)類繼承了HttpServlet類,在該類中首先設(shè)置用戶登錄模塊的ConsumerDao類的對象,該對象在每個具體的方法中實例化,doGet()在Servlet中自動被調(diào)用。該方法本身沒有具體事務(wù),它是根據(jù)通過HttpServlet的getParameter()方法獲取的method 參數(shù)值執(zhí)行相應(yīng)的方法的。 在web.xml文件中配置用戶登錄的Servlet的具體代碼如下: This is the description of my J2EE component This is the

32、display name of my J2EE component ConsumerServlet com.wy.webiter.ConsumerServlet 7.3 用戶登錄模塊的實現(xiàn)過程用戶登錄模塊是博客網(wǎng)最先使用的模塊,是系統(tǒng)的入口。在用戶登錄頁面中,用戶可以通過輸入正確的用戶名和密碼進(jìn)入到系統(tǒng),當(dāng)用戶沒有輸入用戶名和密碼時,系統(tǒng)會通過JavaScript腳步進(jìn)行判斷,并予以提示信息。7.3.1 設(shè)計用戶登錄頁面用戶登錄頁面主要用于收集用戶輸入的信息及通過自定義JavaScript函數(shù)判斷輸入信息是否為空,該頁面所涉及的表單元素如下圖所示。名 稱元 素 類 型重 要 類 型含 義for

33、m1formmethod=”post”action=”ComsuerServlet?method=0&sign=0”onSubmit=”return userCheck()”用戶登錄的表單元素accounttextclass=”inputinput” id=”account” size=”30”用戶名passwordpasswordclass=”inputinput” id=”account” size=”30”密碼imagesrc=”images/land.gif”登錄按鈕7.3.2 編寫用戶登錄的Servlet實現(xiàn)類在用戶登錄頁面的用戶名和密碼文本框中輸入正確的用戶名和密碼后,單擊登錄按鈕

34、,網(wǎng)頁會訪問一個URL,即ConsumerServlet?method=0&sign=0。從該URL地址中可以知道用戶登錄模塊所涉及的method參數(shù)值為0,也就是當(dāng)method=0時,會調(diào)用驗證用戶身份的方法check-Consumer()。在驗證用戶身份的方法check-Consumer()中,首先需要將用戶名的表單信息賦值給新的String類型對象,將這個對象做參數(shù),執(zhí)行ConsumerDao類中的getConsumerForm()方法并將該方法的返回值賦給ConsumerForm類的對象,判斷這個對象是否為空值,如果該對象為空值,則說明該用戶輸入的用戶名不存在,如果該對象不為空值,則將

35、這個對象中的密碼值取出與密碼表單數(shù)據(jù)比較,如果比較值為true,則說明用戶輸入的驗證信息正確,如果比較值為false,則說明用戶輸入的驗證信息不正確。7.3.3 編寫用戶登錄的ConsumerDao類的方法用戶登錄使用的ConsumerDao類的方法是getConsumerForm()方法。在getConsumerForm()中,將以用戶名表單信息為參數(shù),以用戶信息表中的用戶名為條件,自行查詢的SQL語句,并將查詢結(jié)果通過return關(guān)鍵字返回,如果沒有查詢結(jié)果,則返回空對象。7.3.4 判斷登錄用戶是否為博主普通用戶身份驗證成功后,在博客網(wǎng)的首頁將顯示該用戶的信息;如果博主登錄后,則在博主顯

36、示區(qū)域中將顯示“進(jìn)入后臺”超鏈接。當(dāng)用戶登錄成功后,用戶對應(yīng)的form信息將保存在session中,程序員將根據(jù)保存在session中的form信息和用戶登錄級別信息(manageLevel)來判斷登錄的用戶是否為博主。8 文章查詢模塊8.1文章查詢模塊概述文章查詢模塊的主要功能時用戶在瀏覽系統(tǒng)時查看發(fā)表的文章列表及文章詳細(xì)內(nèi)容,包括文章的題目、發(fā)表時間、該文章的瀏覽次數(shù)等,并可以針對發(fā)表文章進(jìn)行恢復(fù)。這是博客最具代表性的特點之一。它給博主和用戶提供展示文筆的平臺,增加博主與用戶、用戶與用戶之間的交流,能夠使博客系統(tǒng)內(nèi)的氣氛更加活躍,內(nèi)容更加豐富。前臺文章查詢模塊主要包括所有文章查詢、文章分類

37、查詢、文章內(nèi)容詳細(xì)查詢及文章回復(fù)功能。前臺文章查詢模塊如下圖所示。前臺文章查詢模塊文章分類or頁查詢所有文章查詢文章詳細(xì)查詢前臺文章回復(fù)模塊圖8.1 前臺文章查詢模塊的框架圖8.2 文章分類查詢實現(xiàn)過程在本系統(tǒng)中,前臺文章查詢模塊主要應(yīng)用的技術(shù)是JavaBean技術(shù),應(yīng)用動作標(biāo)簽創(chuàng)建并使用一個JavaBean。執(zhí)行方式非常靈活,如果執(zhí)行到,將去尋找是否存在相同ID和scope。當(dāng)用戶登錄后,在博客網(wǎng)的首頁右側(cè)操作區(qū)中單擊文章超鏈接,網(wǎng)頁會自動彈出一個URL,即head_Article.jsp,將分類顯示文章的信息。在前臺分類顯示文章信息頁面中,首先通過JavaBean定義分類操作的類(MyPagination),之后調(diào)用ArticleDao類中的queryArticle()方法查詢所有的文章信息,最后將查詢的結(jié)果顯示在頁面中。通過JavaBean技術(shù)調(diào)用ArticleDao類中的queryArticle()方法實現(xiàn)所有文章查詢的功能。在queryArticle()

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論