久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

基于java的博客網站設計與開發畢業論文

時間:2019-05-15 11:07:39下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《基于java的博客網站設計與開發畢業論文》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《基于java的博客網站設計與開發畢業論文》。

第一篇:基于java的博客網站設計與開發畢業論文

編號

中央廣播電視大學計算機與科學技術專業

學生姓名:黃志剛

學 號:14360012501

專 業:計算機與科學技術

班 級:

指導教師:李慧

2016年04月

目錄

目錄

I V VII VIII 1 1 1 2 2 2 3 3 3 4 5 6 6 7 摘要

前言

文獻綜述

第1章 緒論

第1節 第2節 背景

研究的目的與意義

第2章 設計簡介及設計方案

第1節 第2節 第3節 設計原則 運行架構 設計方案

第3章 相關技術介紹

第1節 第2節 第3節 MVC簡介

Spring 的起源和背景 Hibernate 概述

第4章 需求分析

第1節 第2節 注冊博友 普通用戶

I 9 10 10 11 11 12 12 14 15 15 15 15 17 18 20 第5章 系統架構設計

第1節 第2節 系統架構說明: Hibernate層

5.2.1 設計持久化對象(PO)5.2.2 實現DAO 層 5.2.3 DAO組件的定義 5.2.4 實現DAO組件 5.2.5 部署DAO 層

第3節 第4節 實現Service 層 MVC 層實現

5.4.1 1.Model 部分 5.4.2 View 部分

5.4.3 3.Controller部分 5.4.4 采用Ajax加深用戶體驗

設計結果及對設計結果的分析

全文總結

致謝21

目錄

目錄

I V VII 摘要

前言

II

VIII 1 1 1 2 2 2 3 3 3 4 5 6 6 7 9 9 10 10 11 11 12 文獻綜述

第1章 緒論

第1節 第2節 背景

研究的目的與意義

第2章 設計簡介及設計方案

第1節 第2節 第3節 設計原則 運行架構 設計方案

第3章 相關技術介紹

第1節 第2節 第3節 MVC簡介

Spring 的起源和背景 Hibernate 概述

第4章 需求分析

第1節 第2節 注冊博友 普通用戶

第5章 系統架構設計

第1節 第2節 系統架構說明: Hibernate層

5.2.1 設計持久化對象(PO)5.2.2 實現DAO 層 5.2.3 DAO組件的定義 5.2.4 實現DAO組件

III 14 15 15 15 15 17 18 20 5.2.5 部署DAO 層

第3節 第4節 實現Service 層 MVC 層實現

5.4.1 1.Model 部分 5.4.2 View 部分

5.4.3 3.Controller部分 5.4.4 采用Ajax加深用戶體驗

設計結果及對設計結果的分析

全文總結

致謝21

IV

摘要

越來越多的網絡用戶希望能夠在網絡平臺上更多地展現自己的個性,更方便地與他人互動交流,擁有一個自己獨立的空間,隨著Web2.0時代的到來,一個新的概念出現了——博客。

首先介紹了博客網站設計的意義和背景,主流博客網站的主要功能。重點介紹了基于J2EE架構的博客網站設計方案,實現的主要功能。

其次,重點講述了博客網站的業務邏輯層和持久層的設計與開發過程中所涉及的技術及開源框架。系統如何以Spring 框架為核心,向下整合Hibernate進行持久層訪問,向上整合Struts 按清晰的MVC 模式控制,怎樣劃分應用的層次。簡述了頁面的請求的分發及流程。

最后對BLOG網站開發中所碰到的一些問題,并針對這些問題提出一些解決方案,最后對系統性能作出一些簡要評估,闡述了一些個人想法。

關鍵詞: 博客,J2EE, Spring,Struts,Hibernate

Abstract More and more network users hope to unfold there characteristics in the network platform and interact with people more conveniently.From the begining of Web 2.0, a new concept of blog emerged.Firstly, we introduce the meaning and background of designing of blog site, and then introduce the main function of the blog site briefly.We also introduce the designing scheme of blog site which is based on the architecture of J2EE.The main function carried out in our blog project is presented.Secondly, we introduce the designing of logic and permanent layer of the blog site.The technic and structure refered in the process of developing are presented.We also depict how to be around with frame of Spring, how to work with Hibernate to visit permanent layer below, how to work with Struts to control the clear MVC model up and how to divide layers of application.We also give the brief introduce of distribution and flow of pages’request.Finally, we discuss some problems about the blog realization and show schemes of solving problems.Brief evaluation on the performance of system is given.We give a comment on problems occurring in our work.V

Keywords: blog, J2EE, Spring, Struts, Hibernate

VI

前言

本文介紹了基于輕量級J2EE開發博客網站。同時利用Spring、Struts、Hibernate、Ajax等框架整合開發。本文主要分為七章。

第一章主要介紹了進行博客網站的背景及意義。第二章對博客網站設計方案做了簡要介紹。第三章介紹了博客網站的需求分析。

第四章詳細介紹了系統的架構設計,并詳細講述了通過Spring 框架,向下整合Hibernate 進行持久層訪問,利用DAO模式隔離業務邏輯層與具體持久層,向上整合Struts按清晰的MVC模式構建系統。

第五章簡單講述了系統設計時遇到的問題及解決方案,另外對系統的性能作了一個簡要的評論及設計結果和設計結果分析。

第六章對全文所使用的方法、結果以及目的和意義做了全面的總結,展望java技術在Web上的一些應用。

本文的完成得到了戴祖旭博士的幫助和指導,在此向他表示衷心的感謝。

VII

文獻綜述

Hibernate相關文獻介紹

文獻錯誤!未找到引用源。圍繞著ORM,講述了對象映射配置,對象關系映射、集合映射、對象的操作和查詢。及詳細如何利用Hibernate 構建DAO層,怎樣根據PO的關系。面向對象操作數據庫,怎么配置數據庫映射文件。Java基礎文獻概述

文獻錯誤!未找到引用源。講述了java基礎知識,如控制流程、初始化和清理、接口和內部類等。并講述如何利用對象提供服務,并通過接口隱藏具體實現。J2EE相關文獻概述

文獻錯誤!未找到引用源。論述了在J2EE平臺中在各層經常遇到的問題,該文獻詳細講解如何解決J2EE平臺所遇到的問題。

文獻錯誤!未找到引用源。將述了如何構建輕量級的J2EE企業應用程序,并講解MVC在Web中應用,怎么將請求控制并轉發,Struts標簽。

文獻錯誤!未找到引用源。詳細講述了Spring 的控制反轉、AOP編程思想。及其怎么利用Spring整合Hibernate,利用Spring提供IOC容器管理DAO組件,利用事務管理SessionFactory。

文獻錯誤!未找到引用源。以8 個小型J2EE項目講述怎么利用Struts、Hibernate、Spring等框架構建J2EE Web應用。并且也詳細講述各個框架的在項目中應用。文獻錯誤!未找到引用源。這本書是有3個具有15以上的開發經驗的企業java架構師或首席架構師所著。本書講述了J2EE的3層所涉及的核心模式。通過通用模式可以更快構建穩定的J2EE應用。

文獻錯誤!未找到引用源。這本書詳細講述了架構設計的方法。架構設計應該包括那些方面。

怎么應用架構模式。Ajax技術文獻概述

文獻錯誤!未找到引用源。講述了JavaScript、CSS、DOM、XML的在Ajax上一些應用。如何利用這四個技術實現html片段的替換。并結合一些實例講述如何利用Ajax 實現友好用戶體驗。Eclipse文獻概述

文獻錯誤!未找到引用源。講述了如何利用Eclipse開發java應用程序。該文獻主要講如何構建java開發環境,如何安裝Eclipse插件。并利用Eclipse自動生成一些代碼。Jsp文獻概述

文獻錯誤!未找到引用源。圍繞著實例講述Jsp的各種技術。比如Servlet,JavaBean 在Jsp中的應用。本文中的圖片播放器和音頻播放器是基于這書上實例改進的。

VIII

第1章 緒論

第1節 背景

商業網站設計的主要目的一般是通過網站的推廣,實現更多網絡用戶的關注,從而吸引更多的企業用戶投入更多的宣傳經費到網站上。

長期的戰略目標,商業網站不僅是公共產品信息和服務的推廣,它還是將買家與賣家、廠商和合作伙伴緊密結合的平臺,借助這些商業網站可以消除企業與客戶之間時間與空間帶來的障礙。

Blog博客網站致力于為廣大博客提供優質博客頁面服務的商業網站。每個博客都希望借助自己的博客頁面宣傳自己,而博客數量越多,網站的點擊率越高就越能夠吸引廣大的企業客戶選擇該商業網站作為媒介,將自己的產品展現給客戶。可以說,對這些博客網站而言:為博客提供良好的服務就意味著為網站帶來更多的商業客戶。因此,在具體設計實現該博客網站時,主要考慮了主流博客網站的幾個主要功能。

1.博客的注冊、登錄驗證功能

2.網絡用戶通過關鍵字搜索博文功能 3.最熱門博客頁面推薦瀏覽

4.文章詳細內容及相關評論顯示 5.博客頁面訪問量統計

6.博客個人文章管理維護功能

7.博客個人文章分類管理維護功能 8.博客個人友情鏈接維護功能

9.博客個人基本信息管理維護功能 10.博客圖片上傳及個人相冊管理

11.網絡用戶寫留言,博主查看留言。第2節 研究的目的與意義

Blog記載了日常發生的事情和自己的興趣愛好,把自己的思想和知識和他人分享、交流,同時又通過“六度空間”結識了更多志趣相投的朋友;而越來越多專業知識的 Blog 的出現,讓我們看到了 Blog 更多所蘊涵的巨大的信息價值:不同的 Blog 選擇不同的內容,收集和整理成為很多人關注的專業 Blog ——目前越來越多的人獲取信息的來源是一些固定的 Blog。隨著博客人數的增加,Blog 作為一種新的生活方式、新的工作方式、新的學習方式已經被越來越多的人所接受,并且在改變傳統的網絡和社會結構:網絡信息不再是虛假不可驗證的,交流和溝通更有明確的選擇和方向性,單一的思想和群體的智慧結合變的更加有效,個人出版變成人人都可以實現的夢想—— Blog 正在影響和改變著我們的生活。

第2章 設計簡介及設計方案

在整個blog進行開發之前,要確定出整個項目的整體架構,包括系統的選型、運行環境的確定及系統結構設計。下面對這進行詳細介紹。第1節 設計原則

在進行軟件系統開發的最初環節,一般都需要進行系統的選型,即根據系統功能的實際需求,選擇合適的開發工具及軟件架構。

blog對系統的可靠性、穩定性有比較高的要求。本系統設計時,比較主流的B/S設計有基于JSP、ASP、PHP、CGI及J2EE等模式。相比較而言PHP的功能相對簡單,不適合做大程序;而CGI效率相對較低,所以也不考慮。由于J2EE的開源的框架中提供了MVC模式實現框架Struts、對象關系模型中的Hibernate 的框架及擁有事務管理和依賴注入的Spring。利用現存框架可以更快開發系統。所以選擇Java技術作為blog 的開發工具。第2節 運行架構

為了增加系統的吞吐量,提高并發處理客戶請求數量,系統采用了IBM服務器作為主機。在數據庫處理方面,不需要在數據層借助存儲過程及數據庫服務器端函數封裝過多的業務邏輯,因此數據庫系統采用相對精巧的MySQL錯誤!未找到引用源。

該在線博客系統服務器端如果需要布置到其他主機上,則該主機必備條件如下:

1.服務器端操作系統:獨立于操作系統的跨平臺系統,客戶端MicroSoft Windows 2000及以上;

2.數據庫:MySQL 5.0.27版本; 3.Web服務器:Tomcat 5.5及以上版本,配合MVC設計模式及 Hibernate開發架構; 4.客戶端運行環境:能運行IE 5以上或Netscape 5以上瀏覽器的操作系統,配合

使用Ajax技術;

5.客戶端運行工具:目前的系統采用瀏覽器作為客戶端,為了支持Ajax開發框架,應該選擇使用IE 5以上版本瀏覽器。

本網站以NT為Web平臺,JSP+Ajax+Servlet+JavaBean+Hibernate為網站實現技術,建立基于MySQL數據庫系統的核心動態網頁,實現博客網站前臺及博客個人維護管理等功能模塊。第3節 設計方案

為了在更短的時間內實現博客網站,我們采用J2EE架構。集成開發環境我采用對于插件即插即用的Eclipse,JSP運行環境我們采用Tomcat應用服務器,數據庫管理系統我們采用的是MYSQL,博客網站主要實現注冊用戶可以在 服務器上開辟自己的空間,也可以發布消息,上傳文件,回復消息,從服務器發送客戶端的數據應用XML來封裝.本系統采用的是經典的J2EE三層結構,分為表現層、中間層(業務邏輯層)和數據服務層。三層體系將業務規則、數據訪問及合法性校驗等工作放在中間層處理。客戶端不直接與數據庫交互,而是通過組件與中間層建立連接,再由中間層與數據庫交互。并利用Spring、Hibernate、Spring等輕量級框架實現三層結構的設計。即采用的是貧血模式,業務邏輯對象正面封裝了全部的業務邏輯方法,Web 層僅與業務邏輯組件交互即可,無須訪問底層的DAO 對象。Spring 的聲明式事務管理將負責業務邏輯對象方法的事務性。在貧血模式下,其分層非常清晰。Domain Object 并不具備領域對象的業務邏輯功能,僅僅是ORM 框架持久化所需的POJO,僅是數據載體。貧血模型容易理解,開發便捷,但嚴重背離了面向對象的設計思想,所有的Domain Object 并不是完整的Java 對象。

第3章 相關技術介紹

第1節 MVC簡介

MVC 是Model、View、Controller 三個詞的縮寫,三個詞分別代表應用的三個組成部分:模型、視圖與控制器。三個部分以最少的稿合,協同工作,從而提高應用的可擴展性及可維護性。起初,MVC 模式是針對相同的數據需要不同顯示的應用而設計的,其整體的效果如圖1 所示:

圖1 MVC結構

在經典的MVC 模式中,事件由控制器處理,控制器根據事件的類型改變模型或視圖,反之亦然。具體地說,模型維護一個視圖列表,這些視圖為獲得模型變化通知,通常采用觀察者模式登記給模型。當模型發生改變時,模型向所有登記過的視圖發送通知:接下來,視圖從對應的模型中獲得信息,然后更新自己。概括起來,MVC 有如下特點。.多個視圖可以對應一個模型。按MVC 設計模式,一個模型對應多個視圖,可以減少代碼的復制及代碼的維護量,一旦模型發生改變,也易于維護。

1.模型返回的數據與顯示邏輯分離。模型數據可以應用任何的顯示技術,例如使用JSP 頁面、Velocity 模板或者直接產生Excel 文檔等。

2.應用被分隔為三層,降低了各層之間的稿合,提供了應用的可擴展性。

3.控制層的概念也很有效,由于它把不同的模型和不同的視圖組合在一起,完成不同的請求。因此,控制層可以說是包含了用戶請求權限的概念。

4.MVC 更符合軟件工程化管理的精神。不同的層各司其職,每一層的組件具有相同的特征,有利于通過工程化和工具化產生管理程序代碼。第2節 Spring 的起源和背景

2002 年wrox 出版了《Expert one on one J2EE design and development》 一書。該書的作者是Rod Johnson。在書中,Johnson 對傳統的J2EE 架構提出深層次的思考和質疑。并提出J2EE 的實用主義思想。2003 年,J2EE 領域出現一個新的框架: Spring,該框架同樣出自Johnson 之手。事實上,Spring 框架是?Expert one on one J2EE design and development? 一書中思想的全面體現和完善,Spring 對實用主義J2EE 思想進一步改造和擴充,使其發展成更開放、清晰、全面及高效的開發框架。一經推出,就得到眾多開發者的擁戴。傳統J2EE 應用的開發效率低,應用服務器廠商對各種技術的支持并沒有真正統一,導致J2EE 的應用并沒有真正實現Write Once 及Run Anywhere 的承諾。Spring 作為開源的中間件,獨立于各種應用服務器,甚至無須應用服務器的支持,也能提供應用服務器的功能,如聲明式事務等。Spring 致力于J2EE 應用的各層的解決方案,而不是僅僅專注于某一層的方案。可以說Spring 是企業應用開發的“一站式”選擇,并貫穿表現層、業務層及持久層。然而,Spring 并不想取代那些已有的框架,而與它們無縫地整合。總結起來,Spring 有如下優點: 1.低侵入式設計,代碼污染極低。

2.獨立于各種應用服務器,可以真正實現Write Once, Run Anywhere 的承諾。3.Spring 的DI 機制降低了業務對象替換的復雜性。

4.Spring 并不完全依賴于Spring,開發者可自由選用Spring 框架的部分或全部。

第3節 Hibernate 概述

Hibernate 是目前最流行的ORM 框架,其采用非常優雅的方式將SQL 操作完全包裝成對象化的操作。其作者Gavin King 在持久層設計上極富經驗,采用非常少的代碼實現了整個框架,同時完全開放源代碼,即使偶爾遇到無法理解的情況,也可以參照源代碼來理解其在持久層上靈巧而智能的設計。目前Hibernate 在國內的開發人員相當多,Hibernate 的文檔也非常豐富,這些都為學習Hiberante 鋪平了道路,因而Hibernate 的學習相對簡單一些。下面通過對比來了解Hibernate 和傳統JDBC 操作數據庫持久層之間的差異。

第4章 需求分析

Blog網站主要是實現注冊用戶登錄、管理相關信息、博文及相關評論、查看留言、友情鏈接、及圖片的上傳和圖像的播放而為上網用戶提供按博文主題搜索,查看注冊用戶的博文及提出相關評論,并為注冊用戶寫留言,游覽注冊用戶的相冊、注冊等功能的系統。下面就以兩種不同的用戶來分析博客網站的需求。第1節 注冊博友

首先必須在博客首頁中登錄填寫用戶名和密碼,這樣才能執行一些相關操作,不然就是普通用戶只能查看一些信息,而不能發表博文。可以在管理頁面上添加博文的分類,可以上傳圖片和游覽自己的相冊,在上傳過程中可以將一張圖片定義為自己的簽名,在個人管理頁面中注冊用戶還可以修改自己的個人信息。博文管理,友情鏈接管理及博文分類管理,用例圖2。

圖2 博客管理頁面的用例圖

在博客主界面中發表博文時可以選擇博文類型,這樣可以更好管理自己的博文。并查看和刪除網友對自己的博文的一些評論、查看和刪除網友留下的一些留言,提供與其他網友交流的空間。更好交流,在信息時代人們通過個人空間溝通也用來但不能在自己的博客主頁面中提交評論和留言。這樣在本系統中就可以為博友提供更多的個人色彩。在管理頁面中添加和刪除友情連接。這樣博友可以在自己空間中快速定位自己的關心的網站。這樣還可以讓網友看到自己的一些信息。友情鏈接及網頁訪問量統計顯示:在博客的個人頁面中還提供了推薦給普通網絡用戶的相關友情鏈接,此外,對個人頁面的訪問量也在隨時進行統計,并在個人頁面中進行直觀的顯示。博客主頁面的用例圖如圖3所示:

圖3 博客主頁面的用例圖

第2節 普通用戶

