




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目錄摘要IIIABSTRACTIV1 概述11.1個人BLOG的概念11.2 個人BLOG的發展現狀11.3 個人BLOG具有的特點和主要功能22系統分析32.1 需求分析32.2 可行性研究32.2.1 經濟可行性32.2.2 技術可行性33 系統設計53.1系統目標53.2 系統功能結構53.3 系統流程圖63.4 開發環境74數據庫設計84.1數據庫需求設計84.1.1 采集信息84.1.2 表示對象84.1.3 建立對象實體84.1.4 標識每個對象的信息類型84.1.5 標識對象之間的關系84.2 數據庫概念的設計94.3 數據庫邏輯結構設計105 公共模塊設計125.1數據庫連接及
2、操作類的編寫125.2字符串處理類的編寫135.3系統配置146 前臺頁面設計156.1前臺首頁概述156.2前臺首頁技術分析156.3 前臺首頁的布局167 用戶登錄模塊設計187.1 用戶登錄模塊概述187.2 用戶登錄模塊技術分析187.3 用戶登錄模塊的實現過程197.3.1 設計用戶登錄頁面197.3.2 編寫用戶登錄的Servlet實現類197.3.3 編寫用戶登錄的ConsumerDao類的方法197.3.4 判斷登錄用戶是否為博主198 文章查詢模塊208.1文章查詢模塊概述208.2 文章分類查詢實現過程208.3 文章詳細查詢的實現過程219 后臺設計229.1 后面頁面設
3、計229.2后臺相冊設計22總結24致謝25參考文獻26個人博客網站系統設計與實現學生: 邵 偉指導教師: 鄧 樹 文咸寧學院計算機科學與技術學院 湖北咸寧 437100摘 要越來越多的網絡用戶希望能夠在網絡平臺上更多地展現自己的個性,更方便地與人互動交流,在傳統的WEB1.0時代,無論是論壇、社區還是個人網站,都試圖在這些方面進行努力,隨著WEB2.0時代的到來,一個新的概念出現了博客。隨著計算機網絡的飛速發展,博客已經成為寫網絡日志必不可少的一種工具,也是一種簡單有效的提供網絡用戶之間進行在線交流的網絡平臺,通過其可以結交更多的朋友,表達更多的想法,它隨時可以發布日志,方便快捷。個人博客的
4、發展,也已經成為廣告商業務拓展的重要領域。關鍵詞: 博客、網絡、平臺、網站Person blog system Design and ImplementationName:Wei ShaoSupervisor:Shuwen DengInsititute of Computer Science and Technology,XianningUniversity,Xianning Hubei 437100,ChinaAbstractA growing number of Internet users hope to be able to network more platform to show
5、its own personality, more easily interact with people in traditional WEB1.0 of the times, whether the forum, community or personal Web site, try these Aspects of the efforts, with the WEB2.0 era, a new concept emerged - blog. With the rapid development of computer networks, has become a blog to writ
6、e a Web log indispensable tool is a simple and effective provision of Internet users between the on-line exchange platform for the network, through its able to make more friends, to express For more ideas, it can be released at any time log, convenient and quick. Personal development blog, advertise
7、rs have become an important area of business development. Key words: blog、network、platform、website1 概 述對個人而言,博客可以調動個人的積極性,充分發揮個人的創造性。從2002年開始,國內博客開始迅猛發展起來,從最初的只有幾千個嘗鮮者到現在的各式各樣的博客,圈子。在這三年的發展過程中,主要呈現出如下幾個特點:1.博客是可以將個人信息完整呈現在互聯網上的載體。2.博客具有“準實名制”趨勢,有助于信任機制的建立。本文就此探討了我國博客發展的幾個要素。1.1個人BLOG的概念BLOG是WEB
8、;LOG的縮寫,簡單來說就是網絡日記。它是1997年12月由美國的Jorn Barger最早提出的,這些年全球博客獲得了突飛猛進的發展。據博客搜索Technorati統計,目前全球平均每5.8秒鐘誕生一個博客。它是一個新型的個人互聯網出版工具,博客使用者可以很方便地用文字、鏈接、影音、圖片建立起個性化的網絡世界。在Internet飛速發展的今天,互聯網成為人們快速獲取、發布和傳遞信息的重要渠道,它在人們政治、經濟、生活等各個方面發揮著重要的作用。因此網站建設在Internet應用上的地位顯而易見,倍受人們的重視。為了樹立個人在網絡上的形象,通過設計一個個人博客網站,以達到個人推薦、展
9、現自我的一個平臺,個人博客網站為交流提供綜合的網絡環境,同時也為個人的宣傳,發展,提供了一個平臺。博客秉承了個人網站的自由精神,但是綜合了激發創造的新模式,使其更具開放和建設性。它作為一種新表達的方式,它的傳播不僅情緒,包括大量的智慧、意見和思想。某種意義上說,它也是一種新的文化現象,博客的出現和繁榮,真正凸現網絡的知識價值,標志著互聯網發展開始步入更高的階段。1.2 個人BLOG的發展現狀2006年11月3日,全球中文博客站點數量達到5230萬,博客(Blogger)用戶數達到1987萬,平均每個博客(Blogger)用戶擁有大約2.6個博客,博客站點數和博客用戶數均比前一年有一定程度的增長
10、,人均擁有博客數與前一年相比也略有上升。在近二千萬的中國博客用戶中,每個用戶平均每7.6天更新一次博客,活躍的博客用戶數(一周內有更新的博客)達到302萬,約15.2%的用戶每周更新博客,同時,只有大約4.6%的用戶每天更新博客。在用戶更新的博客中,約42%的博客文章在500個漢字(1000個字節)之內,5001000個漢字(10002000個字節)的博客文章占約16.5%,越是長篇大論的文章在博客中所占比例則越少。用戶更新博客的時間大部分集中在白天,約48.5%的用戶選擇在工作時間(上午10點下午6點)更新自己的博客,其中,在臨近下班前(下午4點6點)博客更新數達12.4%,而約16.3%的
11、用戶選擇在晚上7點10點更新博客,為全日最高峰,晚上10點之后時間更新博客的數量逐漸減少。2006年,擁有獨立域名的博客站點,在博客站點總數中占約0.43%,這表明,絕大多數的用戶將博客服務商作為他們的博客站點首選。而這一年,中國大陸博客服務商(BSP)持續大幅增長,博客服務商數量達到1460家,與去年同期相比增長近55%;大型網絡公司如搜狐、百度紛紛推出相應的博客服務,而新興的博客服務站點如也開始嶄露頭角。過去一年中,中國博客發展速度整體趨緩,博客用戶增長數較之去年有小幅上升,博客服務商之間的市場競爭日趨激烈,與早期提供博客服務的運營商相比,傳統門戶及大型公司的博客服務已占據市場主導地位。總
12、體而言,2006年中國博客發展呈現5大特點:專業博客如醫藥類、教育類等增長較快,博客圈成為社區發展新方向;博客服務商(BSP)死亡比例逐漸增高,2005年Top100服務商中,近20%的站點已經關閉或終止服務;博客服務商(BSP)開始逐漸支持手機訪問和發貼,發展迅速;綜合博客服務商(BSP)增長很快,越來越多的服務商開始提供音頻、視頻博客等功能;利用博客進行排名作弊的站點越來越多,06年出現爆炸性增長,其中小型博客服務商(BSP)尤為突出。1.3 個人BLOG具有的特點和主要功能實現一個博客網站,通常是由簡短而且經常更新的帖子構成,所有文章都是按照年份和日期排列,有些類似斑竹的日記。看上去平淡
13、無奇,毫無可炫耀之處,但它可以讓每個人零成本、零維護地創建自己的網絡媒體,每個都可以隨時把自己的思想火花和靈感更新到博客站點上。零機制:博客屬于個人所有,是自發建立和非正式的建設。BSP不能對博客發號施令。零技術:博客不需要作網站的專業知識,可以像發郵件一樣簡單地實現博客網頁的呈現。技術的極度簡化,包括架構和申請博客網站、編輯、上傳和修改內容等。零成本:任何一個人都可以像申請免費郵件般免費申請自己的博客網站。不需要注冊域名的成本,不需要租用服務器空間的成本,不需要許多軟件工具的成本。零形式:博客頁面的表現形式和文章內容的表現方式十分靈活,沒有特定形式。與個人主頁相比較,博客是使用方便的、交互性
14、強。與傳統的電子郵件、BBS和ICQ這三種互聯網溝通方式相比,博客是一種較嚴肅的溝通平臺。BBS公共匿名性很強,而個人性很弱,因此缺乏約束。電子郵件和ICQ則是多用于個人間的通訊,而博客是個人性和公共性的結合。博客是個人在網上展示自己、與別人溝通交流的綜合平臺,它的管理比BBS簡單的多。2系統分析2.1 需求分析信息時代的今天,網絡已經成為人們工作、學習的一部分,不斷充實和改變著人們的生活。在網絡中,構建一個個個性化的博客,可以充分地表達自己的思想,通過發布文章展示個人才能,舒服個人情感;網友則可以根據主題發表個人的意見,表達自己的想法,與博主進行思想交流,樂在其中。2.2 可行性研究 經濟可
15、行性博客通過“我的文章”和“相冊上傳”等功能模塊,吸引更多的瀏覽者,增加網站的訪問量,提升網站的影響力;不斷更新網站信息內容,使網站信心更加多元化,適合不同的訪問群體;通過網站展現個人魅力,愉悅身心;通過與來訪者的交流,不斷積累經驗,吸收新的知識,使網站始終充滿新鮮活力。 技術可行性本系統主要應用Servlet技術開發。Servlet技術帶給程序員最大的幫助是它可以處理客戶端傳來的HTTP請求,并返回一個響應。Servlet是一個Java類,Java語言能夠實現的功能,Servlet基本上都可以實現(圖形界面以外)。總的來說,Servlet技術具有以下特點。(1)高效在服務器上僅有一個Java
16、虛擬機在運行,它的優勢在于當多個來自客戶端的請求進行訪問時,Servlet為每個請求分配一個線程而不是進程。 (2)方便Servlet提供了大的實用工具例程,例如處理很難完成的HTML表單數據、讀取和設置HTTP頭、處理Cookie和跟蹤會話功能。(3)跨平臺Servlet時用Java類編寫的,它可以在不通過的操作系統平臺和不同的應用服務器平臺下運行。 (4)功能強大在Servlet中,許多使用傳統CGI程序很難完成的任務都可以用Servlet技術輕松完成。例如,Servlet能夠直接和Web服務器交互,而普通的CGI程序則不能,Servlet還能夠在各個程序之間共享數據,使得數據庫連接池之類
17、的的功能很容易實現。 (5)靈活性和可擴展性采用Servlet開放的Web應用程序,由于Java類的繼承性、構造函數等特點,使得應用靈活,可隨意擴展。 (6)共享數據Servlet之間可通過共享數據很容易的實現數據庫連接池。它能方便的實現管理用戶的請求,簡化Session和獲取前一頁面信息的操作,而在CGI之間通信則很差。由于每個CGI程序的調用都開始一個新的進程,調用間通信要通過文件進行,因而相當緩慢。同一臺服務器上的不同CGI程序之間的通信業相當麻煩。 (7)安全有些CGI版本存在明顯的安全弱點,即使是使用最新的標準和PERL等語言,系統也沒有基本安裝框架。而Java定義有完整的安全機制,
18、包括SSLCA認證、安全政策等規范。3 系統設計3.1系統目標本系統主要實現網站建設者與訪問者之間的交流,展現網站建設者的思想。主要實現如下目標:全面展示博客網站的主題思想通過發表“我的文章”,表達作者的想法和觀點,實現與訪問者的相互交流。通過上傳個人相冊,使訪問者對網站建設者有進一步的了解。用戶可以查看文章,并可以對文章發表意見。展現最新的的博客列表,方便訪問瀏覽。提供網站統計信息,使訪問者了解網站的基本信息。對文章信息進行管理。通過選擇文章類別名稱添加文正內容,并可以查詢、修改和刪除文章內容。對相冊信息進行管理。通過選擇相冊類別名稱上傳相冊圖片信息,并可以查看和刪除相冊內容。可以修改管理員
19、登陸信息。3.2 系統功能結構博客網站分為前臺和后臺。其中,根據博客前臺的特點,可以將其分為博主信息、網絡日歷、文章查詢、公告查詢及相冊查詢等13部分,其中各個部分及其包括的具體功能模塊如圖3.1所示。博客網前臺查看博主信息查看網站說明網絡日歷郵箱聯系文章查詢朋友查詢友情鏈接用戶投票相冊查詢公告查詢文章詳細查詢文章留言公告詳細查詢圖3.1博客網前臺功能結構根據博客網站后臺的特點,可以將其分為用戶設置、公告管理、個人相冊管理、博客文章管理、投票管理、朋友信息管理及博主信息修改7部分,其中各個部分及其包括的具體功能模塊如圖3.2所示。博客網后臺博客文章管理個人相冊管理公告管理投票管理朋友信息管理公
20、告添加相冊添加相冊設置發表博客文章朋友信息添加文章分類朋友信息設置博主信息修改投票內容設置設置內容添加公告設置用戶設置博客文章設置圖3.2博客網站后臺功能結構3.3 系統流程圖為了更加清晰的表達系統的業務功能模塊,下面給出博客網的系統流程圖。對于不同的角色,其所承擔的任務也各自不同,流程圖也不一樣,包括面向用戶的客戶端流程圖和面向系統管理員的的流程圖。面向用戶的客戶端流程圖如圖3.3所示。開始用戶登錄用戶登錄判斷用戶注冊博客網站首頁相冊查看郵件聯系朋友查看博客說明查看博主信息查看投票投票結果查看公告信息查看公告信息詳細查看文章分類文章查看文章詳細查看文章回復圖3.3面向用戶的客戶端流程圖面向系
21、統管理員的流程圖如圖3.4所示。開始用戶登錄用戶登錄判斷(是否為系統管理員)博客網前臺頁面博客網后臺頁面博客文章管理個人相冊管理朋友信息管理博主個人信息修改公告管理投票管理用戶管理圖3.4 面向系統管理員的流程圖3.4 開發環境在開發博客網系統時,需要具備下面的軟件環境。服務器端:操作系統:Windows xpWeb服務器:Tomcat 6.0Java 開發包:JDK 1.5以上數據庫:SQL Server2000瀏覽器:IE6.0分辨率:最佳效果為1024*768像素客戶端:瀏覽器:IE6.0分辨率:最佳效果為1024*768像素4數據庫設計4.1數據庫需求設計創建博客數據庫的第一步是制定實
22、施計劃,該計劃可以在實現數據庫時做向導,也可以在數據庫實現完成后,用做數據庫的功能說明。數據庫設計的復雜性和細節由數據庫的應用程序的復雜性、大小及用戶使用情況確定。這里介紹的博客數據庫是一個相對簡單的數據庫,盡管如此,數據庫設計還是需要經過如圖4.1所示的基本步驟。采集信息表示對象創建對象實體表示每個對象的信息類型表示對象之間的關系圖4.1 數據庫設計的基本步驟下面詳細介紹將數據庫設計的基本步驟。 采集信息在創建博客數據庫之前,必須對博客信息有一個透徹的理解。與博客網中所涉及的每個人進行交流,以找出他們所作的工作及他們需要從數據庫中獲得的內容,這是很重要的。另外,了解該博客系統是否符合實際要求
23、及找出相關系統的問題、限制和屏蔽也很重要。 表示對象在采集信息的過程中,必須標識將由博客數據庫管理的主要對象或實體。對象可以是一個有形的實體(如用戶),也可以是一個無形的項目(文章、相冊等)。通常會有幾個主要對象,在標識了這些對象之后,相關的項目就會變得清晰。數據庫中每個不同的項目都應有一個對應的表。 建立對象實體標識了博客系統中的對象后,使用該博客系統的一種直觀表示方式對這些對象進行記錄是很重要的。在數據庫實現期間,可以使用數據庫實體作為參考。 標識每個對象的信息類型 標識必須為各對象存儲的信息類型,這些信息是對象的表中的列(實際上就是數據表字段的類型)。 標識對象之間的關系 關系數據庫的一
24、個優勢是它具有聯系或關聯數據庫中各種項目有關信息的能力。可以單獨地存儲獨立的信息類型,但數據庫可以在必要時組合數據。在設計過程中,表示對象間的關系需要查看各種表,以確定它們邏輯相關的方式及添加管系列以建立表與另一個表間的關系。4.2 數據庫概念的設計根據以上對系統所作的需求分析和系統設計,規劃出本系統中使用的數據庫實體信息分別為用戶信息實體、公告信息實體、個人相冊信息實體、朋友信息實體、投票信息實體、博客文章信息實體及文章回復實體。下面將介紹幾個關鍵實體的E-R圖。用戶信息實體用戶信息實體包括用戶名、密碼、姓名、性別、QQ號碼、主頁、興趣、E-mail地址、管理級別屬性,用戶信息實體的E-R圖
25、如圖所示。用戶用戶名管理級別QQ號碼性別E-mail地址密碼主頁興趣姓名圖4.2用戶信息實體屬性E-R圖個人相冊信息實體個人小相冊信息實體包括相冊存放服務器端地址、相冊描述信息及相冊上傳時間屬性,個人相冊信息實體的E-R圖如圖所示。個人相冊信息相冊存放服務器端地址相冊描述信息相冊上傳時間圖4.3 個人相冊信息實體屬性E-R圖博客文章信息實體博客文章信息實體包括文章題目、文章內容、文章發布時間及文章訪問次數屬性。博客文章信息實體的E-R圖如圖4.4所示。文章信息文章題目文章內容文章發布時間文章訪問次數圖4.4 博客文章信息實體屬性E-R圖4.3 數據庫邏輯結構設計本實例包含8個數據表,分別為個人
26、相冊信息表,用戶信息表,文章信息表,文章類型信息表,公告信息表,朋友信息表,文章評語信息表,投票信息結果表。tb_photo表4.1 個人相冊信息表tb_aritcle表4.2 文章信息表tb_aritcleType表4.3 文章類型信息表tb_consumer表4.4 用戶信息表tb_discuss表4.5 公告信息tb_friend表4.6 朋友信息tb_restore表4.7 文章評語信息tb_vote表4.8 投票信息結果5 公共模塊設計在開發過程中經常用到一些公共類,如數據庫連接及操作類和字符串處理類,因此,在開發系統前首先應該編寫這些公共類。下面將具體介紹博客網中所需要的公共類的編
27、寫過程。5.1數據庫連接及操作類的編寫本網站使用SQL Server 2000數據庫系統。安裝完成SQL Server 2000 JDBC Driver就可以編寫與數據庫連接的類。JDBConnection.java中不僅提供了數據庫的連接,還有根據數據庫獲取的Statement 和 ResultSet 等, com.my.tool.JDBConnection類封裝了關于數據庫的各項操作。代碼如下:publicclass JDBConnection privatefinal String url = "jdbc:microsoft:sqlserver:/localhost:1433;
28、DatabaseName=db_BlodMay" /設置數據庫URL驅動和數據庫連接privatefinal String userName = "sa"/設置連接的用戶名privatefinal String password = "sa"/設置登陸密碼private Connection con = null;/設置數據庫連接類的對象通過靜態方法家在數據庫驅動,方法代碼如下:static try Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").n
29、ewInstance(); catch (Exception ex) System.out.println("數據庫加載失敗");/在控制臺中輸入異常信息 創建數據庫連接,方法代碼如下:publicboolean creatConnection() try con = DriverManager.getConnection(url, userName, password);/取得數據庫連接 con.setAutoCommit(true);/設置事務的自動提交的功能 catch (SQLException e) System.out.println(e.getMessage(
30、); System.out.println("creatConnectionError!"); returntrue;對數據庫的增加、修改和刪除的操作,方法代碼如下:publicboolean executeUpdate(String sql) if (con = null) creatConnection();/取得數據庫連接操作 try Statement stmt = con.createStatement();/創建聲明連接int iCount = stmt.executeUpdate(sql);/執行SQL語句 System.out.println("操
31、作成功,所影響的記錄數為" + String.valueOf(iCount);returntrue;/如果執行成功,則通過關鍵字return返回true catch (SQLException e) System.out.println(e.getMessage();returnfalse;/如果執行失敗,則通過關鍵字return返回false 對數據庫的查詢操縱,方法代碼如下:public ResultSet executeQuery(String sql) ResultSet rs;try if (con = null) creatConnection();/取得數據庫連接操作
32、Statement stmt = con.createStatement();/執行聲明對象連接try rs = stmt.executeQuery(sql);/執行查詢的SQL語句 catch (SQLException e) System.out.println(e.getMessage();returnnull; 5.2字符串處理類的編寫在使用JSP開發網站經常要過濾一些特殊字符或轉換一些字符,這些功能通常需要編寫一個獨立的類來完成,本系統中通過以下代碼實現字符的過濾和轉換:publicstaticString toChinese(String strvalue) try if (str
33、value = null) return ""/如果參數strvalue的值為空,則返回空對象 else strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");/將編碼轉換成GBK的格式return strvalue;/返回轉碼內容 catch (Exception e) return ""/返回查詢的ResultSet結果集 在JSP中輸出中文時要考慮中文的亂碼問題,本實例中是利用String類的getByte()方法來解決這一問題。5.3系統配
34、置本網站采用Servlet和JavaBean結合技術開發的。JavaBean技術實現對數據庫的操作不需要在XML文件中進行任何的配置,而正常運行Servlet程序還需要進行適當的配置,配置文件為web.xml。下面將通過本實例詳細的介紹在web.xml文件中Servlet的配置。關鍵代碼如下:<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4" xmlns=" xmlns:xsi="/2001/XM
35、LSchema-instance" <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>ConsumerServlet</servlet-name> <servlet-class>com.wy.webit
36、er.ConsumerServlet</servlet-class> </servlet> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name><servlet-name>FriendServlet</servlet-name>&l
37、t;servlet-class>com.wy.webiter.FriendServlet</servlet-class> </servlet> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>VoteSe
38、rvlet</servlet-name> <servlet-class>com.wy.webiter.VoteServlet</servlet-class> </servlet>6 前臺頁面設計6.1前臺首頁概述在博客網的前臺首頁設計中,首先管理員發布的最新文章展現給用戶,然后再提供文章的分類,顯示博主的信息,最新公告及博客網導航區功能等功能。圖6.1博客網前臺首頁6.2前臺首頁技術分析如圖6.2所示首頁中的顯示博主的基本信息,顯示登錄用戶信息,顯示博客的主要功能,顯示博主的朋友圈及版權信息等功能,并不是僅存于在首頁中,其他功能模塊的子頁面中也需
39、要包括這些部分。因此,可以將這幾個部分分別保存于單獨的文件中,這樣在需要放置相應功能時只需包含這些文件即可,如下圖所示。在JSP頁面中包含文件有兩種方法:一種是應用<%include%>指令實現,另一種是應用<jsp:include>動作元素實現。本系統使用的是<jsp:include>動作元素,該動作元素用于向當前頁面中包含其他的文件,這個文件可以是動態文件也可以是靜態文件。<%include%>指令用來在JSP頁面中包含另一個文件。包含的過程是靜態的,即在指定文件屬性值時,只能是一個包含相對路徑的文件名,而不能是一個變量,也不可以在所指定的文
40、件后面添加任何參數。其語法格式如下:<%include file=”fileName”%><jsp:include>動作元素可以指定加載一個靜態或動態的文件,但運行結果不同。如果指定為靜態文件,那么這種指定僅僅是把指定的文件內容加到JSP文件中去,則這個文件不被編譯。如果是動態文件,那么這個文件,那么這個文件將會被編譯器執行。由于在頁面中包含查詢模塊時,只需要將文件內容添加到指定的JSP頁面中即可,所以此處可以使用加載靜態文件的方法包含文件。應用<jsp:include>動作元素加載靜態文件的語法格式如下:<jsp:include page=”rela
41、tiveURL | <%=expression%>”flush=”true”/>使用<%include%>指令和<jsp:include>動作元素包含文件的區別是:使用<%include%>指令包含的頁面,是在編譯階段將該頁面的代碼插入到了主頁面的代碼中,最終包含頁面與被包含頁面生成一個文件。因此,如果被包含頁面的內容有改動,需重新編譯該文件。而使用<jsp:include>動作元素包含的頁面可以是動態改變的,它是在JSP文件運行過程中被確定的,程序執行的是兩個不同的頁面,即在主頁面中聲明的變量,在被包含的頁面中是不可見的。由此
42、可見,當被包含的JSP頁面中包含動態代碼時,為了不和主頁面中的代碼相沖突,需要使用<jsp:include>動作元素包含文件。應用<jsp:include>動作元素包含查詢頁面的代碼如下: <jsp:include page=”search.jsp” flush=”true”/>。head_top.jsphead_Consumer.jsp head_main.jsphead_ringht.jsp head_down.jsp圖6.2前臺首頁的布局6.3 前臺首頁的布局 應用<jsp:include>動作元素包含文件的方法進行前臺首頁布局的代碼如下:
43、<% page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %><jsp:include page="head_top.jsp" flush="true" /><table width="800" border="0" align="center" cel
44、lpadding="0" cellspacing="0"><tr><td width="74"><img src="images/head_06.jpg" width="74" height="846"></td><td height="846" valign="top" background="images/head_07.jpg"><!-登錄
45、用戶部分-><br><jsp:include page="head_Consumer.jsp" flush="true" /> <td width="10" background="images/head_07.jpg"><img src="images/head_08.jpg" width="13" height="846"></td><td width="
46、;184" valign="top"><jsp:include page="head_right.jsp" flush="true" /><jsp:include page="head_down.jsp" flush="true" />7 用戶登錄模塊設計7.1 用戶登錄模塊概述用戶登錄模塊具有用戶登錄功能。博客網運行第一個頁面便是用戶登錄頁面,用戶登錄后,可以查看博主所發表的文章。在用戶登錄頁面中,在用戶名和密碼文本框中輸入用戶名和密碼后,單擊登錄按鈕,
47、系統驗證成功后,用戶將以會員的身份進入博客網首頁,之后在網站中可以隨意查看博主發表的文章。如果登錄的用戶是博主本人,在博主信息顯示區域中,則出現“進入后臺”超鏈接,博主可以直接單擊此超連接,進入博客網的后臺進行管理。用戶登錄模塊的框架如下圖所示。開始用戶登錄是否通過驗證不顯示“進入后臺”超鏈接及其其他相關信息顯示“進入后臺”超鏈接及其其他相關信息否是圖7.1 用戶登錄模塊的框架7.2 用戶登錄模塊技術分析在用戶登錄模塊中,涉及的數據表是用戶信息表(tb_sonsumer),在用戶信息表中保存著用戶名和密碼等信息,根據這些信息來創建用戶登錄模塊的form,名稱為Consumer。Servlet的
48、核心在于它的HttpServlet,一般在Servlet里面做頁面的邏輯跳轉工作。用戶登錄模塊的Servlet實現類繼承了HttpServlet類,在該類中首先設置用戶登錄模塊的ConsumerDao類的對象,該對象在每個具體的方法中實例化,doGet()在Servlet中自動被調用。該方法本身沒有具體事務,它是根據通過HttpServlet的getParameter()方法獲取的method 參數值執行相應的方法的。在web.xml文件中配置用戶登錄的Servlet的具體代碼如下:<servlet> <description>This is the descripti
49、on of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>ConsumerServlet</servlet-name> <servlet-class>com.wy.webiter.ConsumerServlet</servlet-class> </servlet>7.3 用戶登錄模塊的實現過程用戶登錄模塊是
50、博客網最先使用的模塊,是系統的入口。在用戶登錄頁面中,用戶可以通過輸入正確的用戶名和密碼進入到系統,當用戶沒有輸入用戶名和密碼時,系統會通過JavaScript腳步進行判斷,并予以提示信息。 設計用戶登錄頁面用戶登錄頁面主要用于收集用戶輸入的信息及通過自定義JavaScript函數判斷輸入信息是否為空,該頁面所涉及的表單元素如下圖所示。名 稱元 素 類 型重 要 類 型含 義form1formmethod=”post”action=”ComsuerServlet?method=0&sign=0”onSubmit=”return userCheck()”用戶登錄的表單元素accountt
51、extclass=”inputinput” id=”account” size=”30”用戶名passwordpasswordclass=”inputinput” id=”account” size=”30”密碼imagesrc=”images/land.gif”登錄按鈕 編寫用戶登錄的Servlet實現類在用戶登錄頁面的用戶名和密碼文本框中輸入正確的用戶名和密碼后,單擊登錄按鈕,網頁會訪問一個URL,即ConsumerServlet?method=0&sign=0。從該URL地址中可以知道用戶登錄模塊所涉及的method參數值為0,也就是當method=0時,會調用驗證用戶身份的方法
52、check-Consumer()。在驗證用戶身份的方法check-Consumer()中,首先需要將用戶名的表單信息賦值給新的String類型對象,將這個對象做參數,執行ConsumerDao類中的getConsumerForm()方法并將該方法的返回值賦給ConsumerForm類的對象,判斷這個對象是否為空值,如果該對象為空值,則說明該用戶輸入的用戶名不存在,如果該對象不為空值,則將這個對象中的密碼值取出與密碼表單數據比較,如果比較值為true,則說明用戶輸入的驗證信息正確,如果比較值為false,則說明用戶輸入的驗證信息不正確。 編寫用戶登錄的ConsumerDao類的方法用戶登錄使用的
53、ConsumerDao類的方法是getConsumerForm()方法。在getConsumerForm()中,將以用戶名表單信息為參數,以用戶信息表中的用戶名為條件,自行查詢的SQL語句,并將查詢結果通過return關鍵字返回,如果沒有查詢結果,則返回空對象。 判斷登錄用戶是否為博主普通用戶身份驗證成功后,在博客網的首頁將顯示該用戶的信息;如果博主登錄后,則在博主顯示區域中將顯示“進入后臺”超鏈接。當用戶登錄成功后,用戶對應的form信息將保存在session中,程序員將根據保存在session中的form信息和用戶登錄級別信息(manageLevel)來判斷登錄的用戶是否為博主。8 文章查
54、詢模塊8.1文章查詢模塊概述文章查詢模塊的主要功能時用戶在瀏覽系統時查看發表的文章列表及文章詳細內容,包括文章的題目、發表時間、該文章的瀏覽次數等,并可以針對發表文章進行恢復。這是博客最具代表性的特點之一。它給博主和用戶提供展示文筆的平臺,增加博主與用戶、用戶與用戶之間的交流,能夠使博客系統內的氣氛更加活躍,內容更加豐富。前臺文章查詢模塊主要包括所有文章查詢、文章分類查詢、文章內容詳細查詢及文章回復功能。前臺文章查詢模塊如下圖所示。前臺文章查詢模塊文章分類or頁查詢所有文章查詢文章詳細查詢前臺文章回復模塊圖8.1 前臺文章查詢模塊的框架圖8.2 文章分類查詢實現過程在本系統中,前臺文章查詢模塊
55、主要應用的技術是JavaBean技術,應用<jsp:useBean>動作標簽創建并使用一個JavaBean。<jsp:useBean>執行方式非常靈活,如果執行到<jsp:useBean>,將去尋找是否存在相同ID和scope。當用戶登錄后,在博客網的首頁右側操作區中單擊文章超鏈接,網頁會自動彈出一個URL,即head_Article.jsp,將分類顯示文章的信息。在前臺分類顯示文章信息頁面中,首先通過JavaBean定義分類操作的類(MyPagination),之后調用ArticleDao類中的queryArticle()方法查詢所有的文章信息,最后將查詢
56、的結果顯示在頁面中。通過JavaBean技術調用ArticleDao類中的queryArticle()方法實現所有文章查詢的功能。在queryArticle()實現方法中,typeId為其參數,代表文章類型的標號,當typeId屬性為null時,將執行查詢全部文章信息的SQL語句;當typeId的屬性部位null時,將執行按文章類型查詢的SQL語句。8.3 文章詳細查詢的實現過程主頁面的顯示文章內容僅是其中的一部分,如果用戶查詢文章的全部信息,可以單擊相應的閱讀超鏈接,網頁會自動淡出一個URL,頁面為head_ArticleForm.jsp?id=1。其中,id屬性為文章的自動編號,這個編號是唯一的,因此查詢文章信息也是唯一的。head_ArticleForm.jsp頁將根據這個id值顯示所對應的文章信息。首先通過request對像中的getParameter()方法獲取要查詢的文章編號,之后設置<jsp:useBean>動作標簽,該標簽主要設定ArticleDao類實例對象,最后將執行ArticleDao類中的queryArticleForm()方法,實現文章信息的查詢功能。9 后臺設計9.1 后面頁面
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權】 IEC 60684-2:2025 EN-FR Flexible insulating sleeving - Part 2: Methods of test
- 【正版授權】 IEC 63522-20:2025 EN-FR Electrical relays – Tests and measurements - Part 20: Mechanical endurance
- 2025年學前教育與兒童發展考試試卷及答案
- 2025年全球化與地方文化保護考試題及答案
- 2025年按摩與推拿專業考試題及答案
- 2025年茶藝師職業能力測試試卷及答案
- 萬安保安考試題及答案
- 梯級城市基礎設施優化補充協議
- 商住兩用房產分割與資產重組投資協議
- 網絡零售商網店經營權保留及數據分析服務協議
- 2024年廣東省廣州南沙經濟技術開發區商務局招聘編外1人歷年(高頻重點復習提升訓練)共500題附帶答案詳解
- 中國醫院質量安全管理第 2-5 部分:患者服務 預約服務
- NB-T31056-2014風力發電機組接地技術規范
- 羅蘭貝格-上海浦東機場臨空產業規劃及開發實施方案-201509
- 《外國詩二首》課件-部編版語文七年級下冊
- 6.2《青紗帳-甘蔗林》-【中職專用】高一語文課件(高教版2023·基礎模塊下冊)
- DL-T-5743-2016水電水利工程土木合成材料施工規范
- DL5190.5-2019電力建設施工技術規范第5部分:管道及系統
- 湖南省雅禮中學高三4月考-新高考數學試題試卷
- 銀川市第三中學2025屆高一數學第二學期期末預測試題含解析
- 2024火電機組金屬監督工作任務表
評論
0/150
提交評論