在博客注冊頁面注冊成為博客的注冊用戶,才可以擁有自己獨立的空間,進入某一博客頁面查看相關文章信息時,可以隨時對自己所感興趣的文章發表評論,同時也可以查看到其他人針對該博文的評論。普通用戶在閱讀博文時可以在最后留下自己的一些評論。他也可以留下更多的信息。這樣他可以寫留言。這樣他留下的信息就更快地被博友所看到。普通用戶進入博友的用例圖如圖4所示:

圖4上網博友在博客主頁面的用例圖

普通網友可以搜索自己關心的一些數據。并且在搜索結果中提供在結果范圍內再次搜索。這樣就可以將范圍縮小。首頁向注冊用戶提供登陸模塊,注冊用戶在博客網站首頁跟上網網友一樣可以查看博客和博文推薦。上網網友可以注冊成為博客用戶,擁有自己獨立的空

間。這一模塊的用例圖如圖5所示:

圖5 博客首頁的用例圖

第5章 系統架構設計

本系統采用嚴格的J2 EE 應用結構,主要有如下幾個分層。

1.表現層:由JSP 頁面組成。2.MVC 層:使用Struts框架。

3.業務邏輯層:主要由Spring loC 容器管理的業務邏輯組件組成。

4.DAO 層:由7 個DAO 組件組成,實現類必須繼承Spring提供的HibernateDaoSupport。

5.Hibernate 持久層:由7 個PO 組成,并在Hibernate Session 管理下,完成數據庫訪問。

6.數據庫服務層:使用MySQL 數據庫存儲持久化數據。系統的具體分層如圖5 所示。

圖6 系統結構圖

在圖6 黑色大方框內的MVC 控制層、Service 層及DAO 組件層的組件,都由Spring IOC 容器負責生成,并管理組件的實例(實例必須是單身模式的,本系統中的bean基本上是單身的)。

第1節 系統架構說明:

本系統不僅嚴格按MVC 模式設計,還按J2 EE 分層設計,將中間層嚴格分成業務邏輯層、DAO 層及數據持久層等。MVC 層的控制器絕對禁止持久層訪問,甚至不參與業務邏輯的實現。表現層采用傳統JSP 技術。

本系統采用的是典型的J2EE 三層結構,分為表現層、中間層(業務邏輯層)和數據服務

層。三層體系將業務規則、數據訪問及合法性校驗等工作放在中間層處理。客戶端不直接與數據庫交互,而是通過組件與中間層建立連接,再由中間層與數據庫交互。Jsp廣泛的應用和穩定的表現,為其作為表現層技術打下了堅實的基礎。中間層采用的是流行的Spring+Hibernate,為了將控制層與業務邏輯層分離,又細分為以下幾種。

Web 層,就是MVC 模式里面的C,負責邏輯層和表現層的交互。調用業務邏輯層,并將業務數據返回給表現層作組織表現,該系統的MVC采用Struts框架。

Service 層(就是業務邏輯層),負責實現業務邏輯。業務邏輯層以DAO 層為基礎,通過對DAO 組件的正面模式包裝,完成系統所要求的業務邏輯。

DAO 層,負責與持久化對象交互。該層封裝了數據的增、刪、查、改的操作。

PO,持久化對象。通過實體關系映射工具將關系型數據庫的數據映射成對象,很方便地實現以面向對象方式操作數據庫,該系統采用Hibernate 作為ORM 框架。Spring 的作用貫穿了整個中間層,將Web 層、Service 層、DAO 層及PO 無縫整合,其數據服務層用來存放數據。

第2節 Hibernate層

通過使用Hibernate 持久層,可以避免使用傳統的JDBC 操作數據庫,對JDBC近一步包裝,從而更好地使用面向對象的方式來操作數據庫。保證了整個軟件開發過程以面向對象的方式進行,即面向對象分析、設計及編程,透過Hibernte 對PO對象持久化操作,不管插入還是查詢都是通過PO。5.2.1 設計持久化對象(PO)面向對象分析,是指根據系統需求提取應用中的對象,將這些對象抽象成類,再抽取出需要持久化保存的類,這些需要持久化保存的類就是持久化對象(PO)。該系統并沒有預先設計數據庫,而是完全從面向對象分析開始,設計了7 個持久化類。本系統一共設計了如下7 個PO。

1.Blog: 對應博客網友的一些基本信息,必如id、username、password、sex、picturename、name、address、uid、subject。還包括一些集合,博友的博文(Articles)、圖片(Pictures)、留言(Messages),這樣在系統中我們可以隨時通過getXxx()訪問博客的一些屬性就不用編寫sql語句來訪問博友的些屬性,2.Picture: 對應博友的圖片,包含name、blog,filename,這樣我們可以將圖片 的路徑名保存到數據庫中,在根據路徑名訪問博友上傳的圖片,就不用用到數據庫中的Blob類型,將圖片數據格式轉來轉去,不過這樣服務器直接存儲客戶的圖片。

3.Messages: 對應網友留下的留言,屬性有id、username、Blog、注冊用戶可以查看別人寫的留言,但不能在自己的空間內留言。

4.FeedBack: 對應回復,包括id、article、username、content。他對于一篇博文,是網友閱讀博文后對博文的評論。該評論無論是誰都可以看到。

5.Sort: 對應博文分類屬性有Id、Blog、name、Articles,注冊用戶可以在自己的空間定義一些分類,這樣可以更好管理自己的博文,一個分類對應一個Blog,一個分類可能有很多分類。

6.Article: 博客系統的核心 對應有 title,Id、blog、content、sort,一個博文屬于一種分類,可以有很多回復,7.Links: 對應有情連接,包括id、url、name、blog博友通過添加有情連接可以在自己的空間中提供快速的自己關心的網站。

客觀世界中的對象不是孤立存在的,以上7 個PO 也不是孤立存在的,它們之間存在復雜的關聯關系。分析關聯關系也是面向對象分析的必要步驟,這7 個PO 的關系如下。Blog除了FeedBack外,與另外5個都是1-N的關系,在blog類里對應有個集合。比如messages,是SetArticle 和FeedBack之間存在I-N 的關系,每篇博文可以被很多人評論。Article和sort 之間存在N-1 的關系,即每篇博文只能屬于一種分類中,并且只屬于一個博友,在Hibernate框架中它提供了以xml文件形式出現的映射文件,完成從PO到數據庫表映射后,即完成面向對象的程序設計語言與關系數據庫的映射。以面向對象的方式操作關系數據庫。5.2.2 實現DAO 層

在Hibernate 持久層之上,可使用DAO 組件再次封裝數據庫操作。通過DAO 層,可以讓業務邏輯層與具體持久層技術分離,一旦需要更換持久層技術時,業務邏輯層組件不需要任何改變。因此,使用DAO 組件,即意味著引入DAO 模式,使每個DAO 組件包含了數據庫的訪問邏輯:每個DAO 組件可對一個數據庫表完成基本的CRUD 等操作。DAO 模式的實現至少需要如下三個部分。1.DAO 工廠類。2.DAO 接口。

3.DAO 接口的實現類。DAO 模式是一種更符合軟件工程的開發方式,使用DAO 模式有如下理由。

1)DAO 模式抽象出數據訪問方式,業務邏輯組件無須理會底層的數據庫 訪問,而只專注于業務邏輯的實現。

2)DAO 將數據訪問集中在獨立的一層,所有的數據訪問都由DAO 對象完成,這層獨立的DAO 分離了數據訪問的實現與其他業務邏輯,使得系統更具可維護性。

3)DAO 還有助于提升系統的可移植性。獨立的DAO 層使得系統能在不同的數據庫之間輕易切換,底層的數據庫實現對于業務邏輯組件是透明的。數據庫移植時僅僅影響DAO 層,不同數據庫的切換不會影響業務邏輯組件,因此提高了系統的可復用性。

對于不同的持久層技術,Spring 的DAO 提供一個DAO 模板,將通用的操作放在模板里完成,而對于特定的操作,則通過回調接口完成。Spring 為Hibernate 提供的DAO 支持類是: HibernateDaoSupport,5.2.3 DAO組件的定義

DAO 組件提供了各持久化對象的基本的CRUD 操作。而在DAO 接口里則對DAO組件包含的各種CRUD 方法提供了聲明,但有一些IDE 工具也可以生成基本的CRUD方法。使用DAO 接口的原因是:避免業務邏輯組件與特定的DAO組件藕合。由于DAO 組件中的方法不是開始

就設計出來的,其中的很多方法可能會隨著業務邏輯的需求而增加,但以下幾個方法是通用 的。

? get: 根據主鍵加載持久化實例。

? saveor update: 保存或更新持久化實例。? remove: 刪除持久化實例。

上面涉及了7個PO,這樣我們必須設計7個對應的PODao 7個Dao必須繼承BaseDao 這個BaseDao 有對接口的一些基本的CURD操作。7個Dao 如下。LinksDao,BlogDao、FeedBackDao、ArticleDao、MessageDao、SortDao、PictureDao。這7個Dao 分別封裝對自己的持久化對象的一些操作。5.2.4 實現DAO組件

借助于Spring的DAO支持,可以很方便地實現DAO類。Spring 為Hibernate 的整合提供了很好的支持,Spring 的DAO 支持類是:HiberanteDaoSupport,該類只需要傳入一個SessionFactory 引用,即可得到一個HibernateTemplate 實例,該實例功能非常強大,數據庫的大部分操作也很容易實現。所有的DAO 類都繼承HibernateDaoSupport,并實現相應的DAO 接口。而業務邏輯對象則面向接口編程,無須關心DAO 的實現細節。通過這種方式,可以讓應用在不同的持久化技術之間切換。LinksDaoHiberante,BlogDaoHiberante、FeedBackDaoHiberante、ArticleDaoHiberante、MessageDaoHiberante、SortDaoHiberante、PictureDaoHiberante分別是LinksDao,BlogDao、FeedBackDao、ArticleDao、MessageDao、SortDao、PictureDao的實現類,并繼承HibernateDaoSupport,并通過Spring IoC容器向7個Dao 實現類注入SessionFactroy,在7個Dao 的實現類就可以通過HibernateTemplate對PO持久化操作。并借助于Spring 提供的兩個工具類: HibernateDaoSupport和HibernateTemplate,可以很容易地實現DAO 組件。這種簡單的實現較之傳統的JDBC 持久化訪問,簡直不可同日而語。比如我現在要得到所有Blog對象我只需一句 return getHibernateTemplate().find(“from Blog”);則返回一個Blog對象的列表。5.2.5 部署DAO 層

HibernateDaoSupport類只需要一個SessionFactory 屬性,即可完成數據庫訪問。SessionFactroy創建Session,而數據庫的CRUD操作都是有Session 完成,并將查詢結果保存在一級緩存中,每次用戶提交一次會話,可能需要Session完成一些數據庫的操作而實際的數據庫訪問由模板類HibernateTemplate完成,該模板類提供了大量便捷的方法,簡化了數據庫的訪問。5.2.5.1 DAO 組件運行的基礎

應用的DAO 組件以Hibernate和Spring 為基礎,由Spring 容器負責生成并管理DAO組件。Spring 容器負責為DAO 組件注入其運行所需要的基礎SessionFactory。Spring 為整合Hibernate 提供了大量工具類,通過LocalSessionFactoryBean 類,可以將Hibernate 的SessionFactory 納入其IoC 容器內。使用LocalSessionFactoryBean 配置

SessionFactory之前,必須為其提供對應的數據源,配置代碼如下: 在datasource中配置它的數據庫驅動driverClass,URL,username、password、inPoolSize、maxPoolSize 不管我們采用那種數據庫我就可以在修改dataSource 的一些屬性而不改動程序,將程序和數據庫的耦合降到最低。5.2.5.2 配置DAD 組件

在將dataSource注入到上面簡述的7個Dao中,就可以用HibernateTemplate提供的大量便捷的方法。進一步簡化了持久層討問,其模板的操作大大降低Hibernate 的重復操作;Spring 提供的DAO 支持簡化了DAO 開發;SessionFactory 的依賴注入簡化了Session 的控制等;這些都極大地提高J2EE應用的開發效率。聲明式事務的管理分離了業務邏輯和事務邏輯,將應用從特定的事務邏輯中解料,使應用可以方便地在不同的事務策略之間切換。在所有的ORM 框架中,Sping 對Hibernate 的支持最好。Spring 提供很多IoC 特性的支持,方便地處理大部分典型的Hibernate 整合問題,如SessionFactory 的注入到7個PODao中、HibernateTemplate 的簡化操作及DAO 支持等,然后在7個PODao實現類繼承HibernateDaoSupport,這樣的話,Dao實現類就可以通過HibernateTemplment以面向對象的方式操作數據庫。另外,Spring 還提供了統一的異常體系及聲明式事務管理等。一旦Hibernate 處于Spring 的管理下,Hibernate 所需要的基礎資源,都由Spring 提供注入。Hibernate創建SessionFactory 必需的DataSource,執行持久化必需的Session 及持久層訪問必需的事務控制等,這些原本必須通過代碼控制的邏輯,都將由Spring 接管:DataSource, SessionFactory, TransactionManager 等,都將作為Spring 容器中的beano 將這些bean 放在配置文件中管理,可以提供很好的解耦。Spring 提供了DAO 支持,可以大大簡化DAO 組件的開發。IOC 容器的使用,提供了DAO 組件與業務邏輯組件之間的松糯合。所有的DAO實現Bean 組件,都由容器負責注入到業務邏輯組件中,其業務組件無須關心DAO 組件的實現。面向接口編程及DAO 模式的使用,提高了系統組件之間的解稿,降低了系統重構的成本。通過Spring 整合Hibernate,使持久層的訪問更加容易,使用Spring 管理Hibernate持久層有如下優勢。

1.有效的Session管理: Spring提供了有效、簡單和安全的Hibernate Session處理。2.IoC 容器提高了DAO 組件與業務邏輯層之間的解糯。3.DAO 模式的使用,降低了系統重構的代價。

4.方便的事務管理: Hibernate 的事務管理處理會限制Hibernate 的表現,而 5.Spring的聲明式事務管理力度是方法級。

6.通用的資源管理: Spring 的ApplicationContext 能管理SessionFactory,使得 配置值很容易被管理和修改,無須使用Hibernate 的配置文件。

7.異常包裝:Spring 能夠包裝Hibernate 異常,把它們從checked exception 變為 runtimeException;開發者可選擇在恰當的層處理數據中不可恢復的異常,從而避免煩瑣的catch/throw 及異常聲明。配置DAD 組件所有繼承HibernateDaoSupport 的DAO 實現類,必須為其提供SessionFactory 的引用。由于所有DAO 組件都需要注入SessionFactory 引用,因此可以使用bean 繼承簡化DAO 組件的配置。本應用同樣將所有的DAO 組件配置在單獨的配置文件中daoContext.xml中例如:由于7個Dao 都必須利用IoC容器注入

SessionFactory。我們先配一個dao模板,然后7個Dao就繼承該模板這樣就可以簡化daoContext.xml文件

以blogDAO為例,blogDAO 的以daoTemplate 為父Bean,屬性class是Dao的實現類。

parent=“daoTemplate”/> 其余6個PODAO的配置相似。從上面的配置文件可以看出Spring Ioc容器在Tomcat啟動時就可以向Dao 注入SessionFactory 第3節 實現Service 層

Service 組件采用正面模式封裝多個DAO 組件,DAO 對象與Service 組件之間的關Service 組件需要實現的業務方法主要取決于業務的需要,通常需要在業務組件中包含對應的方法。

業務層組件的實現業務層組件與具體的數據庫訪問技術分離,使所有的數據庫訪問依賴于DAO 組件,定義一個FacadeManagerImpl來包裝7個Dao這樣就可以把邏輯層和Dao分開,達到松散耦合的效果。事務管理將推遲到Service 組件而不是DAO 組件,因為只有對業務邏輯方法添加事務才有實際的意義,對于單個DAO 方法(基本的CRUD 方法)增加事務操作是沒有太大實際意義的。關于事務屬性的配置,本系統使用Spring 提供的TransactionProxyFactoryBean配置事務代理。這樣不必為每個目標對象配置代理bean;避免了目標對象被直接調用。部暑業務層組件單獨配置系統的業務邏輯層,可避免因配置文件過大引起配置文件難以閱讀。將配置文件按層和模塊分開配置,可以提高Spring 配置文件的可讀性和可理解性。在applicationContext.xml 配置文件中配置數據源、事務管理器、業務邏輯組件和事務管理器等bean。配置文件如下:

PROPAGATION_REQUIRED

利用SpringFrameWork的TransactionProxyFactoryBean管理業務組件的事務,對應業務的方法名調用不同的事務管理,所以在業務邏輯組件的方法取名時一定要規范化。txProxyTemplate Bean是個業務組件事務管理的一個代理的父Bean,業務組件代理繼承txProxyTemplate,并注入對應目標業務組件FacadeManagerImpl的在業務控制器根據請求

調用的是一個業務邏輯事務管理的代理,這個代理把請求分發給目標業務邏輯組件去處理,業務邏輯組件根據請求調用相應得Dao去執行。這樣通過FacadeManagerImpl隔離業務邏輯控制器與Dao耦合。業務不需要知道是那個Dao執行的,也不需要Dao的 實現類。我們通過 Spring向FacadeManagerImpl注入7個Dao組件,業務邏輯組件是 面向DAO 接口編程,可讓業務邏輯組件從DAO 組件的實現中分離。因此業務邏輯組件只關心業務邏輯的實現,無須關心數據訪問邏輯的實現。第4節 MVC 層實現

MVC 架構的核心思想是:將程序分成相對獨立,而又能協同工作的三個部分。通過使用MVC 架構,可以降低模塊之間的耦合,提高應用的可擴展性。另外,MVC 的每個組件只關心組件內的邏輯,不應與其他組件的邏輯混合。

本文的MVC采用Struts框架。因為Struts 是最健壯,應用最廣的MVC 框架。系統使用Struts 框架可以提高系統的可控制性,保證了系統的穩定性及可用性。5.4.1 1.Model 部分

模型獨立于數據的顯示,博客中所涉及的Model 都是ActionForm和JavaBean組成。模型返回的數據與顯示邏輯分離。應用被分隔為三層,降低了各層之間的耦合,提高了應用的可擴展性。其中ActionForm用于封裝用戶請求參數,所有的用戶請求參數由系統自動封裝成ActionForm 對象:該對象被ActionServlet轉發給Action;然后Action 根據ActionForm里的請求參數處理用戶請求。比如本系統中的Registfrom封裝了注冊用戶的所有信息,但頁面觸發了.do結尾 的 Http請求。這Struts的核心控制器ActionServlet將填充RegistForm 即調用RegistForm的setXxx。然后RegistAction就可以向業務邏輯組件提交添加RegistForm到博客。這樣就完成用戶的注冊。而JavaBean 則封裝了底層的業務邏輯,包括數據庫訪問等。比如本文中FacadeManagerImpl,通過業務外觀向表現層封裝數據的處理部分,而ActionForm 封裝了請求參數以一個值對象(VO)的形似穿透J2EE的各層。

5.4.2 View 部分

Struts 的View 部分采用JSP 實現。整個應用由客戶端請求驅動,當客戶端請求被ActionServlet 攔截時,ActionServlet根據請求決定是否需要調用Model 處理用戶請求,當用戶請求處理完成后,其處理結果通過JSP 呈現給用戶。通過Jsp將業務邏輯組件返回的值對象格式化,用戶和系統通過View交互的。5.4.3 3.Controller部分

Struts 的Controller由系統核心控制器及業務邏輯控制器。

系統核心控制攔截特定形式的請求,再根據請求調用相應得業務邏輯控制器處理請求,在web.xml中如下定義:

action

com.blog.webapp.util.MyActionServlet

config

/WEB-INF/struts-config.xml

action

*.do 從上面的配置文件可以看出MyActionServlet是MVC的核心控制器,一般采用Struts 的ActionServlet就可以攔截以.do結尾的請求。這里我采用自己定義一個繼承ActionServlet 的控制器,在處理請求時先將request的采用的編碼設為統一的UTF-8,再將請求轉發。ActionServlet是繼承HttpServlet類,因此可以配置成一個標準的Servlet。該控制器負責攔截所有Http請求,然后根據用戶請求決定是否需要調用業務邏輯控制器,如果需要調用業務邏輯控制器,則將請求轉發給Action 處理,否則直接轉向請求的JSP 頁面。業務邏輯控制器負責處理用戶請求,但業務邏輯控制器本身并不具有處理能力,而是調用Model 來完成處理。業務邏輯控制器對應圖3.4中的Action 部分。業務控制層是整個系統的核心部分,它與要實現的業務功能緊密聯系,其中的各個功能模塊各自實現不同的業務功能。該層在接受到來自表現層的請求和相應得數據后。通過對業務數據層的調用來實現具體的業務邏輯。Struts 與Spring 的整合

整合Struts 與Spring 只有一個要求,讓Struts 將攔截到客戶端的請求轉發給Spring容器中的bean。也就是說Struts的業務邏輯控制器可以將從核心控制器轉發過來的請求教給spring IOC容器管理業務邏輯組件處理。本系統使用DelegatingRequestProcessor 的整合策略,使用DelegatingRequestProcessor的整合策略可避免創建過多的本系統采用DelegatingActionProxy,提前將請求轉發到Spring 容器內的bean。為了在應用啟動時由Struts 負責創建Spring 容器,應在struts-config.xml 文件中增加如下配置:

className=“org.springframework.web.struts.ContextLoaderPlugIn”> 通常上面的配置,可讓Spring 容器隨系統啟動時完成初始化。注意在上面的配置中,Spring 的配置文件有一個aciton-servlet.xml,該配置文件中全部是Action。使用DelegatingRequestProcessor 的整合策略時,無須確定action 的實現類。因為DelegatingRequestProcessor直接將請求轉發到Spring 容器內控制器配置為了Struts 與Spring 的整合,Struts 的Action 需要在兩個地方配置。

1.在struts-config且xm1文件中配置對應的Action。

2.在Spring 容器中配置實際的Action,在本文中需要與數據層交流Action必須

繼承BaseAction,而BaseAction 具有一個facadeManger的屬性,本文的請求不直接處理請求,而是交給業務邏輯組件處理。本文通過向Action注入相應得業務邏輯組件facadeManger,Acton 將請求交給它處理。我們在action-servlet.xml 里配置一個

這樣的Bean 然后每個Action將繼承actionTemplate,這樣Action就可以把請求交給facadeManager 處理。而facadeManager是個業務邏輯事務處理的一個代理。這樣通過Spring 將facadeManager注入到業務邏輯控制器中,Action 就可以將請求分發給Spring Ioc容器中目標業務邏輯處理。這樣完成Spring 向上整合Struts。5.4.4 采用Ajax加深用戶體驗

為了加深用戶體驗,本系統在處理請求時還應用到Ajax 技術。頁面提交一個非.do結尾的請求,及觸發了一個文檔模型(DOM)事件。Ajax處理請求如下: 1.DOM事件處理者收到事件發生的消息進行處理,即在JavaScript定義的一個函數處理。2.處理者開始創建一個XMLHttpRequest對象,并根據觸發的事件對XMLHttpRequest 對象設置目標URL、http 方法(GET或POST),在本系統中URL是一個以.do結尾的請求。主要是請求交給業務邏輯組件處理,再注冊服務器的回調函數。3.向服務器分派異步的Http請求。

4.異步的Http請求發出后,游覽器不必等待服務器的響應,用戶還可以與頁面交互。5.Struts 的核心控制攔截http請求,根據請求分派Action去處理請求。

6.Action交給業務邏輯組件處理。Action 接受到業務邏輯組件處理后的結果(一般是VO或VO數組),再將返回的結果序列化成XML作為服務器的響應內容。核心控制器再將響應內容返回給游覽器。

7.調用XMLHttpRequest注冊的回調函數。

8.回調函數解析響應內容XML文檔,在這里我們利用DOM將XML換成html格式數據流。利用DOM改變交互頁面的html節點。達到用戶的需求。

設計結果及對設計結果的分析

本系統是一個小組(3個人)合力設計的。我負責底層即Hibernate Dao層邏輯層,MVC層,PO 和DAO 的設計。故我們采用值對象(VO)作為我們的數據交流載體。我負責VO的處理,而胡愛梅負責數據的顯示即利用Jsp格式化從我設計業務邏輯層返回的數據。陳成負責搜索引擎的設計,他主要用到我設計的PO和外觀組件(Dao封裝體)去查詢實體。在設計的過程中溝通是非常重要的。為了更好地向胡愛梅同學提供更好的服務。在設計邏輯組件返回的數據時我利用VO或XML來封裝。利用DOM將XML格式轉化為html的一格節點或者將VO填充到Jsp的內置對象比如Session。在JavaScript中替換她在Jsp頁面定義的Html 節點。她轉發的請求參數統一利用ActionForm來封裝。而Struts 的核心控制器會幫我們填充。只要Action中將ActionForm換成我在Hibernate層定義的持久化對象PO就行了。再把PO交給facadeManger處理。這樣只要胡愛梅同學知道我設計的PO的結構并將PO填充的Session的那個屬性,她就可以將PO顯示在頁面上。而我只要知道她需要完成那些功能,即知道請求格式(請求的URL,ActionForm)和需要返回何種數據就行了。我便可以設計Action應該如何處理業務邏輯,再考慮將數據格式化成何種XML結構。并舉例如何解析XML數據,或者將PO(List

)填充到Session的屬性告訴她。為了更容易操控數據庫,及格式化查詢結果。我采用Hibernate 的DAO模式,利用Hibernate 查詢的結果本來就是一個對象或對象列表,這就更方便我數據系列化成xml文件了。

本系統基本上可以實現前面需求分析中所要求實現的功能。另外添加了mp3播放和像word軟件一樣的編輯器。

由于第一次利用Java開發程序,第一次開發web應用程序。第一次利用Spring、Hibernate、Struts、Ajax等技術或框架編寫程序,第一次利用MyEclipse 編寫java應用程序、第一次利用MySql作為數據庫系統。種種第一次,使的我在設計本系統困難重重。下面詳細講述我在開發過程中所遇到的問題和我的解決方案。1.到處出現亂碼。為次我必須統一我的編碼方式。

我統一采用UTF-8作為我的編碼方式。并且在ActionServlet將請求轉發的時候先將request的編碼統一設為UTF-8,這樣還是不能將Actionform 的亂碼解決。ActionForm的編碼是ISO-8859-1 為此我可以采用String類提供的構造函數解決。比如ActionFom的String屬性str,我通過new String(ActionForm.getStr().getByte(“ISO-8859-1”),”UTF-8”)可以將ActionForm轉為UTF-8。開始裝MySql 時就要設定 數據庫建表時表所用到的編碼。同樣設為UTF-8,開始我有些Form是采用Struts的DynaActionForm,這樣可以少寫個ActionForm類。但DynaActionForm的編碼不確定。最后我只能將DynaActionForm改為ActionForm的類。對于Struts 不能攔截的請求我們統一采用Actionform一樣的方式。

利用Validator驗證失敗能返回到指定的頁面上去。

input=“/registadmin.jsp ” validate=“true”>

這是struts-config.xml 的一個registAction 的配置文件。RegistForm 經過

Struts 失敗驗證后Struts 不會將請求交給registAction處理直接轉到input定義下的/registadmin.jsp頁面上。而事實并不能轉發,而是轉到一個空白頁面,由于驗證成功可以轉發,所以,其他一切都沒錯,只能是Action 的配置有錯。將input=“/registadmin.jsp ” 改為input=“input”,定義input為一個forward 這樣可以解決問題。在input屬性直接配置他jsp頁面是從書上將的。從這可以得出只有實驗才體驗框架的工作原理。2.圖片上傳

圖片上傳需要解決兩個問題,1圖片以什么形式出現在MySql中?以Blob,還是圖片的一個路徑名。博主將 圖片上傳到服務器,將圖片的路徑名保存到

MySql數據庫中。我采用Struts提供的FileForm 作為上傳圖片ActionForm的文件屬性,在Action處理時通過FileForm.getfile()得到該文件2,怎么產生路徑名?為了不使圖片的名稱一樣我采用以時間和用戶名兩個參數隨機產生一個字符串作為圖片的路徑名。激將上傳圖片統一保存到一個特定的文件夾內。最后在表單中必須有 enctype=“multipart/form-data”這樣可以讓Jsp知道表單含有大量數據要上傳。3.博文字數 多時不能就博文提交。

必須把寫博文的表單中method設為post而不是get,因為get只是在提交請求 時帶些參數而已。

4.一個對象不能同時在兩個Session中,由于我開始沒有將查詢作為一個事務處理。后來將曾經查詢過的對象作一些修改。由于對象的修改是在一個事務管理中。查詢和修改不在一個事務管理中,則修改時事務管理重新開啟一個Session。將對象保存到數據庫中,這時一個對象同時在兩個Session中,JDBC是不支持的。要修改對象,以前需要查詢操作,由于利用了Spring 的事務管理,這就必須將兩次操作放到一個事務中。

5.在blog主頁面的所有Jsp頁面刷新后的mp3重新播放

由于在mp3播放的頁面中是采用在頁面中嵌入 loop=“true” autostart=“true”> src是一個mp3的播放列表。頁面刷新后jsp的servlet重新運行。mp3重新播放,由于對播放器的API還不了解,現在還解決。mp3的播放資源只是嵌入到導航頁面(left.jsp)。只要導航頁面重新刷新后mp3就重新播放。系統的性能評價

由于本系統的jsp容器是Tomcat,系統設計也采用輕量級的Hibernate,而不是EJB所以在群集,負載均衡、安全性、事務、系統管理都不很理想。數據庫的連接池也不能很大,因為tomcat 不便管理。在本系統的數據庫中只采用了一級緩存Session 沒有啟動二級緩存SessionFactory,由于大量重復數據的查詢,性能可能有所降低。對于頁面的分頁處理,一般有兩種,一種是物理分頁,利用Sql語句向數據庫查詢指定那個頁面所需要的數據,對于種方式由于數據庫的差異,數據庫提供的offset也不同,對于明確數據庫的項目來說,物理分頁在性能上講顯然比邏輯分頁要來的好。第二種是邏輯分頁,通過sql語句查詢所有數據,再利用for語句讀取用戶所需要的數據,查詢數據全部提交給客戶端,還是將當前頁面的數據相應客戶端,是不好選擇,因為如果全部相應,則用戶可能只關心一部分,浪費了大量帶寬,將當前數據提交給客戶端則客戶可能還關心其他數據,便再次相應服務器,要求得到其他數據,數據都在服務器的緩存中,加重服務器的壓力,我選擇的是將數據全部相應客戶端。

全文總結

本文從博客網站的所需要實現的功能模塊開始分析,決定使用Java開發博客網站。并利用JDK,Tomcat,MyEclipse,MySQL等軟件來搭建開發環境,我的主要任務利用Java技術的Spring、Hibernate、Struts等開源框架設計J2EE三層結構的中業務邏輯層和數據服務層,blog網站以Spring 框架為核心,向下整合Hibernate 進行持久層訪問;向上整合Struts 按清晰的MVC 模式控制。這樣可以更快開發松散耦合的blog 網站。

由于沒接觸過Java,還有一些軟件還沒用過,如MyEclipse,因此完成此次畢業并不容易。通過摸索、翻閱并購買了大量相關參考資料,讓我java 技術有了一定的了解。比較圓滿地完成了本次畢業設計的任務,達到了此次畢業設計的目的和要求。

通過這次畢業設計學會利用java構建Web 網站,在畢業設計中接觸過不少開源框架。開源框架的強大讓我覺得還有很多技術需要去學習,這也讓我明白,要不斷地學習新知識才會利于自己各方面的發展。還讓我體會到在項目小組里沒有比溝通更重要

致謝

在論文結束之際,首先要感謝我的指導老師戴祖旭教授,在我的論文設計以及實現過程中均給了我大量的幫助和指導,他嚴謹的敬業精神和治學態度給我留下了深刻的印象。從他身上,我學到了許多能使我受益終身的東西,再次對戴老師表示衷心的感謝。

感謝理學院領導以及老師給我們創造的良好的學習環境和諸多幫助。

感謝父母,兄弟姐妹對我學業的支持;感謝寢室同學對我學習生活的諸多幫助。感謝的人太多,只能說感謝所有給我關心、幫助和支持的人們。

第二篇:Java網絡通信專題學習網站的設計與開發

Java網絡通信專題學習網站的設計與開發

摘 要:本文結合“151工程”項目――Java網絡通信專題學習網站,闡述網站的體系構架、專題結構化知識設計、基于資源規范的資源管理平臺設計和網站的主要功能模塊,重點闡述教育資源元數據屬性的XML統一描述、教育資源的XML綁定和CSCL協作小組分組算法等開發關鍵技術。該網站具有知識體系完備、學科特色鮮明、原創資源豐富、資源建設符合規范、多方位學習支持服務以及跨平臺應用等特性,可為Java及相關IT類課程的信息技術與課程整合提供技術和平臺支持,對于促進大學生自主學習、協作學習和可持性發展以及企業IT培訓和繼續教育具有積極的意義。

關鍵詞:專題學習網站;網絡通信;教育資源規范;Java.net類庫;XML;CSCL

中圖分類號:G434文獻標識碼:A文章編號:1673-8454(2010)17-0075-05

一、引言

經過10多年的發展,Java在網絡通信領域中的應用大放異彩,并得到學術界和產業界的認可,形成了舉世矚目的Java經濟。近年來許多高校已開設“Java程序設計”及其相關課程,華南師范大學教育技術本科專業是首批國家級特色專業,也將其列為主修課程,而“Java網絡通信”內容恰是其重點難點。其目標是使學生通過課程學習, 掌握面向對象程序設計和網絡通信程序開發, 具備小型項目開發能力。然而由于該課程內容零散、自身難度大等特點,加上學生基礎較弱,致使他們明明曉得課程重要,但學起來費力,缺乏信心和興趣,而以教師講授為主和學生被動接受的傳統教學的最大弊端就是學生難以進行系統的網絡編程和多層次自主學習和探究學習,可持續性發展能力較差。專題學習網站作為一種基于網絡環境的協作式學習系統,可以讓學生進行自主學習、分布式協作學習,提高其利用信息的實踐能力,培養其良好的信息素養與創新意識,是IT類課程的信息技術與課程整合的新方向。本文結合廣東高校“151工程”項目――Java網絡通信專題學習網站,闡述該網站的設計與開發。

二、網站設計

1.網站體系架構設計

本專題學習網站是一個基于網絡資源的Java面向對象程序設計與網絡通信程序開發專題研究、協作式學習系統,它通過網絡環境,向學生提供大量的Java編程與網絡開發專題學習資源和網絡學習交流工具。在教師指導下,學生選擇學習專題,通過主體性的探究、協作,收集、分析并選擇資源,應用知識和開發工具去解決實際問題,培養Java網絡通信程序開發能力。根據“151工程”專題學習網站建設要求,本文提出基于教育資源建設技術規范的專題學習網站的體系構架,如圖1所示。它由專題學習知識庫、網絡學習工具(含協作學習和專題學習評價)、資源管理和系統管理組成,涵蓋專題學習網站主要模塊并彈性拓展,具體包括學習專題、專家講壇、項目實踐、Java精品、資源天地等 12個功能模塊。

網站以專題結構化知識庫和資源管理平臺為核心,采用統一身份認證對用戶進行管理。用戶角色包括:學生、教師和系統管理員。學生可利用專題學習知識庫和網絡學習工具進行各種專題學習,并可進行資源發布、搜索、瀏覽、上傳/下載、收藏和評價;教師除具有學生的權限外,還可以對資源進行在線審核、發布以及資源與元數據編輯、導入、修改和刪除;管理員除具有教師和學生的權限外,還可以進行系統設置與維護、動態信息管理和用戶管理。

2.專題結構化知識設計

采用分層法設計專題結構化知識,層次間采用樹型結構表示,將專題學習劃分為4層:模塊層、專題層(T)、子專題層(ST)和知識點層(K),如圖2所示。模塊層是最大的復合型學習對象(由多個學習目標組成的學習單元)、專題層由子專題層組合而成,子專題層由知識點聚合而成,知識點作為原子型對象(由單個學習目標所建立的信息塊)是粒度最小的。

網站按學生認知規律及專題規劃知識點,通過基礎、進階、核心和拓展的學習階梯對學習內容進行有機整合。基礎模塊包含Java程序設計基礎;進階模塊是基礎模塊的延伸;核心模塊涵蓋Java網絡通信與編程內容;拓展模塊承載著Java最新網絡通信技術及其動向。4個模塊包括18個專題學習內容,涵蓋Java程序設計基礎、OOP、GUI、多線程、網絡通信基礎、Java通信協議、Java.net類庫、網絡通信編程、無線網絡通信、Java與網格技術、Java與云計算等專題,專題學習界面,如圖3所示。

3.基于資源建設規范的資源管理平臺設計

資源管理平臺可實現對多媒體素材、課件、源代碼、文獻、常見問題解答、試題等資源及其元數據的動態管理。該平臺可通過圖1中的“資源天地”鏈接,依據“151工程”相關技術規范構建,以實現異構教學環境下資源共享和互操作。為達此目標,采用文件管理系統與關系數據庫相結合的方式實現對教育資源的儲存和管理。文件系統中存放著豐富的學習對象資源,通常是一些通用性較強的組件,可以被修改、組合、拆分和重用,以適應不同的教學需要。同時,描述每種教育資源的元數據也對應地存在文件系統中,在數據庫中存放描述資源的核心元數據。資源管理平臺可完成教育資源與元數據編輯、導入、修改、刪除等功能,此類操作都會與相應的文件系統及數據庫中的表發生關聯。

文件系統中存儲教育資源及其屬性描述的XML文檔。為了科學、高效和方便地管理資源及其屬性描述的XML文檔即元數據,平臺采用層次結構來存儲資源及XML文檔。在文件系統中物理的資源及其屬性描述的XML文檔存在同一文件夾中,如圖1所示。

數據庫設計則采用文件管理系統和關系數據庫相結合的手段,以保證元數據信息的完整性和管理平臺的快速查詢和科學管理。按照“151工程”相關規范對教育資源屬性進行描述,有通用、技術和分類3大類17小類,綁定后有70余項,每種資源都有自己的擴展屬性。[3]為避免數據冗余,將每種資源通用的核心元素存入數據庫中。數據庫采用支持XML的MySQL以便于在XML與數據庫間互換。

4.網站的其他主要功能模塊

(1)專家講壇:提供與課程相關的專家和教師的電子講稿,并進行有機整合,學生可在專題學習基礎上針對重點難點做深入學習,并可瀏覽和下載。

(2)項目實踐:提供項目實踐案例,包括網絡聊天室、網絡信使服務等網絡通信工具的開發案項目,體現“做中學”和“學中做”的教育理念,以培養學生項目規劃和創新能力。

(3)協作學習:將分組教學引入到教學活動中,以異質分組為原則,內置CSCL小組分組模塊,以實現協作學習功能,通過教學方法多樣化,激發學生的學習興趣,提高學生的綜合編程能力。

(4)Java精品:提供Java典型例程,含Java網絡課件、網絡通信和網絡游戲等資源,供學生賞析和下載,為信息技術與課程整合提供深層支持。

(5)資源天地:為教育資源Web應用端,可鏈接到教育資源管理平臺。

(6)疑難解答:提供Java技術問題庫,學生遇到問題時可通過答疑系統進行搜索、查閱。

(7)在線測試:包括網上在線測試和考試管理兩部分。前者提供專題知識的相關練習,分為形成性測試和總結性測驗兩種類型,配有及時反饋功能,題型有選擇題、填空題、判斷題和簡答題。利用前者學生可針對專題內容進行測試與評價;利用后者,教師可實現考生管理、試題管理和考試監控。

(8)詞匯列表:提供與Java相關專業術語的解釋,學生可瀏覽和檢索。

(9)系統管理:具有系統設置與維護、動態信息管理和用戶管理的功能。

三、網站開發關鍵技術

1.開發技術路線

網站開發采用Java+ JavaScript +JSP+XML 組合技術,并使用混合JavaBeans、Flash和Real Network視頻流媒體等技術,開發工具選擇Dreamweaver+ Elipse 等,數據庫采用MySQL5.1.5或更高,網站服務器采用Tomcat,采用B/S應用模式,支持目前主流瀏覽器。

2.開發關鍵技術

(1)資源元數據屬性的XML統一描述方法

資源元數據處理采用“151工程”相關規范對資源屬性進行統一描述,并對外提供XML描述文檔。該規范是根據學習對象元數據規范(LOM)CELTS-3和教育資源建設技術規范CELTS-41.1,結合廣東高校資源建設的實際而制訂的,是一個較為寬泛的規范,目的是使得各高校的資源能在大范圍內共享和互操作,其核心是按資源類型不同制定相關資源屬性標注標準。下表給出資源基本信息部分屬性描述。

在上述基礎上,采用XML對資源進行統一描述,下面以一個動畫素材為例,給出其XML描述的方法。

00042

二維動畫

Socket雙向握手通信過程動畫

……

馬祖英

.swf

127k

http://eitc.scnu.edu.cn/javasite/res/ani/

SocketShakeHand.swf

……

信息技術

……

教育資源屬性的XML統一描述是為了便于資源存儲、搜索、綁定和編碼入庫,采用SOAP技術實現異構環境下教育資源共享、交換和互操作。

(2)教育資源的XML綁定技術

“數據綁定”是一種把數據綁定到用戶界面元素(組件)的通用機制,數據綁定體系包括:數據源對象(Data Source Object,DSO)、數據顯示對象(Data Consumers)和兩個代理器(Binding Agent與Table Repetition Agent)等4個部分。數據源對象向網頁提供數據,數據顯示對象就是顯示數據的HTML元素,代理器則保證前兩者工作的同步。

實現XML數據實例到Java和JSP對象模型的綁定通常有兩種解決方案:一是自編數據綁定應用程序;二是使用數據綁定框架。本研究采用后者,在具體方法運用上,主要利用XML數據島進行數據綁定。

XML數據島是指Web頁面直接包含的XML文件或標簽數據。它使HTML和XML真正地融合在一起。利用數據島綁定技術可以很方便地在一個 HTML 文檔中插入 XML 數據,并在瀏覽器中顯示出來。數據島綁定技術適用于結構規則的 XML 文檔,它對 XML 文檔的數據用類似于關系數據庫的技術進行處理。通過Web服務器返回的是XML數據流,因此必須利用XML數據島綁定技術把XML格式的數據流綁定在HTML格式的文件中,再通過瀏覽器顯示出來。以下是在HTML頁中直接嵌入XML數據島的示例:

00042

二維動畫

Socket雙向握手通信過程動畫

……

馬祖英

.swf

127k

http://eitc.scnu.edu.cn/javasite/res/ani

SocketShakeHand.swf

……

信息技術

……

00086

視頻流媒體

面向對象程序設計的多態性

……

王咸偉

.asf

4.3M

http://eitc.scnu.edu.cn/javasite/res/video/

Polymorphism.asf

……

信息技術

……

……

對于數據量較大的XML數據可使用外部引用方式鏈接數據島。標簽的ID屬性定義了數據島的ID而SRC屬性指向被嵌入的XML文件:

在HTML文檔中嵌入數據島后,即可將XML數據島和HTML元素綁定在一起。每個DSO條目(即數據島)都有唯一ID號。先將HTML元素中的DATASRC屬性設置為相應的ID,把HTML元素和數據島聯系在一起,再設置DATAFLD屬性值來確定所提取的XML元素。目前,支持DSO綁定機制的元素包括A、BUTTON、DIV、FRAME、IFRAME、IMG、INPUT、LABEL、TABLE和TEXTAREA等。

(3)CSCL協作小組分組算法關鍵技術

專題學習網站中CSCL協作小組分組是協作學習的關鍵,分組基本原則是異質同組,所要解決的問題是盡可能將差異度最大的學生分在每個小組中,并使得小組間差異度減小到最低程度。解決問題的關鍵是先通過將學生的每個特征量化,抽象成特殊屬性值,利用數學計算方法加以對比,找到特征差異度間的量化比較,再利用某種確定的遍歷方式進行分配,最后根據某種目標函數來計算每個小組內的特殊屬性數目和組與組間的絕對差異,使得該目標函數在最大范圍的計算中執行效率最高、方法最優。其中涉及的算法關鍵技術包括初始數據量化、最優化理論算法、遍歷算法、目標函數選擇、學生特征值的數據量化和稀缺特征值選擇。[1]

四、網站的特色

1.體系結構較為先進,知識體系完備,充分體現學科特色

網站的體系構架、系統設計和關鍵技術較為先進,功能模塊劃分合理、設置豐富;以網絡通信專題為導向,提供豐富的專題結構化知識,形成一個符合認知規律的結構體系,便于學生對新知識進行有效的意義建構;開辟 “項目實踐”、“Java精品”等欄目便于學生從事開發實踐;采用虛擬仿真和程序運行與跟蹤技術,可動態輸入數據、跟蹤程序運行結果,充分體現了程序設計類課程教學的特點。此外,還采用“樣例學習”和“做中學”等教學方式,提供多種網絡學習工具,融入協作學習的先進教育理念,體現了信息技術與課程整合的思想。

2.豐富的原創資源,資源建設符合規范

網站提供豐富的教育資源,其中原創超過60%。專題資源庫構建符合資源建設技術規范,資源管理平臺可實現資源與元數據的編輯、導入、修改和刪除,并可實現異構教學環境下資源共享和互操作。

3.多方位的學習支持服務

網站提供了良好學習導航、自主學習和協作學習環境,具有完備的學習評價和CSCL小組分組系統,并提供實用性強的網絡學習工具和資源管理平臺,可多方位地為學生提供學習支持服務。

4.專題學習網站具有跨平臺特性

由于網站采用Java、JSP和XML等技術實現,加上MySQL的開源特性,因此本網站可實現跨平臺應用。該網站完成后經過不斷改進與完善,已先后用于我校多屆教育技術專業的本科教學,實踐表明:利用該網站獲得良好的教學效果,對于促進“Java程序設計”及相關IT類課程的教改以及信息技術與課程整合具有良好的現實意義和應用前景,可以用于教師課堂輔助教學,也可以用于學生自主學習、分布式協作學習以及企事業單位的IT培訓和繼續教育。

參考文獻:

[1]李潔,王咸偉.CSCL中小組分組算法及系統設計與開發[J].華南師范大學(自然科學版),2007.2.[2]教育部信息化技術標準委員會.教育資源建設技術規范CELTS-41.1,2002.12.[3]廣東高教電教中心.廣東省高等學校現代教育技術“151工程”建設規范[S],2004.4.[4]鄭維勇,王萍.基于學習對象元數據的教育資源管理系統的設計與實現[J].中國教育信息化.2007.11

[5]Faye P Teer, S.E Kruck.The Java programming course in accredited business schools in the United States.Information Technology, Learning, and Performance Journal.Morehead: Spring 2005.Vol.23, Iss.1;pg.1, 11 pgs.[6]Liang,Y.D.(2004).Introduction to Java programming, comprehensive(5th ed.).Upper Saddle River, NJ: Prentice Hall.(編輯:楊馥紅)

第三篇:JAVA網站開發工程師面試題

JAVA_WEB開發人員面試題及答案

面試人:面試時間:

一.選擇題(每題1分,共20分)

1.jsp 有幾個內置對象?(c)(單選)

A 5個B6個C9個D8個

2.在JAVA中,如何跳出當前的多重嵌套循環?(ab)(多選)

A breakBreturnCforwardDfinally

3.四種會話跟蹤技術,哪個范圍最大?(d)(單選)

A pageBrequestCsessionDapplication

4.java中有幾種方法可以實現一個線程?(b)(單選)

A1種B2種C3種D 4種

5.同步有幾種實現方法(b)(單選)

A 4種B2種C3種D 1種

6.xml有哪些解析技術?(abcd)(多選)

A DOMBSAXCSTAXD JDOM

7.下列說法正確的是(bd)(多選)

A 構造器Constructor可被繼承

BString類不可以繼承

C 判斷兩個對象值相同用“==”

D char型變量中能不能存貯一個中文漢字

8.下列關于線程說法正確的是(abc)(多選)

A調用sleep不會釋放對象鎖。

B調用wait方法導致本線程放棄對象鎖

C當一個線程進入一個對象的一個synchronized方法后,其它線程不可進入此對象的其它方法

Dnotify():喚醒全部處于等待狀態的線程。

9.給定JSP程序源碼如下,該JSP運行后輸出的結果是(b)。(單選)

<%int Count=1;%>

Count:<%= Count%>

ACount:1BCount:2C1:2 DCount:

10.在J2EE中的一個JSP文件中,有表達式<%=2 3%>,它將輸出(b)(單選)

a)2 3b)5c)23d)不會輸出,因為表達式是錯誤的11.在J2EE中,編寫Servlet過濾器時,(c)接口用于調用過濾器鏈中的下一個過濾器。(單選)

a)Filterb)FilterConfigc)FilterChaind)Servlet

12)關于視圖的描述正確的是(c)(單選)

a)視圖是一種特殊的表,它存儲了用戶定制的數據。

b)視圖僅用于用戶進行查詢,不可以通過視圖對數據進行修改。

c)在sql server中可以通過用T-sql語句來創建,也可以通過企業管理器。

d)創建視圖只能操作本機器上的數據庫表。

13)STRUTS框架中,(c)類在視圖層和控制層之間傳遞HTML表單數據。(單選)a)Actionb)ActionForward c)ActionFormd)ActionServlet

18)Struts控制器的主要任務是接受用戶請求、根據用戶請求調用對應的模型組件、獲取業務邏輯執行結果的根據處理結果選擇適合的視圖組件返回給用戶,實現Struts控制器的類中不包括(c)。(單選)

a)ActionServletb)Actionc)ActionFormd)ActionForward

14)以下關于SessionFactory的說法哪些正確?(bc)(多選)

A)對于每個數據庫事務,應該創建一個SessionFactory對象

B)一個SessionFactory對象對應一個數據庫存儲源。

C)SessionFactory是重量級的對象,不應該隨意創建。如果系統中只有一個數據庫存儲源只需要創建一個。

D)SessionFactory的load()方法用于加載持久化對象

15)下面那些是Hibernate的查詢方式(abc)(多選)

A)sqlB)hqlC)Criteria

18)以下數據結構不屬于線性結構的是(c)(單選)

A)隊列B)線性表C)二叉樹D)棧

16)下列是文件讀寫的類是(ac)(多選)

A)File ReaderB)FileC)FileWriterD)InputStream

17)數據庫技術中的“臟數據',是指(c)的數據。(單選)

A)錯誤B 回返C 未提交D 未提交的隨后又被撤消

18)在計算機中,—個字節是由多少個二進制位組成的(b)(單選)

A).4B).8C).16D).24

19.下列不屬于面向對象的方法是(d)(單選)

A).對象B).類C).繼承D).過程調用

29.設正x、y均為整型變量,且x=10 y=3,則以下語句printf(“%d,%dn”,x--,--y);的輸出結果是(d)(單選)

A).10,3B).9,3C).9,2D).10,2二.填空(每空1分,共10分)

1.String s = new String(“xyz”);創建了__2__個String 對象?

2.Math.round(9.5)等於__10___Math.round(-9.5)等於__-9____

3.try {}里有一個return語句,那么緊跟在這個try后的finally {}里的code會被執行,什么時候被執行,在return____前_____(前還是后?)

4.如何現實servlet的單線程模式 ______<%@ page isThreadSafe=“false”%> _________

5.類變量必須帶的修飾符是 ______ static _________

6.final類可以修飾在屬性 , 方法和___類___前面

7.Java默認的包是______ java.lang.*_________

8.Hibernate里面怎樣實現類與類之間的關系__________表映射_______________

9.Socket 編程服務器端用____ serverSocket ____類來創建socket對象。

三. 判斷題(每題2分,共10分)

1.依賴注入即是“面向接口”的編程。錯

2.Overload和Override都是java多態的不同體現形式。對

3.String是最基本的數據類型。錯

4.啟動一個線程是用start。對

5.接口可以繼承接口。對

四.簡答題(每題5分,共30分)

1、網頁設計采用div css有什么好處?

答:布局實現了表現與內容的分離,大大縮減頁面代碼,符合W3C的標準,兼容性更好;易于后期網站的更新、維護;SEO的優化:對搜索引擎更加友好,更容易被搜索引擎收錄。

2、前端頁面有哪三層構成,分別是什么?作用是什么?

答:網頁分成三個層次,即:結構層、表示層、行為層。

網頁的結構層(structural layer)由HTML或 XHTML之類的標記語言負責創建。標簽,也就是那些出現在尖括號里的單詞,對網頁內容的語義含義做出了描述,但這些標簽不包含任何關于如何顯示有關內容的信息。例如,P 標簽表達了這樣一種語義:“這是一個文本段。”

網頁的表示層(presentation layer)由CSS負責創建。CSS 對“如何顯示有關內容”的問題做出了回答。

網頁的行為層(behavior layer)負責回答“內容應該如何對事件做出反應”這一問題。這是 Javascript 語言和 DOM 主宰的領域。

3、如何區別display:none與visibility:hidden?

答:相同的是display:none與visibility:hidden都可以用來隱藏某個元素;

不同的是display:none在隱藏元素的時候,將其占位空間也去掉;而visibility:hidden只是隱藏了內容而已,其占位空間仍然保留。

4.購物網站的主色調應該是什么樣色?交友網站?體育網站?軟件網站?年輕的互聯網? 答:購物:暖色;交友:粉紅之類的;體育:酷一點;軟件公司:無所謂;年輕互聯網:有朝氣的顏色,比如綠色。

5. 一個網站最多有幾種色彩

答:一到兩各種主色彩。

6.如果背景是黑色,那么字體用什么顏色能突出字體,且不顯得刺眼?

答:紅色。

五.編程操作題(每題6分,30分)

注:有上機機會上機操作,沒有就手動把代碼寫出來;

1.一個表td中的部分Id有多個記錄,把所有有多個記錄的id查出來,并顯示共有多少條 記錄數。

2.寫出冒泡排序的實現

答:代碼如下:

public void fun9(){

int[] a = {1,3,5,61,2,123,12,}

Conica.print(a);

for(int i=0;i

for(int j=0;j

{

if(a[j]>a[j 1]){

int temp = a[j];

a[j] = a[j 1];

a[j 1] = temp;

}

}

}

}編程:編寫一個截取字符串的函數,輸入為一個字符串和字節數,輸出為按字節截取的字符串。但是要保證漢字不被截半個,如“我ABC”4,應該截為“我AB”,輸入“我ABC漢DEF”,應該輸出為“我ABC”而不是“我ABC 漢的半個”。

答:代碼如下:

package test;

class SplitString {

String SplitStr;

int SplitByte;

public SplitString(String str,intbytes){

SplitStr=str;

SplitByte=bytes;

System.out.println(“TheString is:′” SplitStr “′;SplitBytes=” SplitByte);

}

public void SplitIt(){

int loopCount;

loopCount=(SplitStr.length()%SplitByte==0)?(SplitStr.length()/SplitByte):(SplitStr.length()/SplitByte

1);

System.out.println(“WillSplit into ” loopCount);

for(int i=1;i<=loopCount;i){

if(i==loopCount){

System.out.println(SplitStr.substring((i-1)*SplitByte,SplitStr.length()));

}

else {

System.out.println(SplitStr.substring((i-1)*SplitByte,(i*SplitByte)));

}

}

}

public static void main(String[]args){

SplitString ss = newSplitString(“test中dd文dsaf中男大3443n中國43中國人

0ewldfls=103”,4);

ss.SplitIt();

}

}

注:另外關于美工操作,如果有photoshop等軟件可以任選擇兩題考下:

1.手寫 html 能力

描述一個不規則表格,一定要有跨列和跨行的,讓他把 html 代碼寫出來;

2.讓他用 Photoshop 或 Fireworks 設計一個頁面布局,或者指定一個效果(比如半透明的按鈕),讓他畫出來,在或者,提供一幅人物照片,要求他摳掉背景,這是平面軟件能力的一種體現方式;

3.如果要涉及 Flash,讓他做一個兩種形狀(方形、圓圈)的漸變,要求過渡平滑、美觀,新手都直接用 shapemotion,很難看,高手知道加過渡。

第四篇:個人博客網站的設計與實現

摘 要

最近幾年博客在國內發展的非常迅猛,它可以作為其使用者個人或者工作中的文章、日記、照片等分享的平臺,其漸漸成為新興的網路媒介,并且擴展至營銷、商業推廣等商業應用,越來越多的人們建立了屬于自己的博客來展示自己的風采。

該博客網站設計的目的旨在建立以ASP.NET和SQL Server 2005數據庫為工具,功能簡潔、結構靈活且精致、輕巧的個人博客網站系統。其中網絡日志的管理作為本系統的主要目標,且同時可以滿足用戶對于圖片,相冊,留言,個人信息等的管理和展示,并且可以設置博客的背景音樂等功能。

該設計的開發環境為Microsoft Visual Studio 2005,使用C#編程語言進行編碼,采用的是SQL Server 2005數據庫。

關鍵字:DotNet;C#; 個人博客; 數據庫; SQL Server 2005

ABSTRACT

In recent years, The Blog develops rapidly in China.It can be used as a platform which shares its user's articles for daily life or for work, and also shares diaries and musics.Blog has become an emerging media on the Internet gradually, and it has extended to be business applications such as marketing and promotion.More and more people have established their own blogs to show themselves.The design for this blog website aims to build a personal blog system which based on ASP.NET and SQL Server 2005, having advantages such as its concise functions, flexible structures, exquisite but simple looks.The management of cyber diaries is the main objective for this system.The system can also meet the requirements such as managements and displays for user's pictures, photos, messages and personal information.Yet it can set background musics.This design is developed by Microsoft Visual Studio 2005, coded by C#, and based on the database of SQL Server 2005.Keywords: Asp.Net;C#;Personal Blog;Database;SQL Server 2005

目 錄

第一章 系統概述...................................................1 1.1研究背景........................................................1 1.2研究現狀........................................................1 1.3設計內容........................................................2 1.4 課題研究意義...................................................3 第二章 系統開發環境...............................................4 2.1 ASP.NET概述....................................................4

2.1.1 ASP.NET和ASP.NET結構.....................................4 2.2 C#概述..........................................................7 2.3 動態網站技術介紹................................................8 2.4數據庫技術......................................................8 2.5 ADO.NET連接數據庫..............................................9 第三章 需求分析..................................................11 3.1 可行性分析.....................................................11

3.1.1 技術可行性.................................................11

3.1.2 經濟可行性.................................................12

3.1.3操作可行性.................................................14 3.2 功能需求.......................................................14 3.3 性能需求.......................................................15 3.4系統用例.......................................................15 第四章 系統概要設計..............................................17

4.1概述...........................................................17 4.2系統結構.......................................................17 4.3 數據庫設計.....................................................18

4.3.1 數據庫設計概述.............................................19

4.3.2 數據庫概念設計.............................................20

4.3.3 數據庫實體設計.............................................22

4.3.4 數據庫設計表...............................................24 第五章 系統詳細設計..............................................28 5.1用戶登錄模塊的實現.............................................28 5.2留言板模塊的實現...............................................29 5.3相冊模塊的實現.................................................31 5.4圖片管理模塊的實現.............................................34 5.5背景音樂的實現.................................................37 5.6日歷模塊的實現.................................................39 第六章 總結......................................................41 參考文獻.........................................................42 致謝.............................................................43

基于Asp.Net的個人博客網站的設計與實現

第一章 系統概述

1.1研究背景

BLOG一詞耳熟能詳,把它翻譯成我們所熟悉的意思就是“網絡文章”,現在一般叫做“博客”。具體說來,使用瀏覽器或者某些程序,在互聯網上去創作、書寫、發貼和刊登自己的文章、照片等信息的人就是博客(BLOGGER)。

每一個BLOG都是一個網頁,其通常是由簡單短小并且經常更新的Post來構成;這之中所貼的文章全都以年份、日期為依據排列。BLOG的內容與目的大相徑庭,其包含網站的相關鏈接、灌水、評論,對有關組織以及個人所構想的文章、圖片、繪畫、歌曲,乃至實時消息、構想的故事的發表和出版應有盡有。很多博客是個人對心中的感情和一些奇思妙想的抒發方式,而其它的博客則是一些人按照一些特定的主題或者共同愛好的領域進行的自發性的集體創作。BLOG可以理解為向整個網絡傳達實時的訊息。而創作這些blog的作者便被稱為博客或者博主。

Jorn Barge在一九九七年的十二月第一次提出了BLOG一詞,但到當年互聯網上的博客屈指可數,直到進入新世紀博客才真正的流行起來。最開始,博客們每天把他們其瀏覽互聯網的的感受和想法記錄下來,然后發表出來,以供其他人參考和借鑒。但隨著BLOG的快速發展,其目的與最初的時候已經大相徑庭。現如今互聯網上面數以百萬計的博客們所創作并且發表出來的難以計數的BLOG有著各種各樣的目地。但是,因為其溝通方式較E-mail、聊天室更簡潔、容易上手,更加快捷和廣泛,BLOG已經成為個人、團體、公司和政府部門之間越來越流行的溝通工具。

1.2研究現狀

BLOG,把它翻譯成我們所熟悉的意思就是“網絡文章”,現在一般叫做“博客”。具體說來,使用瀏覽器或者某些程序,在互聯網上去創作、書寫、發貼和刊登自己的文章、照片等信息的人就是博客。是一個急速發展的網絡活動,現在博客一詞已經被現代漢語詞典所收錄,標志著這種新興事物已經被人們所接受。BLOG是在E-mail、BBS、IM之后的所涌現出的新一種互聯的社交形式,是在這個新時代的屬于個人的一個交流平臺,是以迅猛發展的網絡技術為基礎的網絡日記,是新時代的生活與工作方式的體現,同時也是新時代的學習方式的體現。

每一個BLOG都是一個網頁,其通常是由簡單短小并且經常更新的Post來

構成,這之中所貼的文章全都以年份、日期為依據排列。BLOG的內容與目的大相徑庭,其包含網站的相關鏈接、灌水、評論,對有關組織以及個人所構想的文章、圖片、繪畫、歌曲,乃至實時消息、構想的故事的發表和出版應有盡有。傳統意義上的日記帶有著很強的隱私性。與此不同的是BLOG同時具有著隱私性質與公開性質,并且將二者有機結合了起來,博客絕不只是單純的去表達個人的思想與記錄日常生活中的流水賬,博客所展示的內容可以用來溝通、展示自我并且可以為他人提供參考和幫助,它存在于整個互聯網,可以極大程度的展示自我,極廣泛的進行交流。

博客出現于九七年底,在九八年“DrudgeReport”這一blog成為披露克林頓緋聞案的先鋒;

2000年博客開始走入中國,并且得到迅速發展,但并沒取得突出業績; 2001年博客在911事件的報道中發揮了巨大的作用,從而步入主流; 2003年在對伊拉克戰爭的報道中,美國眾多傳統媒體所具備的公信力遇到博客的重大挑戰;

2004年是對于中國博客的發展至關重要的一年,木子美事件使很多中國人了解了博客,并學會了使用用博客;

2005年,像搜狐,新浪這樣的很多起初對博客這一事物不抱期望的的國內各門戶網站,也紛紛加入到發展博客的行列,從此國內博客的發展進入了戰國時代。最近幾年,芙蓉姐姐等網絡名人的一炮走紅也使得博客更加深入人心。

博客們每天把他們其瀏覽互聯網的的感受和想法記錄下來,然后發表出來,以供其他人參考和借鑒。但隨著BLOG的快速發展,其目的與最初的時候已經大相徑庭。現如今互聯網上面數以百萬計的博客們所創作并且發表出來的難以計數的BLOG有著各種各樣的目地。但是,因為其溝通方式較E-mail、聊天室更簡潔、容易上手,更加快捷和廣泛,BLOG已經成為個人、團體、公司和政府部門之間越來越流行的溝通工具。

如今,門戶網站已經普遍有了自己的大型博客站點。目前,國內發展較好為人們所熟知的相關網站有:新浪,搜狐,騰訊,百度等。

1.3設計內容

網站的界面很友好、明快、舒適;操作起來容易、快捷;查詢資料快捷、準確。本個人博客網站在很大程度上實現安裝的簡易性、操作的簡單性與維護的最小化。系統運行有較高的穩定性、安全性和可靠性。在功能上游客身份可以用不注冊,直接通過匿名訪問的方式在博客前臺進行查看用戶的博客日志,發表留言,查看用戶的相冊圖片等操作。博客用戶可以在前臺的頁面登錄,然后進入后臺頁

面。在后臺可以進行發表日志和管理日志以及日志的留言,添加相冊,刪除相冊,上傳、刪除圖片等操作。博客的主人在登錄之后可以修改自己的個人信息,也可以設置自己博客的背景音樂。

1.4 課題研究意義

根據上面所介紹的相關信息我們已經知道如今博客的發展已經到了比較成熟的階段了,它已經被人們所廣泛接受。博客在改變著人們抒發情感與人際間相互交流的方式,它拉近了人與人的距離,改變著人們社交的方式;博客極大的擴展了著人們對于信息世界的想象,它影響著整個互聯網的發展趨勢,甚至對社會的發展會起到想當重大的影響。

博客這樣一種有著巨大影響的新的信息傳播方式的發展,必將有利于社會的進步。但同時也應看到,由于博客所具有的快速廣泛傳播信息的功能,一旦為不法分子所利用將帶了嚴重的后果。所以我們要把這種好的作用盡可能的發揮到最大,并且通過技術、法律和道德的力量來避免不好的作用,在這過程中必然就需要通過開發新的技術來讓博客的用戶們活動更好的體驗。

現在各個大中型的門戶網站都退出了博客、空間等服務,令廣大用戶能夠在互聯網上有屬于自己的一席之地。為了滿足廣大用戶們在使用博客的過程中所追求的個性化要求,本個人博客網站盡量采用了.NET中的新方法,該個人博客采用.NET的可視化開發環境,所見即所得。從而讓開發人員可以更加高效快捷的得到開發內容的實際效果,并且進行相關調試。3 基于Asp.Net的個人博客網站的設計與實現

第二章 系統開發環境

2.1 ASP.NET概述

DOTNET也就是我們通常所說的.NET,準確來說它叫做.Net框架。作為Windows系統的的一種組件,NET框架將會支持未來會出現的各種應用程序和XML Web業務。.Net框架剛剛提出的時候,微軟確定要實現以下目標:給程序開發者統一的面向對象的編程環境。提供一個控制軟件的布置和協調不同版本之間矛盾的執行環境,盡可能的減少矛盾,提供了更加安全可靠的的代碼運行環境,提供一個可以避免腳本運行或者解釋運行環境所引起的整體性能降低,使開發人員面對的操作系統的應用程序與網絡應用程序相協調。

.Net框架在通過初步發展之后,在.Net 框架l.0以及它的升級版.Net 框架l.l中,更好地支持移動ASP。凈監控及支持ODBC和Oracle數據庫。后.Net 2.0中出現了越來越多不同的API。API允許管理.Net執行時的非實例.Net應用程序能夠將其實現。不同以往的API.Net里面有著豐富的本領,比如:多線程,分配內存,代碼的載入,給予了有效的管理,其次.Net 3.0里面加入了四個WPF。為開發Windows窗體和瀏覽器應用程序提供更好的用戶體驗的WCF。給予用戶SOA(應用于服務軟件的架構),以支持安全的網絡服務框架。Windows工作流基礎(WF):提供面向工作流的設計和開發(面向工作流程)的應用基礎設施,以支持應用程序接口。Windows CardSpace的:提供的SSO解決方案,所有使用者都擁有屬于自己的CardSpace。在這個項目后,所使用的.Net框架3.5,這個版本包括一款支持C#和VB的網絡中心編譯器的語言功能的支持。同時,.Net 框架3.5的自動.Net 框架2.0 SPⅠ.Net 框架3.0 SPⅠ,用于這兩個版本提供安全修補程序,以及少量額外的庫的。2.1.1 ASP.NET和ASP.NET結構

ASP.NET是.NET 框架的一個組成部分:它給了用戶大量的用于編程的類,以滿足各種編程需要。

.NET 框架類庫

假如你是Microsoft。假如你必須支持大量的編程Language,比如Visual Basic、C#和C++。這些編程語言的很多功能相互重疊。例如,對于任何程序語言,必須包括的文件系統的訪問,與數據庫和操作系統的字符串的操作方法。

并且,雖然語言不同,但是實現相同功能時的程序結構是相似的。就像任何

程序語言都能夠使用循環結構與條件結構的語句。寫在Visual Basic語法的使用條件語句是寫在C + +中是不一樣的,程序的功能卻是一樣的。

此外,對于絕大多數的程序語言來說來都有著類似的數據類型。絕大多數的程序語言,都有能夠定義整數型和字符型的數據。雖然由于程序語言的種類不同,整數型數據的最大值和最小值不盡相同,但是它們都是對應著用一種數據類型。

同時向多種語言來提供這種功能要耗費很多的資源。為什么繼續重復工作呢?對所有的語言只創建這種功能一次,然后把這個功能應用在每一種語言中豈不是更容易。

.NET Framework類庫正是這么做的。它包含一個龐大的集合,旨在以滿足任何可以想象的編程需要的類。舉例來說,數據庫訪問,文件協同,操作文本,生成圖像等工作.NET Framework類庫所提供的的類型足以將其實現。刨去以上的內容,本框架中有著眾多專業的類型應用在處理網絡協議的執行任務和正則表達式上。

此外.NET Framework包含所有基本的變量數據類型。

相比于之前的腳本語言,ASP.NET優越性集中表現在下面幾個特性上:

(一)高效性

以.NET框架做為基礎來制作的的ASP.NET,應當使用VB,C++這些高度模塊化的編程語言,只要執行一次編譯器后便可以直接運行,因此ASP.NET的速度和效率比ASP這種只能依靠VBScript和JavaScript這樣的腳本編程語言,增強了很多。

(二)可重用性

ASP.NET比起以前的ASP來是大相徑庭的。ASP中ASP的代碼與HTML是混在一起的,而ASP.NET中是代碼與內容是完全分離的,可重重復使用性大大提高。

(三)代碼量小

在ASP中,要實現的功能是通過編寫代碼來實現,但ASP.NET只是事先,可以自動實現,因此,當實現相同的功能,小于ASP的ASP.NET代碼量。

(四)ASP.NET不是解釋性的而是編譯型的

ASP.NET編譯器由兩個階段組成。在第一階段,當一個ASP.NET頁面是第一次訪問或早期編譯ASP.NET網站,包含語言代碼江北編譯成微軟中間語言中間語言代碼,像ASP.NET網站的編譯模型可以在不使用背景語言的混合編程。第二階段,ASP.NET頁面執行時,MSL IL代碼可以由即時編譯(時間,JIT)的形式被編譯成機器語言。

ASP.NET頁面的編譯過程為:

如果是VB.NET代碼,則使用這種語言所編譯器;若使用的是C#代碼,則使用C#對應的編譯器;如果是其他語言代碼,則使用其對應的編譯器。統一將

其編譯為MSIL代碼,之后進行JIT變編譯,隨后編譯為機器語言代碼最終進行執行。6 基于Asp.Net的個人博客網站的設計與實現

2.2 C#概述

C#是一種Microsoft為了實際應用.NET而根據其特點和需要所創造的不同于以前出現過的的的編程語言。C#同.NET Framework存在密切相關的關系,C#中所包含地類型便是.NET里面所能提供地所有類,而且C#可以直接使用.NET 框架所提供地類庫。此外,C#中所包含地理性的安全檢查和結構化異常的處理等全部由CLR來處理。事實上,ASP.NET 3.5便是使用C#語言來進行開發的,因此C#這種編程語言不進十分適合Web應用程序的開發,而且還適合用于強大的系統程序的開發。

C#這門語言具有著如下的特點:

在.NET 框架所提供的環境中執行C#的代碼的時候,無法對內存直接進行操作,從而使得程序的安全性能大大提高。C#中并不推薦使用指針,如果想要使用指針的話,需要添加unsafe修飾符才行,并且在編譯的時候需要采用/unsafe這個參數。

采用C#編程語言可以構建出健康高效的應用程序。C#中的垃圾回收功能將會自動的回收那些不再被使用的對象所占用的內存。而異常處理功能則提供了結構化的并且可擴展的錯誤檢測與恢復的方法。獨有的類型安全的設計從根本上排除在讀取未被初始化過的變量和未被初始化過的數組的時候導致溢出上限的可能性。

C#編程語言有著整合的類型系統。全部的C#類都繼成于唯一一個根類——object。所以,全部的類型都能夠共享同一組通用操作。

C#編程語言完全支持使用組件編程。現在軟件設計越來越依靠有著自包含與自描述功能包形式的軟件組件,通過屬性,方法和時間來提供編程的模型。而C#恰恰可以輕而易舉的創建并且使用這些軟件組件。

通過上面的介紹,可以想象.NET Framework會是非常龐大的。它有著三千四百個的類。幸運的是,類不會簡單的堆在一起。.NET Framework通過鮮明的層次結構將類組織在命名空間中。

例如在先前的ASP中,你只有五個標準類的訪問,而在ASP.NET中所提供的類超過三千四百個!

命名空間是一個邏輯分組,像是,有關工作在System.IO的文件系統類型設置。您通過完整的類的命名空間,可以唯一識別在the.NET框架位置的任何一類。默認情況下,ASP.NET頁面,在一些選定的命名空間中包含的類,在ASP.NET里普遍應用類被系統初始化。

基于Asp.Net的個人博客網站的設計與實現

2.3 動態網站技術介紹

鑒于博客網站系統的操作界面均為Web頁面的形式,并且需要對各種用戶的請求實時進行處理以及返回結果,而這些是一般的靜態Web頁面所無法實現的,因此需要使用動態網頁技術。現在動態網頁技術有很多,例如CGI、SP.NET、JSP、ASP、ASP.NET等。本設計將以ASP.NET為主要技術。

ASP.NET是ASP版本的下一代,它不僅僅是ASP Four,而是一種新的Web開發框架,包含了許多新的功能。不像ASP,ASP.NET是完全基于模塊化和組件,它的可擴展性和定制是用ASP技術無法比擬的,在數據處理方面引入了許多令人振奮的新技術,為Web開發人員提供了更多的靈活性,網絡是有效的改善應用程序的開發效率。ASP技術相比,ASP.NET的進展是革命性的。ASP.NET和Windows2005 Advanced Server的完美結合,為小型和中型企業用戶和企業用戶的網絡商務活動提供了更好的穩定性,安全性,高效的運行環境。

2.4數據庫技術

該個人博客網站所具有的存儲用戶信息,文章,圖片,音樂等功能必然要通過數據庫技術來實現。

統一的SQL Server 2005中的語言風格,可以完成這項工作的數據庫活動,包括創建數據庫,數字模式,改變和查詢數據和整體安全的保障和數據庫的維護。數據庫應用系統的發展提供了一個良好的環境。即使系統在實際使用之后,用戶仍舊能夠根據需要來改變系統的結構,同時保證數據的正常運行,這一特點令系統有了非常優異的擴展性能。

在使用SQL語言訪問數據庫時,用戶不需要像C語言那樣具體的寫出如何實現操作,而只需要寫清楚要做的事情,SQL語言就可以將要求提交給數據庫管理系統,然后由數據庫管理系統自動全部工資。

自二十世紀八十年代以來,SQL便是DBMS這一系統所采用的規范化語言。最早的SQL標準是ANSI(American National Standards Institute)于1986年10也頒布的。ISO(國際標準化組織)于一九八七年六月正式通過了國際標準,并在此基礎上補充,****年四月,ISO發布有著全部功能的SQL,SQL-89。SQL-89標準的頒布,對數據庫技術隊發展和數據庫的應用都起到了巨大的推進作用。盡管如此,SQL-89依然有相當多不足之處。因此,SQL-89的基礎上,研究和修訂3年以上后,國際標準化組織與ANSI于1992年8月頒布了新的標準

——SQL-92 亦或是SQL2。值得注意的是它依然沒有很全面,因此于一九九九年有頒布了SQL-99或叫做SQL3。

SQL語言就能夠實現所數據庫活動的工作,包括數據庫的創建,修改和查詢數據和安全管理和維護數據庫,使用戶可以繼續死對數據庫結構根據修改后還需要數據庫系統投入使用。同時不會影像數據庫的運行,從而使得系統具有良好的可擴展性。

在使用SQL語言訪問數據庫的時候,用戶無需告訴計算機怎樣一步步的達成操作,只需要描述清楚所要實現的目的。SQL語言之后便會將用戶的要求提供到數據庫管理系統,然后其將自動將剩余的任務達成。

盡管SQL語言有著強大的功能,但是它并不復雜,通過很少的幾條命令便能實現眾多功能。而且,SQL語法和日常語言比較相似,十分便于學習。

SQL語言能夠通過到命令的模式直接應用,同時能夠嵌入在使用的編程語言之中。如今數據庫制作工具普遍的直接將SQL語言變成自己的語言,它是使用起來非常方便。貼現使用,為用戶提供了一個靈活的選擇。但不管是什么樣的應用,SQL語言都會采用大體相同的格式。鑒于SQL 2005所具有的功能可以方便高效的實現本次工作的目的,本系統將使用SQL 2005。

本網站的開發工具使用的是Visual Studio 的二零零八版,使用的是C#語言作為編程語言,用到的技術有ASP.NET這一微軟推出的先進技術,在數據庫開發方面使用的則是SQLServer數據庫,版本為二零零五。

2.5 ADO.NET連接數據庫

在網站的開發過程中,如何存取數據庫是最常用的部分。.Net 框架提供了多種存取數據庫的方式。

ADO.NET這種數據訪問技術雖然比較先進,但也存在著需要編寫大量重復代碼的問題,為了提高工作效率,ASP.NET 2.0進行來大膽的改進,增加來許多數據源控件和數據綁定控件。數據源控件包中的所有接入和數據處理功能,包括連接到數據源頭,使用選擇,更新,delete和插入SQL代碼來獲取數據和管理。數據綁定控件是用來顯示數據在多種方式。把數據來源相關的控件和綁定上數據的空間有機整合起來,用戶只需要輕點需要的屬性,基本上不用依靠任何代碼就都可以訪問數據庫。

System.Data命名空間管理專業類在ADO.NET中,數據處理是一個關鍵部分。所有依靠ADO.NET的軟件的實現方法的關鍵都是數據集。該數據集是一個內存庫中的副本。一個數據集包括許多數據表,每個數據表一般都會對應著一個數據庫的表或者視圖。有些特定的命名空間便是用來提供處理數據集,數據表和

視圖的類。通過這些類能夠方便的以編程的方式與數據庫中的數據進行交互。

System.Data命名空間中的類,涵蓋了所有的內容和關系數據庫,如某些特定的類的外鍵查找和修改數據視圖的數據關系表。

使用System.Data能夠將數據庫中的數據進行緩存,方便客戶端進行讀取,從而打到提高數據交互性能的目的。

System.Data是數據操作的關鍵,System.Data命名空間中包含的類負責著協調整合修改并且提供數據交互的一些常用功能:

通過使用共同System.Data命名空間中的類和接口的連接,可實現連接數據庫。在這之中最關鍵的是DataSet類,它管理者數據庫中的多個表。這些表在第一次讀出來之后就保存在內存中,在此讀取的時候可以直接從內存中讀取,因此一般會把DataSet放在內存的緩存里邊。10 基于Asp.Net的個人博客網站的設計與實現

第三章 需求分析

3.1 可行性分析

技術可行性:如今主流的計算機配置水平均可以實現平臺的安裝和穩定運行;SQL數據庫和VS2008等編程工具提供了可靠的編程環境;憑借以前所學的軟件開發方法和編程的知識,并且查閱相關資料和書籍可以為網站的開發提供足夠的技術保障。

社會可行性:目前互聯網上已經有很多成功的博客網站,博客系統的存在完全符合國家的相關法規和普遍的社會價值觀,不存在嚴重的障礙。此外,博客的的操作方式簡便,門檻低,適合大多數人使用,其內容符合大眾的價值觀,有利于提高人們學習、交流的效率,因此本設計具有可行性。

經濟可行性:本設計基于ASP.NET開發,完全可以實現免費、開源,用戶可以直接瀏覽博客信息和留言,并且可用通過免費注冊來獲得更多的功能,便于為人們接受。3.1.1 技術可行性

技術可行性是本設計最關鍵的部分,也是其他可行性的基礎。需要根據用戶所提出的各種功能要求和限制條件,在技術的角度上研究本系統實現的可行性。系統的開發涉及多個方面的技術。包括了系統的軟件和硬件,網絡的環境,人員的技術水平,系統開發的各種相關理論。在

在技術可行性方面需要考慮的有很多,首先是技術人員,無論任何工作,都是以人為本的,由人來完成,最后面向的用戶也是人。而不管是個人還是團隊,如果要開發一款產品都需要相應的技術基礎。對于個人來說必須要掌握相關的技術或者確定可以在可接受的時間范圍內掌握該技術才能夠去進行開發。對于團隊來說,團隊之中至少要有一個人能夠完整的掌握相關的技術,不能這個人會一點那個人懂一點來東拼西湊,這樣會大大的降低開發效率。而且對于團隊來說,良好的團隊協作是成功的必要條件,如果一個人所寫的代碼雖然能順利運行,但是不具有很好的規范性兼容性,那么這個團隊也是無法協同工作的。

之后要提到的就是采用的技術,從信息革命爆發以來所涌現出的新技術新理念層出不窮,但是為人們所廣泛接受的技術同龐大的總量比起來就顯得九牛一毛了。很多技術或者是不成熟,或者是不完善或者是不符合大多數人的價值觀。總

之因為各種各樣的原因導致它們沒有廣泛的應用。我們在開發的過程中確定了產品的功能之后要做的便是選擇合適的技術來實現它,這其中的大多數技術應當是成熟的可靠的,因為作為一款產品首先應該是可靠的,不能總是出現問題。但是也應當采用一些具有新特點的技術,令本產品同其他類似產品比起來有所獨特的地方,能夠在眾多同類產品中脫穎而出。當然,如果技術實力足夠強大,也可以更加大膽和廣泛的采用新技術新理念。

博客作為一款網絡應用,需要注意的還有網絡環境的問題,如何降低網絡環境的波動對博客系統性能產生的影響。比如博客在只有少數用戶的時候能夠流暢的運行,但是在面對大量的用戶時原有的資源就可能捉襟見肘,如何在低谷和高峰之間進行切換,在面對大量用戶時不會導致明顯的性能能下降,在面對少量用戶時避免資源的浪費。

最后要注意是硬件條件,有些程序在正常運行的時候看起來效果很好,但是它要求的硬件條件非常高。像是核爆炸的模擬程序,它已經各個大國所使用,它能夠為相關領域的科技發展提供極大的便利。但是由于它龐大到令人驚嘆的運算量,世界上也只有著為數不多的超級計算機能夠運行它。再比如一款游戲,在剛推出的時候如果只能在那個時期頂尖的旗艦級電腦平臺上才能流暢運行,那么能接受它的用戶面就會僅僅限制在一些游戲發燒友上,失去廣大的用戶群體,從而導致無法獲得理想的經濟回報。因此,對于博客這種需要依靠大的用戶群體來支撐的事物,必須用盡可能地的硬件要求便能實現好的用戶體驗。

技術成熟性方面本系統的軟件方面采用ASP.NET技術,而.NET技術已經投入實際應用很長時間,如今已經成為來計算機領域一門非常有前途的技術,它成熟、穩定。并且本網站的開發開發工具使用的是Visual Studio 的二零零八版,使用的是C#語言作為編程語言,用到的技術有ASP.NET這一微軟發明的先進技術,在數據庫開發方面使用的則是SQLServer數據庫,版本為二零零五。通過ADO技術將其與.NET有機結合起來開發出一個適應性強,穩定并且高效的系統,在相關的技術方面不存在不成熟,缺乏實際檢驗,缺乏實用性和適應性的問題。其硬件方面由于采用的是較老版本的軟件平臺,其對硬件的要求較低,現在絕大多數個人電腦均能運行。在技術人員方面,我之前在課堂上學習過ASP.NET網站的開發和SQL數據庫,并且通過在圖書館查閱相關資料,網上參考類似的成熟的相關產品,和老師同學的交流等掌握了所需的技術。預期整體開發過程所需時間小于畢業設計所規定的時間,能夠獨立按時完成任務。3.1.2 經濟可行性

經濟可行性是指可以使用的資源的可能性,經濟可行性研究的核心是成本效益分析,主要是估算開發成本是否會高于預期利潤。要關注開發設計所投入的資

本與軟件所帶來的經濟效益是否對稱,要關注軟件是否能夠給用戶創造經濟效益并且帶來好的體驗。對于一款產品來說,經濟可行性是至關重要的。我們開發產品的最終目的是為了產生經濟效益,如果這個最高目標無法得到實現,其他的努力都將是徒勞的。所謂經濟效益就是最后能產生的直接利益加上間接利益再減去開發成本和運行維護的成本所得到的收益。現有的博客的盈利方式主要有植入廣告,用戶個性化需求等方面。植入廣告已經成為了互聯網行業的一個主要盈利方式,比如谷歌公司百分之九十以上的經濟收入來自于廣告。而廣告盈利的前提是有這大量的點擊量,現在很多網站上有大量的惡意廣告和不友好的廣告,比如要實現點擊某個連接或者看到某些內容就必須點擊若干個廣告。這種方式在短期來看是能夠為網站提供大量的點擊率,但是隨著同類網站的發展,用戶會趨向于簡單友好的網站,而不是下載個文件都需要機械性的點擊關閉多次廣告的網站。好的廣告植入方式應該是在盡量不引起用戶反感并且能夠吸引用戶的注意力,用戶應該對廣告的內容有一定的選擇能力,而不是那些閃耀到晃眼的模式單一的廣告。并且由于不同人的博客有著不同風格主題,針對某一風格主題也有著特定的人群。比如CSDN中主要的用戶都是計算機領域相關的人員,而關注劉慈欣博客的人大多是科幻小說的愛好者。對于不同風格主題的博客應該投入不同類型的廣告,從另一個角度來說,采用某些技術可以記錄人們在瀏覽互聯網時所關注的信息,在這些信息中選擇出一些具有代表性的產品在特定用戶瀏覽博客時以圖片連接的形式呈現在其面前也是一種被廣泛使用并且十分有效的方式。

對于另一種盈利方式,也有著十分廣泛的市場,比如騰訊空間中有有少量的比較死板的主題和皮膚。而騰訊空間的主要使用者又是喜歡追求個性的年輕人,而在騰訊空間的商城中有著十分豐富并且符合年輕人喜好的各種付費產品,并且其又推出了各種鉆來以優惠為吸引人的方式讓用戶對其產生長期的依賴,使為其投入一定的金錢成為交水電費一樣的生活習慣,從而為產品帶來長期穩定的用戶群體。并且通過收取一定的費用可以提供一些特權服務(會員),比如更低廉甚至免費的個性化裝飾,在更大限度上放寬帶寬的限制,提供去除廣告的功能,使得瀏覽更加簡潔和流暢,并且可以擴展一些受限的功能(好友數量的限制,圖片最大數量的限制等)。并且將其付費方式與時下迅猛發展的新付費方式所結合,讓客戶足不出戶輕點鼠標或者發幾條短信就能購買到所要的功能和產品。在成本方面需要考慮的有開發的成本和運行與維護的成本。

開發成本是指在開發產品時所花費的人力,物力和時間。人力成本與開發人員的數量,層次有關,對于大型的高端的開發需要大量高端人才,其成人力本無疑將是巨大的。而對與小的點單的產品開發則往往只需要個人便能獨立完成,其目的又多以興趣愛好,驗證自身技術和較小的盈利為目的,這種開發的成本相對來說是很低的。在物力投入和花費方面也與所開發的產品是密切相關的,對于所

要開發的產品應該事先進行評估,確定其開發中所需要投入的各種成本,并且對今后的運行維護做出比較準確的預期。從而避免出現系統自身問題導致耗費大量人力物力來解決后期運行中的問題。

而我們所開發的這套博客網站系統正式基于提高用戶使用效率,節省工作時間,簡化操作管理的理念來設計的。并且本系統是個人獨立設計開發的,并不需要投入大量經費,系統今后的運行和維護也相當簡便,無需投入額外的資金,其成本不會出現超于預期的可能。并且在其過程中也可以提高個人的開發水平,因此在經濟上是完全可行的。在系統運行的過程中將定期進行系統備份,在遇到突發事件時只需將備份的系統在另外一臺具有所需環境的計算機上即可還原,并且重新運行,系統的可靠性高,風險小。3.1.3操作可行性

在當今這個信息技術迅猛進步的時代,信息技術早已深入到社會中的每個地方,它為人們帶來來便利的工作方式,優越的工作環境,因此也對人們的工作效率和操作水平提出了更高要求。在這種發展趨勢下,減少費時費力的人工操作,通過各種智能化軟件來提高工作效率和工作精度就成為了一個很重要的方向。

對于用戶來說一個可以輕而易舉上手的產品顯然比那些要讀完冗長的說明書甚至進行一定的學習培訓才能操作的產品受歡迎的多。一個成功的博客應該是

很友好的,對于任何一個熟悉上網方式的人都應該能夠無障礙的使用它。同時它的功能又應該是全面的,用戶可以用符合日常習慣的方式來實現所要達到的目的。對于一些新穎的功能,應該通過給予用戶一些獎勵的方式使用戶對其產生興趣,并且試用它。若是使用起來有一定的難度則應該給予一定的說明和引導。比如騰訊微博在更新出新功能時會通過種種獎勵和優惠積極像廣大用戶推廣,并且用很詳細的方式來一步步引導用戶學會使用新功能。

本博客網站系統的用戶平臺同時面向游客、普通注冊用戶和管理員,其界面簡潔,采用web的可視化界面,普通注冊用戶只需要輕點鼠標和鍵盤就可以使用博客;而數據的輸入和維護均由博客的管理者來完成。正是由于這些特性,本博客系統十分適于新手使用,無須學習復雜的教程便可以獲得好的體驗。故,本博客網站系統在操作上是可行的。

3.2 功能需求

用戶管理模塊:注冊(游客用戶)、登入(注冊用戶)、修改資料(注冊用戶)系統管理模塊:用戶管理(管理員)

文章管理模塊:添加(注冊用戶)、刪除(注冊用戶,管理員)

留言管理模塊:張貼評論(游客用戶,已注冊用戶,管理員)、刪除(注冊用戶,管理員)

相冊管理模塊:添加相片(注冊用戶)、刪除(注冊用戶,管理員)音樂管理模塊:添加音樂(注冊用戶)、修改(注冊用戶)、查詢(注冊用戶)、刪除(注冊用戶,管理員)

3.3 性能需求

數據精度要求:數據需要遵循嚴格的格式,否則系統將不會予以響應。時間要求:運行環境方面的連接響應時間應小于等于10秒,對大于180秒沒進行任何操作的用戶其訪問認證將失效,需要重新進行登入。

數據管理要求:即數據庫系統管理,其包括:

注冊信息表包含用戶名,密碼,住址,愛好,職業等基本信息。并且要求數據庫的自動增長比例為2%。

日志記錄:包含標題,時間,內容,作者等信息。留言管理:包含回復人,內容,時間等信息。相冊管理:包含評論人,內容,時間等信息。

控制:用戶在進入博客首頁面后,可以以三種身對博客網站系統進行瀏覽——游客身份,普通用戶身份(需要通過登錄)和管理員身份(需要以特定的帳號來登錄),在訪問over后關閉所瀏覽的網頁的同時也就退出了博客,3.4系統用例

根據以上需求分析,總結出個本人博客系統的基本功能需求。如圖3-1所示: 15

日志管理<><><><>圖片管理留言管理相冊管理<><>用戶管理系統管理員音樂管理用戶注冊<><><><><>瀏覽日志用戶登陸<>瀏覽相冊文章評論個人檔前臺用戶圖3-1 系統總用例圖

基于Asp.Net的個人博客網站的設計與實現

第四章 系統概要設計

4.1概述

本博客系統采用B/S結構,即Browser/Server或瀏覽器/服務器結構;建立在兩種Web服務模式之上,本模型結構適用于Internet環境下。用戶只需要連上Internet,便能夠在任何時間、任何地點使用本系統,本網站工作的原理如4-1:

執行過程請求客戶端回發驗證Web服務器傳送數據庫檢索 圖4-1 系統工作原理圖

4.2系統結構

本博客網站系統基于B/S架構,分為用戶前臺和管理者后臺這兩大模塊。

前臺的關鍵任務是:查看日志、查看相冊、大家評論、音樂背景、用戶登錄、用戶資料等功能模塊。

后臺的主要功能為:日志管理、相冊管理、圖片管理、留言管理等功能模塊。本系統的功能部分結構如圖4-2所示: 基于Asp.Net的個人博客網站的設計與實現

系系系系系系系系系系系系系系系系系系系日背日日發志留相添上景用日相歷志布類言冊加傳音戶志冊瀏留管日別管管相圖樂登查瀏覽言理志管理理冊片設錄看覽文板理置章圖4-2系統功能結構圖

從上圖可以看出本個人博客系統由前臺和后臺這兩個功能模塊組成。前臺功能模塊包括:

用戶登錄:用戶通過自己所注冊的賬號和密碼登錄成功后便能進入屬于自己的博客管理界面。

日志查看:日志查看可以分為對日志的列表進行查看和對日志的內容進行查看,并且日志可以根據類別進行瀏覽。

相冊瀏覽:相冊瀏覽包含首頁最新相冊和相冊列表這兩項,點擊相冊的類別便可以看到該類別的所有圖片。

留言板:本博客系統具有留言板功能,游客和用戶能均可以到留言板發表留言。

用戶資料:對于登錄之后的的用戶來說,在這里能夠修改自己的個人信息,對于么有登錄的用戶則只能瀏覽個人信息。

后臺功能模塊包括:

日志管理:即發布日志,更改日志,deleted日志,并可以對日志類別進行區分和修改。

留言管理:博主可以在留言板以博主身份回復前臺的留言信息。相冊管理:可以進行添加相冊,修改相冊,刪除相冊等操作。圖片上傳:用戶可以選擇指定的相冊,將上傳圖片至該相冊中。音樂設置:博主能夠在后臺對博客的背景音樂進行上傳、刪除等操作。

4.3 數據庫設計 個人檔基于Asp.Net的個人博客網站的設計與實現

4.3.1 數據庫設計概述

數據庫設計是使用現有的數據庫管理系統,針對特定應用的簡歷數據庫模型,建立數據庫來滿足它所要實際使用的環境。因此,它可以快捷的采集數據,進行內存操作和管理數據,實現使用者對信息需求和處理的要求。從另一個角度來看,數據庫的設計是在現實世界的數據庫管理系統的緊密結合,有機的過程,結合相應的。

在數據庫的設計過程之中,我們將會遇到的關鍵難題會是:

懂得計算機與數據庫的人往往缺乏應用業務的只是和實際經驗。而熟悉應用業務的人一般又不懂得計算機和數據庫。兩者兼具的人很少。

在項目的一開始旺旺不能明確應用業務的數據庫系統目標。能普遍適用的工具與設計方法幾乎不存在。

用戶的要求一般情況下并非在一開始就是鮮明的,而是在設計的過程中不斷的提出新要求,甚至在數據庫完全建立之后還會要求修改數據庫或者增加新的功能。應用業務系統成千上萬,難以找到一種廣泛試用于各種應用業務的工具和方法,隱刺增加里研究數據庫自動生成工具的難度。由此可見,研制一種適合所有應用業務的全自動的數據庫生成工具是不可能的。

要設計數據庫首先要明確系統目標。這樣可以確保開發工作得以順利實施,提高工作效率,保證數據模型的準確和完整。數據庫設計的終極目標是數據庫必須滿足使用者對數據的存儲和處理的要求。一個成功的數據庫應該是功能強大的。能夠準確的顯示工作數據。使用方便,易于維護。在系統實際投入使用的時候,對于用戶的請求能夠在合理的時間內給與響應。方便在投入使用之后根據實際情況對數據庫結構進行再次的改進。便于對數據的查找和編輯。維護數據庫的工作較少。具有可靠的安全措施可以保證數據的安全。冗余的數據盡可能少。便于數據的備份和恢復。數據庫的結構對于最后使用的用戶應當是可視化的。

新奧爾良方法。這種方法是一種比成熟的數據庫設計的辦法。其主要包括對需求進行分析,之后根據需求建立概念結構,以之前的工作為基礎簡歷邏輯結構,最后設計系統的物理結構等肆大部分。這種方法注重于數據庫的結構設計,而不太考慮數據庫的行為設計。

數據庫設計方法——E-R模型是以第三范式作為理論基礎的,抽象的語言規范世紀的方法,設計方法的基礎上,使用在數據庫設計的各個步驟中的的實際的技術和方法。

數據庫設計的實現方法,從根本上來講依舊是靠手工分析來設計的,他的基本思想是通過不斷的反復帶入和不斷的精益求精來實現的。

在數據庫設計過程中,首先要做的是需求分析,在這個部分要做的是對我們

所生活的世界中要實現的目標進行詳細調查,通過之前的調查中所得到的有用的信息,來確定系統的新功能,基本數據和處理方法收集支持系統目標。需求分析是基于用戶進行的調查,通過分析逐漸清晰的用戶需求的系統,包括數據本身和以這些數據為根本的各種處理工作。

用戶調查,獲取信息的用戶需求,其中的加工要求,安全性和完整性的要求和其它要求。在需求分析,通過頂部,逐步分解的方法分析系統,系統可以抽象為數據流程圖的形式,在這個階段,沒有確定具體的數據存儲。處理二字將系統要求的的功能在數據流圖中抽象的表達出來,整個函數對系統的要求能夠被逐步以多個子系統來實現主系統的功能要求,通過一步步用多個子系統等價代替的方法,將系統工作過程逐步劃分為可以清楚描述的N個子系統。

數據庫的需求分析是數據庫最重要也是最困難最麻煩的一步,如果這一步做得不好,那么后續的設計花費再多的時間,再怎么優化也無法從根本上改變之前的問題。

在明確了數據庫的需求之后要做的就是數據庫的結構設計。4.3.2 數據庫概念設計

設計數據庫的結構,需要以需求分析的結果作為基礎,一步步歸納總結出數據庫的概念,邏輯,物理結構。結構概念設計的概念模型,形成數據庫層,語義層模型。如ER模型的邏輯結構設計的模式和模式的數據庫,形成層結構模型,如基本表,視圖。物理結構設計的結果在設計結果的形成模式數據庫,使用的話,是屬于的描述,如數據庫文件或目錄,索引。

數據庫結構設計的第一步要做是確立概念性的結構,其頂部的信息結構的設計,會要求根據對使用者需求的研究出的結果,抽象出系統的信息結構,也就是概念模型,建立數據庫系統的結構是最重要的工作,獨立的邏輯結構設計,數據庫管理系統。

數據庫概念結構需要具有豐富的語義表達能力。表達各種用戶的不同需求,包括各種現實世界中的物體的描述,它們之間的連接,可滿足用戶數據處理的需求。容易溝通和理解。結構的概念是設計師和用戶之間溝通的主要工具。容易修改。當這個系統所使用的地方和應用中遇到的要求發生變化時,可以很容易地修改的概念結構,以反映這些變化。輕松轉換模型的各種數據,很容易推導出的DBMS的邏輯模型。

其設計的方法是采用E-R圖,其過程可以分為三步:

(一)在E-R模型的設計

設計內容包括當地的ER模型確定本地的ER模型范圍內,定義實體,關系和它們的屬性。主要核心是實際的現實情況是,加工,共同的特征提取,忽略不

重要的細節,而將這些需要的特征描述為概念。抽象的方法有聚蔟,概括,分類這三種。

(二)設計整體E-R模型

將所有部分E-R模型圖融合為一個整體E-R圖,即整體E-R模型。其方法主要有一次性將所有E-R模型有機融合在一起的方式和逐步累加的方式。在把部分E-R的模型集成為一個整體的E-R模型的過程中,消除各個部分E-R模型合并時所產生的沖突是其關鍵所在。這些矛盾一般分為三種情況:實體的屬性互相矛盾,即屬性的范圍矛盾和屬性的取值單位矛盾。命名的矛盾,是指同一個名字具有不同的意義與不同的名字有著相同意義這兩種情況。對于屬性和命明矛盾一般采用討論協商的方法進行結局。另外,結構的矛盾,它是指多個的屬性來對應有且僅有的一個對象,或者多個對象卻共同使用著一個屬性,不一樣的的排列順序的E-R模型并非是完全一樣的。對于前者可以通過把屬性轉換為實體或者將實體轉換為屬性的方法,使同樣的對象具有相同的抽象。后一種解決方案的方法是使該實體的屬性和ER模型的各部分的屬性,然后在屬性,以調整適當的。

(三)優化整體E-R模型

通過對相關實體的合并減少數量的實體,通常具有相同的原代碼實體合并。此外,如果多個實體之間存在1:1的關聯,那么你可以考慮把他們整合成一個實體,同時適當把多余的屬性和多余的鏈路消除掉。

通過對現實世界信息的抽象,建立概念模型,可以有效提高數據庫設計的效率。根據以前所學的知識,可以依靠系統E-R圖來描述概念模型,并且易于該圖所體現的系統中各個實體間關系來建立數據庫。相關的內容如圖4-3所示:

編號相冊名稱1管理N相冊相冊封面登錄賬號添加時間編號管理員信息11管理N登錄賬號登錄密碼登錄密碼管理編號用戶信息出生年月N電子郵件標題描述愛好星座編號日志信息內容類別發布時間

圖4-3系統E-R圖

4.3.3 數據庫實體設計

在概念設計完成的是進行E-R模型轉化為一個特定的數據庫管理系統在支持數據模型的組織,這是在一定條件下所限定的數據庫管理系統。它能夠對數據庫中所包括的信息的邏輯結構進行處理。

數據庫管理系統的具體數據支持的組織層形式有四種。層次的形式,網絡的形式,關系的形式和面向對象的形式。

在本設計中將用到的是E-R模型想關系模型的轉換。

其包含有兩個步驟:

(一)E-R模型向關系模型的轉換

從ER模型轉換關系模型中面對的問題是如何將實體和關系模型之間的關系,如何確定主代碼和屬性模型之間的關系。

(二)數據模型的優化

邏輯結構的設計結果并非是唯一的,因此應該根據實際需求對邏輯數據模型進行適當的調整與修改,即數據模型的優化。

在完成了以上工作之后,便到了物理結構設計的階段。物理結構依靠數據庫管理系統為基礎建立存儲結構,是把已經確定的數據庫邏輯結構性能盡可能提高的方法和技術。數據訪問,訪問和存儲分配設計合理高效的數據的路徑,數據庫結構和可行的。

其一般方法為確定數據庫的物理結構,用于選擇適合對數據庫進行物理訪問的方法和數據庫信息儲存的結構;對物理結構的時間效率和空間效率做出評價。

相冊信息實體,相冊包含編號;相冊的名字;相冊的封面圖;建立的時間這四個屬性,具體如圖4-4:

相冊名稱編號相冊相冊封面添加時間

圖4-4相冊信息實體圖

用戶信息包含有編號;登錄帳號;登錄密碼;出生年月;電子郵件地址;星

座;愛好;個人描述等屬性,如圖4-5:

登錄賬號登錄密碼編號用戶信息出生年月電子郵件描述愛好星座

圖4-5用戶信息實體圖

日志信息包含編號;標題;具體信息;類別;發布時間等屬性,如圖4-6:

編號日志信息標題內容類別發布時間

圖4-6日志信息實體圖

日志類別包含編號和類別名稱這兩個屬性,如圖4-7:

編號日志類別類別名稱 圖4-7日志類別信息實體圖

留言信息包含有編號;留言人;留言時間;留言內容;回復內容等屬性,如圖4-8: 23 基于Asp.Net的個人博客網站的設計與實現

編號留言信息留言人回復內容留言內容留言時間

圖4-8 留言信息實體圖

圖片信息包含有編號;圖片名稱;圖片描述;所屬相冊;上傳時間;圖片地址等屬性,如圖4-9:

編號圖片信息圖片地址上傳時間圖片描述圖片名稱所屬相冊

圖4-9 圖片信息實體圖

4.3.4 數據庫設計表

在完成了數據庫的結構設計和行為設計,并且編寫了實現用戶需求的應用程序之后要做的邊上利用DBMS提供的功能實現之前所做的設計,并且選擇盡可能好的方法。然后夾在數據并且調試和運行應用程序。

下面將介紹本博客系統所需要的數據庫中各個表的詳細信息。

Album信息表包含編號(ID),相冊名稱(AlbumName),相冊封面(AlbumPic),添加時間(addTime)。在這些字段中編號是該表的主鍵。如表4-1所示:

表4-1 相冊信息表

字段名 ID AlbumName AlbumPic addTime 數據類型 int nvarchar nvarchar datetime

長 度 4 50 50 8

主 鍵 是

否 否 否

述 編號 相冊名稱 相冊封面 添加時間

Music信息表包含編號(id),音樂標題(MusicPath)。其中編號作為該表的主鍵。如表4-2所示:

表4-2 背景音樂信息表

字段名 id MusicPath 數據類型 int int

長 度 4 50

主 鍵 是 否

述 編號 標題

Picture信息表包含編號(id),圖片地址(imagePath),相冊編號(AlbumId),相冊名稱(AlbumName),圖片描述(ds)。在這些字段中編號是該表的主鍵。依表4-3所示:

表4-3 相冊內容信息表

字段名 id imagePath AlbumId AlbumName ds 數據類型 int nvarchar int nvarchar text

長 度 4 50 4 50 16

主 鍵 是 否 否 否 否

述 編號 圖片地址 相冊編號 相冊名稱 圖片描述

Article信息表包含編號(id),日志標題(Title),日志內容(Contents),發布時間(addtime)。在這些字段中編號是該表的主鍵。如表4-4所示:

表4-4 日志信息表

字段名 id Title Contents addtime 數據類型 int nvarchar text datetime

長 度 4 50 16 8

主 鍵 是 否 否 否

述 編號 日志標題 日志內容 發布時間

UserInfo信息表包含編號(id),帳號(Username),用戶密碼(Userpwd),用戶生日(BirDay),電子郵件(Emal),星座(httpweb),愛好(address),注冊時間(addtime),用戶描述(ds)。在這些字段中編號是該表的主鍵。如表4-5所示:

基于Asp.Net的個人博客網站的設計與實現

表4-5 用戶信息表

字段名 id Username Userpwd BirDay Emal httpweb address addtime ds 數據類型 int nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar datetime text

長 度 4 50 50 50 50 50 50 8 16

主 鍵 是 否 否 否 否 否 否 否 否

述 編號 賬號 用戶密碼 用戶生日 電子郵件 星座 愛好 注冊時間 用戶描述

userliuyanban信息表包含編號(id),發布時間(Date),留言姓名(Name),回復內容(Reply),留言內容(Message)。其中編號作為該表的主鍵。如表4-6所示:

表4-6 留言信息表

字段名 id Date Name Reply Message 數據類型 int nvarchar nvarchar Text Text

長 度 4 50 50 16 16

主 鍵 是 否 否 否 否

述 編號 發布時間 留言姓名 回復內容 留言內容

ArticleType信息表包含編號(id),類別名稱(Name)。其中編號作為該表的主鍵。如表4-7所示:

表4-7 日志類別信息表

字段名 id Name 數據類型 int nvarchar

長 度 4 50

主 鍵 是 否

述 編號 類別名稱 基于Asp.Net的個人博客網站的設計與實現

第五章 系統詳細設計

通過將ASP.NET技術與SQL 2005數據庫系統的有機結合,通過科學的計劃方法實現了個人博客網站的建設工作。在這次設計的過程中,運用了很多在課本上學過的理論知識,但是經過實際操作發現僅靠這些并不足以實現目標。在開發的過程中,我認識到好的開發方法起著至關重要的作用,只有先做好前期的工作才能少走彎路,高效的達成目標。由于自己的實際經驗不足,在過程中出現不少考慮不周的地方,導致在后期的測試中花費了較多的時間,因此導致比較倉促,所設計的界面比較簡單,主要精力投入在功能的開發和調試中。盡管如此,系統依舊具有完整的功能和比較友好的界面。

5.1用戶登錄模塊的實現

實現用戶登錄的過程由以下幾個部分組成,第一步是對用戶所輸入的信息進行保存,之后利用ASP.NET程序在數據庫中檢索是否存在用戶輸入的信息,如果存在則返回正確的結果,否則就返回錯誤的結果。若返回正確結果,則顯示登陸成功,否則將顯示登錄失敗,請重新登錄。在這之中將使用驗證碼技術防止短時間內重復提交登錄請求。在這之中使用了GetDataReader方法,CheckCode驗證。

登錄頁面的頁面效果如圖5-1所示:

圖5-1 用戶登陸 基于Asp.Net的個人博客網站的設計與實現

用戶登錄過程的主要代碼如下:

protected void Button2_Click(object sender, EventArgs e)

{

string sno = TextBox1.Text.Trim();

string pass = TextBox2.Text.Trim();

SqlDataReader dr = data.GetDataReader(“select * from UserInfo where txtUsername='” + sno + “' and txtUserpwd='”+pass+“'”);

if(dr.Read())

{

if(string.Compare(Session[“CheckCode”].ToString(), TextBox3.Text, true)!= 0)//判斷所輸入的驗證碼與系統隨機生成的驗證碼是否相同

{

Label2.Text = “驗證碼錯誤。”;

return;

}

else

{

Session[“User”] = dr[“txtUsername”].ToString();

Session[“UserName”] = TextBox1.Text.Trim();

Response.Redirect(“loading.aspx”);

}//將用戶名和密碼與數據庫中的信息進行比對

}

else

{

Response.Write(“”);

} } 5.2留言板模塊的實現

本博客網站為用戶提供了留言板功能,所用用戶均可在留言板進行留言,博客擁有這在后臺可以查看和刪除留言信息。

留言的頁面效果如圖5-2所示:

圖5-2 用戶留言

留言的主要代碼如下:

protected void Page_Load(object sender, EventArgs e)

{

if(!IsPostBack)//頁面首次加載

{

rptMR.DataSource = data.GetDataReader(“select * from Message”);

rptMR.DataBind();

}

}

protected void btSubmit_Click(object sender, EventArgs e)

{

string sql = “insert into [Message](Name,Message)values('” + tbName.Text + “','” + TextBox1.Text + “')”;

data.RunSql(sql);

Alert.AlertAndRedirect(“感謝您的留言”, “Message.aspx”);

} 下面是留言板的后臺部分,博客擁有者在后臺可以進行查看和刪除留言的操作。

后臺管理留言的效果如圖5-3所示:

圖5-3 管理留言

5.3相冊模塊的實現

相冊模塊主要是對相冊中信息的展示,博客的擁有者可以進行添加相冊、編輯相冊、刪除相冊等操作。

相冊展示列表的實現效果如圖5-4所示:

圖5-4 相冊信息列表

主要的代碼如下: private void GetListPage()

{

try

{

DataSet ds = new DataSet();

ds = data.GetDs(“select * from Album ”, “Album”);

PagedDataSource objPds = new PagedDataSource();

objPds.DataSource = ds.Tables[0].DefaultView;

objPds.AllowPaging = true;

objPds.PageSize = 6;

int CurPage;

if(Request.QueryString[“Page”]!= null)

CurPage = Convert.ToInt32(Request.QueryString[“Page”]);

else

CurPage = 1;

objPds.CurrentPageIndex = CurPage1);

}

if(!objPds.IsLastPage)

{

hylastpage.NavigateUrl = Request.CurrentExecutionFilePath + “?Page=” + objPds.PageCount;

lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + “?Page=” + Convert.ToString(CurPage + 1);

}

DataList3.DataSource = objPds;

DataList3.DataBind();

}

catch

{

}

}

博客管理者在后臺憑借相冊相關介紹添加的部分可以實現對相冊加入多重介紹,包括相冊的名字,圖片的注釋。添加相冊信息實現的效果如圖5-5所示:

圖5-5 添加相冊信息

主要代碼如下:

protected void Button1_Click(object sender, EventArgs e)

{

string res;

upload up = new upload();

res = up.Up(file1, “../UpLoadImage/”);

this.Label1.Visible = true;

this.Label1.Text = up.Resup[Convert.ToInt32(res)];

this.pic.Text = up.s;

Image1.ImageUrl = “../UpLoadImage/” + pic.Text;

}

protected void btnAdd_Click(object sender, EventArgs e)

{

string AlbumName = this.txtAlbumName.Text;

string AlbumPic = pic.Text;

data.RunSql(“insert into Album(AlbumName,AlbumPic)values('”+AlbumName+“','”+AlbumPic+“')”);

Alert.AlertAndRedirect(“添加成功”, “MangerAlbum.aspx”);

} 首先我們將采用一個圖片上傳類來對圖片的上傳進行操作,用戶先獲取所要

上傳圖片的路徑信息,之后窩們將都用日期時間對圖片進行重命名,從而避免由于圖片重名而導致無法上傳的問題,然后采用Server.MapPath方法取得圖片將要存放的文件夾路徑,將圖片上傳到該文件夾中,最后將圖片的相對路徑信息保存到數據庫中。

5.4圖片管理模塊的實現

圖片管理模塊主要包括前臺圖片信息的展示,后臺對圖片信息的添加和管理以及上傳圖片等功能模塊。

圖片展示效果如圖5-6所示:

圖5-6 圖片信息展示

主要實現代碼如下:

private void GetListPage()

{

try

{

DataSet ds = new DataSet();

ds = data.GetDs(“select * from Pic ”, “Pic”);

PagedDataSource objPds = new PagedDataSource();

objPds.DataSource = ds.Tables[0].DefaultView;

objPds.AllowPaging = true;

objPds.PageSize = 6;

int CurPage;

if(Request.QueryString[“Page”]!= null)

CurPage = Convert.ToInt32(Request.QueryString[“Page”]);

else

CurPage = 1;

objPds.CurrentPageIndex = CurPage1);

}

if(!objPds.IsLastPage)

{

hylastpage.NavigateUrl = Request.CurrentExecutionFilePath + “?Page=” + objPds.PageCount;

lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + “?Page=” + Convert.ToString(CurPage + 1);

}

DataList3.DataSource = objPds;

DataList3.DataBind();

}

catch

{

}

} 在后臺可以實現圖片信息的添加、修改和上傳圖片等功能的操作。上傳圖片界面運行效果如圖5-7所示:

圖5-7 上傳圖片

主要實現代碼如下:

protected void Button1_Click(object sender, EventArgs e){

string res;

upload up = new upload();

res = up.Up(file1, “../UpLoadImage/”);

this.Label1.Visible = true;

this.Label1.Text = up.Resup[Convert.ToInt32(res)];

this.pic.Text = up.s;

Image1.ImageUrl = “../UpLoadImage/” + pic.Text;

}

protected void btnAdd_Click(object sender, EventArgs e)

{

string imagePath = pic.Text;

int AlbumId = int.Parse(DropDownList1.SelectedValue);

string AlbumName = DropDownList1.SelectedItem.Text;

string ds = this.txtds.Text;

data.RunSql(“insert into Pic(imagePath,AlbumId,AlbumName,ds)values('”+imagePath+“',”+AlbumId+“,'”+AlbumName+“','”+ds+“')”);

Alert.AlertAndRedirect(“添加成功繼續上傳”, “UpLoadPic.aspx”);}

5.5背景音樂的實現

背景音樂管理模塊包含兩個方面——在后臺添加背景音樂的功能和在前臺讀取背景音樂并且播放的功能。

博主進入后臺后可以電擊背景音樂設置按鈕選定背景音樂,然后上傳到數據庫中,這樣便成功實現了設置背景音樂。

背景音樂設置效果如圖5-8所示:

圖5-8 背景音樂設置

主要實現代碼如下:

protected void Button3_Click(object sender, EventArgs e)

{

string res;

upload up = new upload();

res = up.Up(file1, “../UserMusic/”);

this.Label1.Visible = true;

this.Label1.Text = up.Resup[Convert.ToInt32(res)];

this.pic.Text = up.s;

}

protected void Button4_Click(object sender, EventArgs e)

{

string sql = “update Music set MusicPath='” + pic.Text + “' ”;

data.RunSql(sql);//將音樂和說明信息上傳數據庫

Alert.AlertAndRedirect(“上傳背景音樂成功”, “SetMusic.aspx”);

} 這樣數據庫中便以存儲了背景音樂的路徑和名稱,在前臺登陸后便可以采用微軟自帶的音樂播放器來自動加載和播放背景音樂。

背景音樂的主要代碼如下:

width=“260”>

“>

5.6日歷模塊的實現

為了便與檢索文章,我們在博客中加入了日歷模塊,用戶可以點擊日歷模塊上的日期便能夠直接查詢該日期當天所發布的所有日志信息。其原理是在選擇日期后系統會把所選擇的日期值傳到文章頁面,通過檢索將結果顯示到頁面中。

日歷效果如圖5-9所示:

圖5-9 日歷效果

主要實現代碼如下:

protected void Calendar1_SelectionChanged(object sender, EventArgs e)

{

Response.Redirect(”CalendarArticleList.aspx?addtime=“ + Calendar1.SelectedDate.ToShortDateString());}

DataSet ds = new DataSet();

string sql = ”select * from Article where Addtime = '“ + Request.QueryString[”addtime“].ToString()+ ”'“;

ds = data.GetDs(sql, ”Article");經過一段時間的實際測試證明,該博客網站系統有著較高的穩定性,其操作簡單,功能齊全,所采用的技術成熟并且有很好的發展預期,故本設計基本達到預期。

由于自身的實踐水平不足,導致在后期調試中花費較多時間,因而時間比較倉促,很多地方不夠完善。比如其網站界面不夠美觀,對于一個網站來說,網站的頁面是用戶第一個看到的方面,其給用戶的印象對整個網站來說是至關重要的。

對于一個訪問量較大的網站來說緩存技術的應用也很重要,當網速較慢或者同時在線用戶數量很大的時候采用緩存技術可以有效的保證用戶的體驗。并且本系統由于沒有采用Ajax技術,導致在后臺添加動態信息的時候需要刷新,這也影響到了用戶的體驗。憑借對ASP.NET有效的發揮,以VS2008與SQL2005為平臺進行開發。從多方面說明了基于DotNet的個人博客網站的設計與實現的可行性。本博客系統的的搜索功能比較簡單,僅能夠按照日志的類別和日期來搜索,在本次設計的編程階段,由于之前所寫過的代碼量不多,編程經驗不足,導致容易出現問題。比如命名空間的錯誤,語法結構的錯誤,支持的瀏覽器的錯誤等問題。在很多細節的地方出現的錯誤往往導致整個程序無法運行,因此養成良好的編程習慣是至關重要的。只有通過不斷的實踐才能提高實際操作的水平,只有不斷學習成功的案例才能發現自身的不知。盡管有很多不盡如人意的地方,但是總體來說,所預期的功能基本達到了實現,設計之初的目標已經達成。40 基于Asp.Net的個人博客網站的設計與實現

第六章 總結

經過近三個月的努力,終于完成了這項程序設計及論文的撰寫。設計成品能夠符合我的設計初衷,即為特定年齡層用戶以及博客初次使用者編寫一款簡單方便的個人博客系統。

本系統所實現的具體目標如下:

1、界面簡潔、操作方便:使用完全控件式的頁面布局,上用戶在使用博客時更加簡單方便;用戶在使用博客的一些功能時只需按流程點擊鼠標即可,不存在復雜的操作功能,實現博客易操作的目標;系統風格樸實簡單,避免因花俏繚亂給人以不實之感。

2、即時可見:對博客進行的操作,包括發布、修改、刪除等,一旦操作成功將立該在系統的相應位置出現,實現系統消息的提交與發表之間的零時差性。

3、功能完善:本系統包含一般博客系統所具備的三個模塊:一般用戶瀏覽、注冊用戶操作、管理員管理。不僅具備每個博客都有的寫日志、上傳照片、回復留言、修改信息等模塊,甚至后臺管理員可以對管理系統注冊用戶,對用戶發布的日志、照片、視頻進行審核,違反發布原則的可以立刻進行刪除。

4、動態管理:能夠動態的完成對數據庫作息的存儲、搜索、修改等操作,實現對系統的動態管理。

在查閱了大量的書籍資料后,將書本上的理論知識同我制定的基本目標與功能想結合,設計出一套理想的實施方案。這樣不但將以前所學過的知識進行了鞏固,而且為今后從事軟件開發工作做好準備。

本系統的界面采用簡潔清爽的風格,系統功能讓人一目了然,操作簡單易上手。在系統功能實現方面主要使用ASP.NET、SQL Server 2005 數據庫等開發技術。在設計早期由于對一些知識有些欠缺,在老師的幫助下參考有關書籍、解答相關疑問、糾正設計錯誤等,使我能夠順利的完成程序的設計。

經過這幾個月的學習,我現在已經基本掌握了ASP.NET、SQL Server 2005、C#等網站開發技術,完成了從入門到運用的階段跨越。除此之外,在程序設計過程中我還學會了做事要態度嚴謹、心思細膩,不然在過程中出現任何一個微小的錯誤都可能造成最后失敗的結果。

由于時間和能力有所限,本系統必然不是完美的,程序和論文都存在不足之處。我今后將會更加努力學習軟件開發方面的知識,爭取將這個設計盡可能的改進完善。

參考文獻

[1]Roger S.Pressman.軟件工程實踐者的研究方法(英文版第4版)[M].機械工業出版社.1999.[2]American Microsoft.Microsoft SQL Server 2000 數據庫編程(第一版)[M].北京:希望電子出版社.2001.[3]李海龍.SQL Server 2000 圖解教程(第一版)[M].北京:希望電子出版社.2001.[4]李香敏.SQL Server 2000 編程員指南(第一版)[M]..北京:希望電子出版社.2000.[5]Michael Lee Rick Sawtell.MCSE:SQL Server Administration 考試指南(英文原版)[M].電子工業出版社.1999.[6]JD UIlman and JWidom.A first course in databasr systems[M].北京:清華大學出版社.1997.[7]Andrew.M.Fedorchek.SQL Server核心技術精解.中國水利水電出版社.2000.[8]Steve Adrien Deluca.SQL Server 7性能優化[M].機械工業出版社.2000.[9]范盛榮.Visual C#2008控件使用范例詳解[M].北京:清華大學出版社.2009.[10]黃國平.使用開發參考大全 C#[M].電子工業出版社.2008.[11]沈士根.Web程序設計——ASP.NET實用網站開發[M].北京:清華大學出版社.2009.[12]劉乃麗.精通ASP.NET 2.0+SQL Sever 2000 項目開發[M].北京:人民郵電出版社.2007.[13]Hewardt.Advanced dot NET Debugging.[M].Addison-Wesley.2010.[14]郭興峰.ASP.NET 動態網站開發基礎教程(C#篇)[M].清華大學出版社.2006 [15]陳惠貞.陳俊榮.ASP.NET程序設計[M].機械工業出版社.2006.42

致謝

在畢業設計期間,老師們認真負責的工作態度、客觀嚴謹的治學精神、深厚扎實的理論知識和為人師表的道德風范都給我留下了深刻的印象,這些都是值得我用一生學習的寶貴財富。

在本次畢業設計的過程中,我鞏固了大學中所學的理論知識,提高了時間能力,通過XX老師的悉心指導我成功的將自己所學的理論知識同實際需要有機結合起來,在完成設計的過程中我獨立調研,全面分析,系統的靈活的運用理論知識解決了很多實際問題,并且在這個過程中發現自身的不足,從而使自己的整體理論水平進一步提高。與此同時,老師們嚴謹的治學精神,認真的工作態度也深深的感染了我,我將在今后的工作學習中以此為楷模不斷進取。

在此,我向給予了我巨大幫助的各位老師們和同學們致以深深的感謝與敬意,在你們的幫助下我才能取得今天的成績。與此同時,謹向審稿的老師們致以衷心的感謝!

第五篇:博客網站設計制作策劃書

博客網站設計制作策劃書

一、前期調研分析:

1、創建博客網站所遵循的一般原則

(1)系統性原則。創建者要提供設計方案,還應充分了解用戶的一些基本情況,并將其需求等要素融入到網站建設方案中。

(2)完整性原則。博客又稱為網絡日志,是一種大眾化的網絡載體,它是一種由個人管理、不定期張貼新文章的網站,應該為用戶提供完整的信息和服務:網站的基本要素合理、完整;網站的內容豐富、有效;網站的服務和功能適用、方便;網站建設與網站運營維護相銜接、支持。

(3)友好性原則。博客網站的友好性包括以下幾個個方面:對用戶友好——滿足用戶需求、獲得用戶信任;對網絡環境友好——適合搜索引擎檢索、便于積累網絡資源;對經營者友好——網站便于管理維護、能提高工作效率。

(4)簡單性原則。在保證網站基本要素完整的前提下,盡可能減少不相關的內容、圖片和文件等,使得用戶以盡可能少的點擊次數和盡可能短的時間里獲得需要的信息和服務。

(5)適應性原則。博客網站的功能、內容、服務和表現形式等需要適應不斷變化的網絡環境,網站應具有連續性和可擴展性。

2、網站建設基本流程規范

(1)制定網站規劃方案,包括網站預期目標、狀況分析、網站欄目結構、用戶行為分析及內容規劃、網頁模版設計、網站服務器技術、網站運營維護等基本內容;

(2)網站技術開發、網頁設計;

(3)網站測試;

(4)網站發布和推廣;

(5)網站維護及管理。

(6)網站設計對不同瀏覽器具有兼容性。

二、網站的功能定位:

1、個人博客網站的基本功能和內容

(1)與互聯網絡實現無縫鏈接;

(2)具有信息發布、信息分享和管理功能;

(3)詳細的個人介紹;

(4)詳細的聯系方式;

(5)具有較強的互動性;

(6)相關的聯系和服務信息;

(7)在線服務信息;

(8)持續更新的信息;

(9)相關網站鏈接管理功能;

三、網站技術方案:

(網站設計和制作中所采用的技術)

1.Flash特效功能;

2.使用各種常用行為;

3.調用javaScript;

4.具有一定的動態效果;

5.運用頁面布局技術(DIV+CSS);

四、網站內容規劃:

我的個人博客網站大體上包括以下內容:我的圈子,我的相冊,我的音樂,最新動態,實時互動等模塊,各模塊簡介如下:

1.我的圈子簡介:

(1)介紹我和博客創建的同學,把同學加到我的網頁中并對每個人做詳細的介紹,形成一個同學錄一樣的子頁面,在這里邊每個人都可以書寫個人的興趣愛好。

(2)個人簡歷。首先是詳細的自我介紹,然后加上個人簡歷,以便更多的人了解我。

2.我的相冊簡介:

因為只要有 QQ號的幾乎都有自己的空間所以我可以加個超連接,連接到我的QQ空間、我的相冊:

(1)設計個人的相冊

(2)朋友的相冊

(3)貼圖,如果發現好的圖片我收集起來可以和廣大朋友共同分享。

3.我的音樂簡介:

這個模塊主要包括:

(1)國內最新流行的音樂

(2)日韓最新流行的音樂

(3)歐美最新流行的音樂。

4.最新動態簡介:

(1)網站公告

(2)站內新聞

5.項目互動簡介:

(1)請你留言,通過這個模塊可以實時交流。

(2)博客論壇。

五、網頁設計:

首頁的設計簡述為了使我的的首頁美觀生動、吸引人。在我的首頁我還添加了形象開頭動畫頁面,在頁面上首先映入你眼簾的是美麗的圖片在它的上面我添加可透明的FLASH動畫,這樣會使網頁具有動態美感,加上合理的顏色搭配,動聽的背景音樂。無論是從視覺、聽覺還是感覺上都是一個不錯的博客網站。在網站的右上角我還插了滾動字幕,這樣可以讓瀏覽著第一時間了解我本站的最新動態。在網頁的右下角是我的網站的名稱,通過點擊它就可以進入我的主頁。

1.網站名稱:博客組團

2.網站LOGO:

3.網站作用:讓別人了解我、認識我。

4.網站規模:因為是個人博客網站,以團隊平均每人做1個頁面的數值來建立網站,所以規模不大。由6個網頁頁面組成。

5.網站目標客戶:學生及青年朋友。

6.網站特色:我的博客網站受眾一般為學生,所以在色彩上和設計風格上追求學生的口味,以校園的學習和生活為主題,在內容上的特色表現為:

(1)內容標準化與個性化。

(2)充分體現互動性。

(3)內容實用性。

(4)多媒體技術專業性。

(5)網站平臺延展性。

7.網站的宣傳標語:展示自我,分享快樂。

8.網站的風格及配色方案:

網站標準色:整個網站以橙黃色為主基色,配以黑白色,我認為配這種色代表年輕人的激情。

9.網站標準字體:在字體上我主張采用默認字體,因為這種字體無論在那種瀏覽器上都能正常顯示。所以我采用系統默認字體。

10.網站的欄目設計(畫出欄目結構圖):

主頁布局示意圖

子頁示意圖

六、網頁測試:

博客網站在本地和服務器有無圖片和動畫無法顯示或鏈接失效等情況。

七、網站發布與推廣:

通過廣泛發布郵件信息獲得第一注意力,有效加注搜索引擎是注意力推廣的必備手段之一。加注搜索引擎既要注意措辭和選擇好引擎,也要注意定期跟蹤加注效果,并做出合理的修正和補充。通過確定博客形象、宣傳標識、口碑傳遞、公益活動、市場調查、相關單位機構合作等,并且切實履行承諾,在活動中宣傳網站形象,獲取忠實訪客和同行的口碑,是推廣網站的重要辦法,也是匯聚博客人氣的最直接辦法。博客社區是博客網站的核心,大力營造博客活動社區,推陳出新的倡導文化建設、開辟博客生活新時尚,吸引用戶眼球。

八、博客網站設計日程表:

1.小組分工與合作:

前期策劃制作:許青

主頁制作:(index.html)鄭周勇

子頁制作:(如圖所示)

(第1張:1.html)許青

(第2張:2.html)馮俊馳

(第3張:3.html)唐辰

(第4張:4.html)潘俊標

(第5張:5.html)張旭光

項目測試報告:許青

項目匯報:鄭周勇

2.博客網站策劃書:2012年5月26日

博客網站設計與制作:2012年5月28日---6月

博客網站測試:2012年5月31日

博客網站測試報告:2012年6月2日

博客網站項目匯報:2012年6月4日

九、費用明細:

1.網頁制作人員工資:

3000(元/月/人)/30(天)*6(人)*8(天)=4800元

2.為了達到最好的視覺效果,現推薦使用10000298 整機租用-酷睿2 Q8400型(推薦)server108服務器,租賃價格為:3200元/季。

下載基于java的博客網站設計與開發畢業論文word格式文檔
下載基于java的博客網站設計與開發畢業論文.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    網站開發畢業論文(共5則范文)

    SUSAN CLARK: And now, the weekly VOA Special English program of American stories. (MUSIC) Our story today is called "A Municipal Report." It was written by O. H......

    畢業論文開題報告(ASP網站開發)

    開題報告填寫要求 1.開題報告作為畢業設計(論文)答辯委員會對學生答辯資格審查的依據材料之一。此報告應在指導教師指導下,由學生在畢業設計(論文)工作前期內完成,經指導教師簽署意......

    JAVA網站開發與優化如何提高代碼運行效率

    JAVA網站開發與優化如何提高代碼運行效率 可供程序利用的資源(內存、CPU時間、網絡帶寬等)是有限的,網站優化的目的就是讓程序用盡可能少的資源完成預定的任務。網站優化通常......

    網站設計畢業論文5篇

    目錄 摘 要 .................................................................................................................. 1 Abstract .............................

    網站設計 畢業論文 畢業設計

    (論文設計(論文)題目 JSP動態網站設計 學 院 教 學 系 班 級 姓 名 指導教師 畢業設計) 畢業論文 JSP動態網站設計 摘要 隨著Internet技術的發展,人們的日常生活已經離不......

    畢業設計-博客網站

    第一章緒論 1.1 系統開發背景 隨著計算機技術的發展和普及,blog得到了極大的發展。Blog,是Weblog的簡稱。blog是一種新的生活方式、新的工作方式、新的學習方式和交流方式。它......

    JAVA開發個人簡歷

    個 人 簡 歷 個人信息 姓名:xxxxxxx性別:x 電話:187-xxx7-xxxx年齡:22 郵箱: lxxxxxxx@xxx.com專業:軟件技術應聘職位 Java軟件開發工程師 專業技能 熟練掌握CoreJava編程,具有扎實......

    java開發面試題

    1、 編寫程序 題目:古典問題:有一對公母豬,從出生后第3個月起每個月都生一對豬,小豬長到第三個月后每個月又生一對豬,假如豬都不死,問每個月的豬總數為多少? 答案: public class li......

主站蜘蛛池模板: 无码成人网站视频免费看| 少妇熟女天堂网av| 亚洲一区二区三区av在线观看| 激情国产一区二区三区四区| 婷婷久久综合九色综合绿巨人| 亚洲综合色成在线观看| 免费福利视频一区二区三区高清| 东京热无码中文字幕av专区| 国产一区二区三区内射高清| 国产精品免费_区二区三区观看| 妺妺窝人体色www在线小说| 亚洲国产成人久久精品软件| 亚洲成av人在线播放无码| 波多野结衣乱码中文字幕| 风流老熟女一区二区三区| 国产精品无码久久久久久久久久| 欧美 丝袜 自拍 制服 另类| 国产精品无码av不卡顿| 日本一区二区三区专线| 中文字幕韩国三级理论| 日韩、欧美、亚洲综合在线| 野外做受又硬又粗又大视频| 美女视频黄的全免费视频网站| 久久精品中文字幕有码| 精品亚洲欧美无人区乱码| 亚洲精品国偷自产在线99人热| 国产精品久久久久9999赢消| 国产无遮挡a片无码免费软件| 99久久精品费精品国产| 亚洲欧洲日产国码二区| 北条麻妃国产九九九精品视频| 成人精品一区二区三区在线观看| 热久久国产欧美一区二区精品| 性无码免费一区二区三区屯线| 麻豆tv入口在线看| 国产精品青青草原免费无码| 亚洲成在人线在线播放无码| 日韩激情无码av一区二区| 有码中文av无码中文av| 国产亚洲精品久久久久久无亚洲| 国产成人精品123区免费视频|