欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      基于java的博客網(wǎng)站設(shè)計(jì)與開發(fā)畢業(yè)論文

      時(shí)間:2019-05-15 11:07:39下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫小編為你整理了多篇相關(guān)的《基于java的博客網(wǎng)站設(shè)計(jì)與開發(fā)畢業(yè)論文》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《基于java的博客網(wǎng)站設(shè)計(jì)與開發(fā)畢業(yè)論文》。

      第一篇:基于java的博客網(wǎng)站設(shè)計(jì)與開發(fā)畢業(yè)論文

      編號(hào)

      中央廣播電視大學(xué)計(jì)算機(jī)與科學(xué)技術(shù)專業(yè)

      業(yè)

      學(xué)生姓名:黃志剛

      學(xué) 號(hào):14360012501

      專 業(yè):計(jì)算機(jī)與科學(xué)技術(shù)

      班 級(jí):

      指導(dǎo)教師:李慧

      2016年04月

      目錄

      目錄

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

      前言

      文獻(xiàn)綜述

      第1章 緒論

      第1節(jié) 第2節(jié) 背景

      研究的目的與意義

      第2章 設(shè)計(jì)簡(jiǎn)介及設(shè)計(jì)方案

      第1節(jié) 第2節(jié) 第3節(jié) 設(shè)計(jì)原則 運(yùn)行架構(gòu) 設(shè)計(jì)方案

      第3章 相關(guān)技術(shù)介紹

      第1節(jié) 第2節(jié) 第3節(jié) MVC簡(jiǎn)介

      Spring 的起源和背景 Hibernate 概述

      第4章 需求分析

      第1節(jié) 第2節(jié) 注冊(cè)博友 普通用戶

      I 9 10 10 11 11 12 12 14 15 15 15 15 17 18 20 第5章 系統(tǒng)架構(gòu)設(shè)計(jì)

      第1節(jié) 第2節(jié) 系統(tǒng)架構(gòu)說明: Hibernate層

      5.2.1 設(shè)計(jì)持久化對(duì)象(PO)5.2.2 實(shí)現(xiàn)DAO 層 5.2.3 DAO組件的定義 5.2.4 實(shí)現(xiàn)DAO組件 5.2.5 部署DAO 層

      第3節(jié) 第4節(jié) 實(shí)現(xiàn)Service 層 MVC 層實(shí)現(xiàn)

      5.4.1 1.Model 部分 5.4.2 View 部分

      5.4.3 3.Controller部分 5.4.4 采用Ajax加深用戶體驗(yàn)

      設(shè)計(jì)結(jié)果及對(duì)設(shè)計(jì)結(jié)果的分析

      全文總結(jié)

      致謝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 文獻(xiàn)綜述

      第1章 緒論

      第1節(jié) 第2節(jié) 背景

      研究的目的與意義

      第2章 設(shè)計(jì)簡(jiǎn)介及設(shè)計(jì)方案

      第1節(jié) 第2節(jié) 第3節(jié) 設(shè)計(jì)原則 運(yùn)行架構(gòu) 設(shè)計(jì)方案

      第3章 相關(guān)技術(shù)介紹

      第1節(jié) 第2節(jié) 第3節(jié) MVC簡(jiǎn)介

      Spring 的起源和背景 Hibernate 概述

      第4章 需求分析

      第1節(jié) 第2節(jié) 注冊(cè)博友 普通用戶

      第5章 系統(tǒng)架構(gòu)設(shè)計(jì)

      第1節(jié) 第2節(jié) 系統(tǒng)架構(gòu)說明: Hibernate層

      5.2.1 設(shè)計(jì)持久化對(duì)象(PO)5.2.2 實(shí)現(xiàn)DAO 層 5.2.3 DAO組件的定義 5.2.4 實(shí)現(xiàn)DAO組件

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

      第3節(jié) 第4節(jié) 實(shí)現(xiàn)Service 層 MVC 層實(shí)現(xiàn)

      5.4.1 1.Model 部分 5.4.2 View 部分

      5.4.3 3.Controller部分 5.4.4 采用Ajax加深用戶體驗(yàn)

      設(shè)計(jì)結(jié)果及對(duì)設(shè)計(jì)結(jié)果的分析

      全文總結(jié)

      致謝21

      IV

      摘要

      越來越多的網(wǎng)絡(luò)用戶希望能夠在網(wǎng)絡(luò)平臺(tái)上更多地展現(xiàn)自己的個(gè)性,更方便地與他人互動(dòng)交流,擁有一個(gè)自己獨(dú)立的空間,隨著Web2.0時(shí)代的到來,一個(gè)新的概念出現(xiàn)了——博客。

      首先介紹了博客網(wǎng)站設(shè)計(jì)的意義和背景,主流博客網(wǎng)站的主要功能。重點(diǎn)介紹了基于J2EE架構(gòu)的博客網(wǎng)站設(shè)計(jì)方案,實(shí)現(xiàn)的主要功能。

      其次,重點(diǎn)講述了博客網(wǎng)站的業(yè)務(wù)邏輯層和持久層的設(shè)計(jì)與開發(fā)過程中所涉及的技術(shù)及開源框架。系統(tǒng)如何以Spring 框架為核心,向下整合Hibernate進(jìn)行持久層訪問,向上整合Struts 按清晰的MVC 模式控制,怎樣劃分應(yīng)用的層次。簡(jiǎn)述了頁面的請(qǐng)求的分發(fā)及流程。

      最后對(duì)BLOG網(wǎng)站開發(fā)中所碰到的一些問題,并針對(duì)這些問題提出一些解決方案,最后對(duì)系統(tǒng)性能作出一些簡(jiǎn)要評(píng)估,闡述了一些個(gè)人想法。

      關(guān)鍵詞: 博客,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

      前言

      本文介紹了基于輕量級(jí)J2EE開發(fā)博客網(wǎng)站。同時(shí)利用Spring、Struts、Hibernate、Ajax等框架整合開發(fā)。本文主要分為七章。

      第一章主要介紹了進(jìn)行博客網(wǎng)站的背景及意義。第二章對(duì)博客網(wǎng)站設(shè)計(jì)方案做了簡(jiǎn)要介紹。第三章介紹了博客網(wǎng)站的需求分析。

      第四章詳細(xì)介紹了系統(tǒng)的架構(gòu)設(shè)計(jì),并詳細(xì)講述了通過Spring 框架,向下整合Hibernate 進(jìn)行持久層訪問,利用DAO模式隔離業(yè)務(wù)邏輯層與具體持久層,向上整合Struts按清晰的MVC模式構(gòu)建系統(tǒng)。

      第五章簡(jiǎn)單講述了系統(tǒng)設(shè)計(jì)時(shí)遇到的問題及解決方案,另外對(duì)系統(tǒng)的性能作了一個(gè)簡(jiǎn)要的評(píng)論及設(shè)計(jì)結(jié)果和設(shè)計(jì)結(jié)果分析。

      第六章對(duì)全文所使用的方法、結(jié)果以及目的和意義做了全面的總結(jié),展望java技術(shù)在Web上的一些應(yīng)用。

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

      VII

      文獻(xiàn)綜述

      Hibernate相關(guān)文獻(xiàn)介紹

      文獻(xiàn)錯(cuò)誤!未找到引用源。圍繞著ORM,講述了對(duì)象映射配置,對(duì)象關(guān)系映射、集合映射、對(duì)象的操作和查詢。及詳細(xì)如何利用Hibernate 構(gòu)建DAO層,怎樣根據(jù)PO的關(guān)系。面向?qū)ο蟛僮鲾?shù)據(jù)庫,怎么配置數(shù)據(jù)庫映射文件。Java基礎(chǔ)文獻(xiàn)概述

      文獻(xiàn)錯(cuò)誤!未找到引用源。講述了java基礎(chǔ)知識(shí),如控制流程、初始化和清理、接口和內(nèi)部類等。并講述如何利用對(duì)象提供服務(wù),并通過接口隱藏具體實(shí)現(xiàn)。J2EE相關(guān)文獻(xiàn)概述

      文獻(xiàn)錯(cuò)誤!未找到引用源。論述了在J2EE平臺(tái)中在各層經(jīng)常遇到的問題,該文獻(xiàn)詳細(xì)講解如何解決J2EE平臺(tái)所遇到的問題。

      文獻(xiàn)錯(cuò)誤!未找到引用源。將述了如何構(gòu)建輕量級(jí)的J2EE企業(yè)應(yīng)用程序,并講解MVC在Web中應(yīng)用,怎么將請(qǐng)求控制并轉(zhuǎn)發(fā),Struts標(biāo)簽。

      文獻(xiàn)錯(cuò)誤!未找到引用源。詳細(xì)講述了Spring 的控制反轉(zhuǎn)、AOP編程思想。及其怎么利用Spring整合Hibernate,利用Spring提供IOC容器管理DAO組件,利用事務(wù)管理SessionFactory。

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

      文獻(xiàn)錯(cuò)誤!未找到引用源。這本書詳細(xì)講述了架構(gòu)設(shè)計(jì)的方法。架構(gòu)設(shè)計(jì)應(yīng)該包括那些方面。

      怎么應(yīng)用架構(gòu)模式。Ajax技術(shù)文獻(xiàn)概述

      文獻(xiàn)錯(cuò)誤!未找到引用源。講述了JavaScript、CSS、DOM、XML的在Ajax上一些應(yīng)用。如何利用這四個(gè)技術(shù)實(shí)現(xiàn)html片段的替換。并結(jié)合一些實(shí)例講述如何利用Ajax 實(shí)現(xiàn)友好用戶體驗(yàn)。Eclipse文獻(xiàn)概述

      文獻(xiàn)錯(cuò)誤!未找到引用源。講述了如何利用Eclipse開發(fā)java應(yīng)用程序。該文獻(xiàn)主要講如何構(gòu)建java開發(fā)環(huán)境,如何安裝Eclipse插件。并利用Eclipse自動(dòng)生成一些代碼。Jsp文獻(xiàn)概述

      文獻(xiàn)錯(cuò)誤!未找到引用源。圍繞著實(shí)例講述Jsp的各種技術(shù)。比如Servlet,JavaBean 在Jsp中的應(yīng)用。本文中的圖片播放器和音頻播放器是基于這書上實(shí)例改進(jìn)的。

      VIII

      第1章 緒論

      第1節(jié) 背景

      商業(yè)網(wǎng)站設(shè)計(jì)的主要目的一般是通過網(wǎng)站的推廣,實(shí)現(xiàn)更多網(wǎng)絡(luò)用戶的關(guān)注,從而吸引更多的企業(yè)用戶投入更多的宣傳經(jīng)費(fèi)到網(wǎng)站上。

      長(zhǎng)期的戰(zhàn)略目標(biāo),商業(yè)網(wǎng)站不僅是公共產(chǎn)品信息和服務(wù)的推廣,它還是將買家與賣家、廠商和合作伙伴緊密結(jié)合的平臺(tái),借助這些商業(yè)網(wǎng)站可以消除企業(yè)與客戶之間時(shí)間與空間帶來的障礙。

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

      1.博客的注冊(cè)、登錄驗(yàn)證功能

      2.網(wǎng)絡(luò)用戶通過關(guān)鍵字搜索博文功能 3.最熱門博客頁面推薦瀏覽

      4.文章詳細(xì)內(nèi)容及相關(guān)評(píng)論顯示 5.博客頁面訪問量統(tǒng)計(jì)

      6.博客個(gè)人文章管理維護(hù)功能

      7.博客個(gè)人文章分類管理維護(hù)功能 8.博客個(gè)人友情鏈接維護(hù)功能

      9.博客個(gè)人基本信息管理維護(hù)功能 10.博客圖片上傳及個(gè)人相冊(cè)管理

      11.網(wǎng)絡(luò)用戶寫留言,博主查看留言。第2節(jié) 研究的目的與意義

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

      第2章 設(shè)計(jì)簡(jiǎn)介及設(shè)計(jì)方案

      在整個(gè)blog進(jìn)行開發(fā)之前,要確定出整個(gè)項(xiàng)目的整體架構(gòu),包括系統(tǒng)的選型、運(yùn)行環(huán)境的確定及系統(tǒng)結(jié)構(gòu)設(shè)計(jì)。下面對(duì)這進(jìn)行詳細(xì)介紹。第1節(jié) 設(shè)計(jì)原則

      在進(jìn)行軟件系統(tǒng)開發(fā)的最初環(huán)節(jié),一般都需要進(jìn)行系統(tǒng)的選型,即根據(jù)系統(tǒng)功能的實(shí)際需求,選擇合適的開發(fā)工具及軟件架構(gòu)。

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

      為了增加系統(tǒng)的吞吐量,提高并發(fā)處理客戶請(qǐng)求數(shù)量,系統(tǒng)采用了IBM服務(wù)器作為主機(jī)。在數(shù)據(jù)庫處理方面,不需要在數(shù)據(jù)層借助存儲(chǔ)過程及數(shù)據(jù)庫服務(wù)器端函數(shù)封裝過多的業(yè)務(wù)邏輯,因此數(shù)據(jù)庫系統(tǒng)采用相對(duì)精巧的MySQL錯(cuò)誤!未找到引用源。

      該在線博客系統(tǒng)服務(wù)器端如果需要布置到其他主機(jī)上,則該主機(jī)必備條件如下:

      1.服務(wù)器端操作系統(tǒng):獨(dú)立于操作系統(tǒng)的跨平臺(tái)系統(tǒng),客戶端MicroSoft Windows 2000及以上;

      2.數(shù)據(jù)庫:MySQL 5.0.27版本; 3.Web服務(wù)器:Tomcat 5.5及以上版本,配合MVC設(shè)計(jì)模式及 Hibernate開發(fā)架構(gòu); 4.客戶端運(yùn)行環(huán)境:能運(yùn)行IE 5以上或Netscape 5以上瀏覽器的操作系統(tǒng),配合

      使用Ajax技術(shù);

      5.客戶端運(yùn)行工具:目前的系統(tǒng)采用瀏覽器作為客戶端,為了支持Ajax開發(fā)框架,應(yīng)該選擇使用IE 5以上版本瀏覽器。

      本網(wǎng)站以NT為Web平臺(tái),JSP+Ajax+Servlet+JavaBean+Hibernate為網(wǎng)站實(shí)現(xiàn)技術(shù),建立基于MySQL數(shù)據(jù)庫系統(tǒng)的核心動(dòng)態(tài)網(wǎng)頁,實(shí)現(xiàn)博客網(wǎng)站前臺(tái)及博客個(gè)人維護(hù)管理等功能模塊。第3節(jié) 設(shè)計(jì)方案

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

      第3章 相關(guān)技術(shù)介紹

      第1節(jié) MVC簡(jiǎn)介

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

      圖1 MVC結(jié)構(gòu)

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

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

      2.應(yīng)用被分隔為三層,降低了各層之間的稿合,提供了應(yīng)用的可擴(kuò)展性。

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

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

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

      2.獨(dú)立于各種應(yīng)用服務(wù)器,可以真正實(shí)現(xiàn)Write Once, Run Anywhere 的承諾。3.Spring 的DI 機(jī)制降低了業(yè)務(wù)對(duì)象替換的復(fù)雜性。

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

      第3節(jié) Hibernate 概述

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

      第4章 需求分析

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

      首先必須在博客首頁中登錄填寫用戶名和密碼,這樣才能執(zhí)行一些相關(guān)操作,不然就是普通用戶只能查看一些信息,而不能發(fā)表博文??梢栽诠芾眄撁嫔咸砑硬┪牡姆诸?,可以上傳圖片和游覽自己的相冊(cè),在上傳過程中可以將一張圖片定義為自己的簽名,在個(gè)人管理頁面中注冊(cè)用戶還可以修改自己的個(gè)人信息。博文管理,友情鏈接管理及博文分類管理,用例圖2。

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

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

      圖3 博客主頁面的用例圖

      第2節(jié) 普通用戶

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

      圖4上網(wǎng)博友在博客主頁面的用例圖

      普通網(wǎng)友可以搜索自己關(guān)心的一些數(shù)據(jù)。并且在搜索結(jié)果中提供在結(jié)果范圍內(nèi)再次搜索。這樣就可以將范圍縮小。首頁向注冊(cè)用戶提供登陸模塊,注冊(cè)用戶在博客網(wǎng)站首頁跟上網(wǎng)網(wǎng)友一樣可以查看博客和博文推薦。上網(wǎng)網(wǎng)友可以注冊(cè)成為博客用戶,擁有自己獨(dú)立的空

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

      圖5 博客首頁的用例圖

      第5章 系統(tǒng)架構(gòu)設(shè)計(jì)

      本系統(tǒng)采用嚴(yán)格的J2 EE 應(yīng)用結(jié)構(gòu),主要有如下幾個(gè)分層。

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

      3.業(yè)務(wù)邏輯層:主要由Spring loC 容器管理的業(yè)務(wù)邏輯組件組成。

      4.DAO 層:由7 個(gè)DAO 組件組成,實(shí)現(xiàn)類必須繼承Spring提供的HibernateDaoSupport。

      5.Hibernate 持久層:由7 個(gè)PO 組成,并在Hibernate Session 管理下,完成數(shù)據(jù)庫訪問。

      6.數(shù)據(jù)庫服務(wù)層:使用MySQL 數(shù)據(jù)庫存儲(chǔ)持久化數(shù)據(jù)。系統(tǒng)的具體分層如圖5 所示。

      圖6 系統(tǒng)結(jié)構(gòu)圖

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

      第1節(jié) 系統(tǒng)架構(gòu)說明:

      本系統(tǒng)不僅嚴(yán)格按MVC 模式設(shè)計(jì),還按J2 EE 分層設(shè)計(jì),將中間層嚴(yán)格分成業(yè)務(wù)邏輯層、DAO 層及數(shù)據(jù)持久層等。MVC 層的控制器絕對(duì)禁止持久層訪問,甚至不參與業(yè)務(wù)邏輯的實(shí)現(xiàn)。表現(xiàn)層采用傳統(tǒng)JSP 技術(shù)。

      本系統(tǒng)采用的是典型的J2EE 三層結(jié)構(gòu),分為表現(xiàn)層、中間層(業(yè)務(wù)邏輯層)和數(shù)據(jù)服務(wù)

      層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問及合法性校驗(yàn)等工作放在中間層處理??蛻舳瞬恢苯优c數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。Jsp廣泛的應(yīng)用和穩(wěn)定的表現(xiàn),為其作為表現(xiàn)層技術(shù)打下了堅(jiān)實(shí)的基礎(chǔ)。中間層采用的是流行的Spring+Hibernate,為了將控制層與業(yè)務(wù)邏輯層分離,又細(xì)分為以下幾種。

      Web 層,就是MVC 模式里面的C,負(fù)責(zé)邏輯層和表現(xiàn)層的交互。調(diào)用業(yè)務(wù)邏輯層,并將業(yè)務(wù)數(shù)據(jù)返回給表現(xiàn)層作組織表現(xiàn),該系統(tǒng)的MVC采用Struts框架。

      Service 層(就是業(yè)務(wù)邏輯層),負(fù)責(zé)實(shí)現(xiàn)業(yè)務(wù)邏輯。業(yè)務(wù)邏輯層以DAO 層為基礎(chǔ),通過對(duì)DAO 組件的正面模式包裝,完成系統(tǒng)所要求的業(yè)務(wù)邏輯。

      DAO 層,負(fù)責(zé)與持久化對(duì)象交互。該層封裝了數(shù)據(jù)的增、刪、查、改的操作。

      PO,持久化對(duì)象。通過實(shí)體關(guān)系映射工具將關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)映射成對(duì)象,很方便地實(shí)現(xiàn)以面向?qū)ο蠓绞讲僮鲾?shù)據(jù)庫,該系統(tǒng)采用Hibernate 作為ORM 框架。Spring 的作用貫穿了整個(gè)中間層,將Web 層、Service 層、DAO 層及PO 無縫整合,其數(shù)據(jù)服務(wù)層用來存放數(shù)據(jù)。

      第2節(jié) Hibernate層

      通過使用Hibernate 持久層,可以避免使用傳統(tǒng)的JDBC 操作數(shù)據(jù)庫,對(duì)JDBC近一步包裝,從而更好地使用面向?qū)ο蟮姆绞絹聿僮鲾?shù)據(jù)庫。保證了整個(gè)軟件開發(fā)過程以面向?qū)ο蟮姆绞竭M(jìn)行,即面向?qū)ο蠓治?、設(shè)計(jì)及編程,透過Hibernte 對(duì)PO對(duì)象持久化操作,不管插入還是查詢都是通過PO。5.2.1 設(shè)計(jì)持久化對(duì)象(PO)面向?qū)ο蠓治?,是指根?jù)系統(tǒng)需求提取應(yīng)用中的對(duì)象,將這些對(duì)象抽象成類,再抽取出需要持久化保存的類,這些需要持久化保存的類就是持久化對(duì)象(PO)。該系統(tǒng)并沒有預(yù)先設(shè)計(jì)數(shù)據(jù)庫,而是完全從面向?qū)ο蠓治鲩_始,設(shè)計(jì)了7 個(gè)持久化類。本系統(tǒng)一共設(shè)計(jì)了如下7 個(gè)PO。

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

      3.Messages: 對(duì)應(yīng)網(wǎng)友留下的留言,屬性有id、username、Blog、注冊(cè)用戶可以查看別人寫的留言,但不能在自己的空間內(nèi)留言。

      4.FeedBack: 對(duì)應(yīng)回復(fù),包括id、article、username、content。他對(duì)于一篇博文,是網(wǎng)友閱讀博文后對(duì)博文的評(píng)論。該評(píng)論無論是誰都可以看到。

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

      6.Article: 博客系統(tǒng)的核心 對(duì)應(yīng)有 title,Id、blog、content、sort,一個(gè)博文屬于一種分類,可以有很多回復(fù),7.Links: 對(duì)應(yīng)有情連接,包括id、url、name、blog博友通過添加有情連接可以在自己的空間中提供快速的自己關(guān)心的網(wǎng)站。

      客觀世界中的對(duì)象不是孤立存在的,以上7 個(gè)PO 也不是孤立存在的,它們之間存在復(fù)雜的關(guān)聯(lián)關(guān)系。分析關(guān)聯(lián)關(guān)系也是面向?qū)ο蠓治龅谋匾襟E,這7 個(gè)PO 的關(guān)系如下。Blog除了FeedBack外,與另外5個(gè)都是1-N的關(guān)系,在blog類里對(duì)應(yīng)有個(gè)集合。比如messages,是SetArticle 和FeedBack之間存在I-N 的關(guān)系,每篇博文可以被很多人評(píng)論。Article和sort 之間存在N-1 的關(guān)系,即每篇博文只能屬于一種分類中,并且只屬于一個(gè)博友,在Hibernate框架中它提供了以xml文件形式出現(xiàn)的映射文件,完成從PO到數(shù)據(jù)庫表映射后,即完成面向?qū)ο蟮某绦蛟O(shè)計(jì)語言與關(guān)系數(shù)據(jù)庫的映射。以面向?qū)ο蟮姆绞讲僮麝P(guān)系數(shù)據(jù)庫。5.2.2 實(shí)現(xiàn)DAO 層

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

      3.DAO 接口的實(shí)現(xiàn)類。DAO 模式是一種更符合軟件工程的開發(fā)方式,使用DAO 模式有如下理由。

      1)DAO 模式抽象出數(shù)據(jù)訪問方式,業(yè)務(wù)邏輯組件無須理會(huì)底層的數(shù)據(jù)庫 訪問,而只專注于業(yè)務(wù)邏輯的實(shí)現(xiàn)。

      2)DAO 將數(shù)據(jù)訪問集中在獨(dú)立的一層,所有的數(shù)據(jù)訪問都由DAO 對(duì)象完成,這層獨(dú)立的DAO 分離了數(shù)據(jù)訪問的實(shí)現(xiàn)與其他業(yè)務(wù)邏輯,使得系統(tǒng)更具可維護(hù)性。

      3)DAO 還有助于提升系統(tǒng)的可移植性。獨(dú)立的DAO 層使得系統(tǒng)能在不同的數(shù)據(jù)庫之間輕易切換,底層的數(shù)據(jù)庫實(shí)現(xiàn)對(duì)于業(yè)務(wù)邏輯組件是透明的。數(shù)據(jù)庫移植時(shí)僅僅影響DAO 層,不同數(shù)據(jù)庫的切換不會(huì)影響業(yè)務(wù)邏輯組件,因此提高了系統(tǒng)的可復(fù)用性。

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

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

      就設(shè)計(jì)出來的,其中的很多方法可能會(huì)隨著業(yè)務(wù)邏輯的需求而增加,但以下幾個(gè)方法是通用 的。

      ? get: 根據(jù)主鍵加載持久化實(shí)例。

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

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

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

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

      應(yīng)用的DAO 組件以Hibernate和Spring 為基礎(chǔ),由Spring 容器負(fù)責(zé)生成并管理DAO組件。Spring 容器負(fù)責(zé)為DAO 組件注入其運(yùn)行所需要的基礎(chǔ)SessionFactory。Spring 為整合Hibernate 提供了大量工具類,通過LocalSessionFactoryBean 類,可以將Hibernate 的SessionFactory 納入其IoC 容器內(nèi)。使用LocalSessionFactoryBean 配置

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

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

      1.有效的Session管理: Spring提供了有效、簡(jiǎn)單和安全的Hibernate Session處理。2.IoC 容器提高了DAO 組件與業(yè)務(wù)邏輯層之間的解糯。3.DAO 模式的使用,降低了系統(tǒng)重構(gòu)的代價(jià)。

      4.方便的事務(wù)管理: Hibernate 的事務(wù)管理處理會(huì)限制Hibernate 的表現(xiàn),而 5.Spring的聲明式事務(wù)管理力度是方法級(jí)。

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

      7.異常包裝:Spring 能夠包裝Hibernate 異常,把它們從checked exception 變?yōu)?runtimeException;開發(fā)者可選擇在恰當(dāng)?shù)膶犹幚頂?shù)據(jù)中不可恢復(fù)的異常,從而避免煩瑣的catch/throw 及異常聲明。配置DAD 組件所有繼承HibernateDaoSupport 的DAO 實(shí)現(xiàn)類,必須為其提供SessionFactory 的引用。由于所有DAO 組件都需要注入SessionFactory 引用,因此可以使用bean 繼承簡(jiǎn)化DAO 組件的配置。本應(yīng)用同樣將所有的DAO 組件配置在單獨(dú)的配置文件中daoContext.xml中例如:由于7個(gè)Dao 都必須利用IoC容器注入

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

      以blogDAO為例,blogDAO 的以daoTemplate 為父Bean,屬性class是Dao的實(shí)現(xiàn)類。

      parent=“daoTemplate”/> 其余6個(gè)PODAO的配置相似。從上面的配置文件可以看出Spring Ioc容器在Tomcat啟動(dòng)時(shí)就可以向Dao 注入SessionFactory 第3節(jié) 實(shí)現(xiàn)Service 層

      Service 組件采用正面模式封裝多個(gè)DAO 組件,DAO 對(duì)象與Service 組件之間的關(guān)Service 組件需要實(shí)現(xiàn)的業(yè)務(wù)方法主要取決于業(yè)務(wù)的需要,通常需要在業(yè)務(wù)組件中包含對(duì)應(yīng)的方法。

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

      PROPAGATION_REQUIRED

      利用SpringFrameWork的TransactionProxyFactoryBean管理業(yè)務(wù)組件的事務(wù),對(duì)應(yīng)業(yè)務(wù)的方法名調(diào)用不同的事務(wù)管理,所以在業(yè)務(wù)邏輯組件的方法取名時(shí)一定要規(guī)范化。txProxyTemplate Bean是個(gè)業(yè)務(wù)組件事務(wù)管理的一個(gè)代理的父Bean,業(yè)務(wù)組件代理繼承txProxyTemplate,并注入對(duì)應(yīng)目標(biāo)業(yè)務(wù)組件FacadeManagerImpl的在業(yè)務(wù)控制器根據(jù)請(qǐng)求

      調(diào)用的是一個(gè)業(yè)務(wù)邏輯事務(wù)管理的代理,這個(gè)代理把請(qǐng)求分發(fā)給目標(biāo)業(yè)務(wù)邏輯組件去處理,業(yè)務(wù)邏輯組件根據(jù)請(qǐng)求調(diào)用相應(yīng)得Dao去執(zhí)行。這樣通過FacadeManagerImpl隔離業(yè)務(wù)邏輯控制器與Dao耦合。業(yè)務(wù)不需要知道是那個(gè)Dao執(zhí)行的,也不需要Dao的 實(shí)現(xiàn)類。我們通過 Spring向FacadeManagerImpl注入7個(gè)Dao組件,業(yè)務(wù)邏輯組件是 面向DAO 接口編程,可讓業(yè)務(wù)邏輯組件從DAO 組件的實(shí)現(xiàn)中分離。因此業(yè)務(wù)邏輯組件只關(guān)心業(yè)務(wù)邏輯的實(shí)現(xiàn),無須關(guān)心數(shù)據(jù)訪問邏輯的實(shí)現(xiàn)。第4節(jié) MVC 層實(shí)現(xiàn)

      MVC 架構(gòu)的核心思想是:將程序分成相對(duì)獨(dú)立,而又能協(xié)同工作的三個(gè)部分。通過使用MVC 架構(gòu),可以降低模塊之間的耦合,提高應(yīng)用的可擴(kuò)展性。另外,MVC 的每個(gè)組件只關(guān)心組件內(nèi)的邏輯,不應(yīng)與其他組件的邏輯混合。

      本文的MVC采用Struts框架。因?yàn)镾truts 是最健壯,應(yīng)用最廣的MVC 框架。系統(tǒng)使用Struts 框架可以提高系統(tǒng)的可控制性,保證了系統(tǒng)的穩(wěn)定性及可用性。5.4.1 1.Model 部分

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

      5.4.2 View 部分

      Struts 的View 部分采用JSP 實(shí)現(xiàn)。整個(gè)應(yīng)用由客戶端請(qǐng)求驅(qū)動(dòng),當(dāng)客戶端請(qǐng)求被ActionServlet 攔截時(shí),ActionServlet根據(jù)請(qǐng)求決定是否需要調(diào)用Model 處理用戶請(qǐng)求,當(dāng)用戶請(qǐng)求處理完成后,其處理結(jié)果通過JSP 呈現(xiàn)給用戶。通過Jsp將業(yè)務(wù)邏輯組件返回的值對(duì)象格式化,用戶和系統(tǒng)通過View交互的。5.4.3 3.Controller部分

      Struts 的Controller由系統(tǒng)核心控制器及業(yè)務(wù)邏輯控制器。

      系統(tǒng)核心控制攔截特定形式的請(qǐng)求,再根據(jù)請(qǐng)求調(diào)用相應(yīng)得業(yè)務(wù)邏輯控制器處理請(qǐng)求,在web.xml中如下定義:

      action

      com.blog.webapp.util.MyActionServlet

      config

      /WEB-INF/struts-config.xml

      action

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

      整合Struts 與Spring 只有一個(gè)要求,讓Struts 將攔截到客戶端的請(qǐng)求轉(zhuǎn)發(fā)給Spring容器中的bean。也就是說Struts的業(yè)務(wù)邏輯控制器可以將從核心控制器轉(zhuǎn)發(fā)過來的請(qǐng)求教給spring IOC容器管理業(yè)務(wù)邏輯組件處理。本系統(tǒng)使用DelegatingRequestProcessor 的整合策略,使用DelegatingRequestProcessor的整合策略可避免創(chuàng)建過多的本系統(tǒng)采用DelegatingActionProxy,提前將請(qǐng)求轉(zhuǎn)發(fā)到Spring 容器內(nèi)的bean。為了在應(yīng)用啟動(dòng)時(shí)由Struts 負(fù)責(zé)創(chuàng)建Spring 容器,應(yīng)在struts-config.xml 文件中增加如下配置:

      className=“org.springframework.web.struts.ContextLoaderPlugIn”> 通常上面的配置,可讓Spring 容器隨系統(tǒng)啟動(dòng)時(shí)完成初始化。注意在上面的配置中,Spring 的配置文件有一個(gè)aciton-servlet.xml,該配置文件中全部是Action。使用DelegatingRequestProcessor 的整合策略時(shí),無須確定action 的實(shí)現(xiàn)類。因?yàn)镈elegatingRequestProcessor直接將請(qǐng)求轉(zhuǎn)發(fā)到Spring 容器內(nèi)控制器配置為了Struts 與Spring 的整合,Struts 的Action 需要在兩個(gè)地方配置。

      1.在struts-config且xm1文件中配置對(duì)應(yīng)的Action。

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

      繼承BaseAction,而BaseAction 具有一個(gè)facadeManger的屬性,本文的請(qǐng)求不直接處理請(qǐng)求,而是交給業(yè)務(wù)邏輯組件處理。本文通過向Action注入相應(yīng)得業(yè)務(wù)邏輯組件facadeManger,Acton 將請(qǐng)求交給它處理。我們?cè)赼ction-servlet.xml 里配置一個(gè)

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

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

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

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

      7.調(diào)用XMLHttpRequest注冊(cè)的回調(diào)函數(shù)。

      8.回調(diào)函數(shù)解析響應(yīng)內(nèi)容XML文檔,在這里我們利用DOM將XML換成html格式數(shù)據(jù)流。利用DOM改變交互頁面的html節(jié)點(diǎn)。達(dá)到用戶的需求。

      設(shè)計(jì)結(jié)果及對(duì)設(shè)計(jì)結(jié)果的分析

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

      )填充到Session的屬性告訴她。為了更容易操控?cái)?shù)據(jù)庫,及格式化查詢結(jié)果。我采用Hibernate 的DAO模式,利用Hibernate 查詢的結(jié)果本來就是一個(gè)對(duì)象或?qū)ο罅斜恚@就更方便我數(shù)據(jù)系列化成xml文件了。

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

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

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

      利用Validator驗(yàn)證失敗能返回到指定的頁面上去。

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

      這是struts-config.xml 的一個(gè)registAction 的配置文件。RegistForm 經(jīng)過

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

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

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

      必須把寫博文的表單中method設(shè)為post而不是get,因?yàn)間et只是在提交請(qǐng)求 時(shí)帶些參數(shù)而已。

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

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

      由于在mp3播放的頁面中是采用在頁面中嵌入 loop=“true” autostart=“true”> src是一個(gè)mp3的播放列表。頁面刷新后jsp的servlet重新運(yùn)行。mp3重新播放,由于對(duì)播放器的API還不了解,現(xiàn)在還解決。mp3的播放資源只是嵌入到導(dǎo)航頁面(left.jsp)。只要導(dǎo)航頁面重新刷新后mp3就重新播放。系統(tǒng)的性能評(píng)價(jià)

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

      全文總結(jié)

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

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

      通過這次畢業(yè)設(shè)計(jì)學(xué)會(huì)利用java構(gòu)建Web 網(wǎng)站,在畢業(yè)設(shè)計(jì)中接觸過不少開源框架。開源框架的強(qiáng)大讓我覺得還有很多技術(shù)需要去學(xué)習(xí),這也讓我明白,要不斷地學(xué)習(xí)新知識(shí)才會(huì)利于自己各方面的發(fā)展。還讓我體會(huì)到在項(xiàng)目小組里沒有比溝通更重要

      致謝

      在論文結(jié)束之際,首先要感謝我的指導(dǎo)老師戴祖旭教授,在我的論文設(shè)計(jì)以及實(shí)現(xiàn)過程中均給了我大量的幫助和指導(dǎo),他嚴(yán)謹(jǐn)?shù)木礃I(yè)精神和治學(xué)態(tài)度給我留下了深刻的印象。從他身上,我學(xué)到了許多能使我受益終身的東西,再次對(duì)戴老師表示衷心的感謝。

      感謝理學(xué)院領(lǐng)導(dǎo)以及老師給我們創(chuàng)造的良好的學(xué)習(xí)環(huán)境和諸多幫助。

      感謝父母,兄弟姐妹對(duì)我學(xué)業(yè)的支持;感謝寢室同學(xué)對(duì)我學(xué)習(xí)生活的諸多幫助。感謝的人太多,只能說感謝所有給我關(guān)心、幫助和支持的人們。

      第二篇:Java網(wǎng)絡(luò)通信專題學(xué)習(xí)網(wǎng)站的設(shè)計(jì)與開發(fā)

      Java網(wǎng)絡(luò)通信專題學(xué)習(xí)網(wǎng)站的設(shè)計(jì)與開發(fā)

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

      關(guān)鍵詞:專題學(xué)習(xí)網(wǎng)站;網(wǎng)絡(luò)通信;教育資源規(guī)范;Java.net類庫;XML;CSCL

      中圖分類號(hào):G434文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1673-8454(2010)17-0075-05

      一、引言

      經(jīng)過10多年的發(fā)展,Java在網(wǎng)絡(luò)通信領(lǐng)域中的應(yīng)用大放異彩,并得到學(xué)術(shù)界和產(chǎn)業(yè)界的認(rèn)可,形成了舉世矚目的Java經(jīng)濟(jì)。近年來許多高校已開設(shè)“Java程序設(shè)計(jì)”及其相關(guān)課程,華南師范大學(xué)教育技術(shù)本科專業(yè)是首批國(guó)家級(jí)特色專業(yè),也將其列為主修課程,而“Java網(wǎng)絡(luò)通信”內(nèi)容恰是其重點(diǎn)難點(diǎn)。其目標(biāo)是使學(xué)生通過課程學(xué)習(xí), 掌握面向?qū)ο蟪绦蛟O(shè)計(jì)和網(wǎng)絡(luò)通信程序開發(fā), 具備小型項(xiàng)目開發(fā)能力。然而由于該課程內(nèi)容零散、自身難度大等特點(diǎn),加上學(xué)生基礎(chǔ)較弱,致使他們明明曉得課程重要,但學(xué)起來費(fèi)力,缺乏信心和興趣,而以教師講授為主和學(xué)生被動(dòng)接受的傳統(tǒng)教學(xué)的最大弊端就是學(xué)生難以進(jìn)行系統(tǒng)的網(wǎng)絡(luò)編程和多層次自主學(xué)習(xí)和探究學(xué)習(xí),可持續(xù)性發(fā)展能力較差。專題學(xué)習(xí)網(wǎng)站作為一種基于網(wǎng)絡(luò)環(huán)境的協(xié)作式學(xué)習(xí)系統(tǒng),可以讓學(xué)生進(jìn)行自主學(xué)習(xí)、分布式協(xié)作學(xué)習(xí),提高其利用信息的實(shí)踐能力,培養(yǎng)其良好的信息素養(yǎng)與創(chuàng)新意識(shí),是IT類課程的信息技術(shù)與課程整合的新方向。本文結(jié)合廣東高?!?51工程”項(xiàng)目――Java網(wǎng)絡(luò)通信專題學(xué)習(xí)網(wǎng)站,闡述該網(wǎng)站的設(shè)計(jì)與開發(fā)。

      二、網(wǎng)站設(shè)計(jì)

      1.網(wǎng)站體系架構(gòu)設(shè)計(jì)

      本專題學(xué)習(xí)網(wǎng)站是一個(gè)基于網(wǎng)絡(luò)資源的Java面向?qū)ο蟪绦蛟O(shè)計(jì)與網(wǎng)絡(luò)通信程序開發(fā)專題研究、協(xié)作式學(xué)習(xí)系統(tǒng),它通過網(wǎng)絡(luò)環(huán)境,向?qū)W生提供大量的Java編程與網(wǎng)絡(luò)開發(fā)專題學(xué)習(xí)資源和網(wǎng)絡(luò)學(xué)習(xí)交流工具。在教師指導(dǎo)下,學(xué)生選擇學(xué)習(xí)專題,通過主體性的探究、協(xié)作,收集、分析并選擇資源,應(yīng)用知識(shí)和開發(fā)工具去解決實(shí)際問題,培養(yǎng)Java網(wǎng)絡(luò)通信程序開發(fā)能力。根據(jù)“151工程”專題學(xué)習(xí)網(wǎng)站建設(shè)要求,本文提出基于教育資源建設(shè)技術(shù)規(guī)范的專題學(xué)習(xí)網(wǎng)站的體系構(gòu)架,如圖1所示。它由專題學(xué)習(xí)知識(shí)庫、網(wǎng)絡(luò)學(xué)習(xí)工具(含協(xié)作學(xué)習(xí)和專題學(xué)習(xí)評(píng)價(jià))、資源管理和系統(tǒng)管理組成,涵蓋專題學(xué)習(xí)網(wǎng)站主要模塊并彈性拓展,具體包括學(xué)習(xí)專題、專家講壇、項(xiàng)目實(shí)踐、Java精品、資源天地等 12個(gè)功能模塊。

      網(wǎng)站以專題結(jié)構(gòu)化知識(shí)庫和資源管理平臺(tái)為核心,采用統(tǒng)一身份認(rèn)證對(duì)用戶進(jìn)行管理。用戶角色包括:學(xué)生、教師和系統(tǒng)管理員。學(xué)生可利用專題學(xué)習(xí)知識(shí)庫和網(wǎng)絡(luò)學(xué)習(xí)工具進(jìn)行各種專題學(xué)習(xí),并可進(jìn)行資源發(fā)布、搜索、瀏覽、上傳/下載、收藏和評(píng)價(jià);教師除具有學(xué)生的權(quán)限外,還可以對(duì)資源進(jìn)行在線審核、發(fā)布以及資源與元數(shù)據(jù)編輯、導(dǎo)入、修改和刪除;管理員除具有教師和學(xué)生的權(quán)限外,還可以進(jìn)行系統(tǒng)設(shè)置與維護(hù)、動(dòng)態(tài)信息管理和用戶管理。

      2.專題結(jié)構(gòu)化知識(shí)設(shè)計(jì)

      采用分層法設(shè)計(jì)專題結(jié)構(gòu)化知識(shí),層次間采用樹型結(jié)構(gòu)表示,將專題學(xué)習(xí)劃分為4層:模塊層、專題層(T)、子專題層(ST)和知識(shí)點(diǎn)層(K),如圖2所示。模塊層是最大的復(fù)合型學(xué)習(xí)對(duì)象(由多個(gè)學(xué)習(xí)目標(biāo)組成的學(xué)習(xí)單元)、專題層由子專題層組合而成,子專題層由知識(shí)點(diǎn)聚合而成,知識(shí)點(diǎn)作為原子型對(duì)象(由單個(gè)學(xué)習(xí)目標(biāo)所建立的信息塊)是粒度最小的。

      網(wǎng)站按學(xué)生認(rèn)知規(guī)律及專題規(guī)劃知識(shí)點(diǎn),通過基礎(chǔ)、進(jìn)階、核心和拓展的學(xué)習(xí)階梯對(duì)學(xué)習(xí)內(nèi)容進(jìn)行有機(jī)整合?;A(chǔ)模塊包含Java程序設(shè)計(jì)基礎(chǔ);進(jìn)階模塊是基礎(chǔ)模塊的延伸;核心模塊涵蓋Java網(wǎng)絡(luò)通信與編程內(nèi)容;拓展模塊承載著Java最新網(wǎng)絡(luò)通信技術(shù)及其動(dòng)向。4個(gè)模塊包括18個(gè)專題學(xué)習(xí)內(nèi)容,涵蓋Java程序設(shè)計(jì)基礎(chǔ)、OOP、GUI、多線程、網(wǎng)絡(luò)通信基礎(chǔ)、Java通信協(xié)議、Java.net類庫、網(wǎng)絡(luò)通信編程、無線網(wǎng)絡(luò)通信、Java與網(wǎng)格技術(shù)、Java與云計(jì)算等專題,專題學(xué)習(xí)界面,如圖3所示。

      3.基于資源建設(shè)規(guī)范的資源管理平臺(tái)設(shè)計(jì)

      資源管理平臺(tái)可實(shí)現(xiàn)對(duì)多媒體素材、課件、源代碼、文獻(xiàn)、常見問題解答、試題等資源及其元數(shù)據(jù)的動(dòng)態(tài)管理。該平臺(tái)可通過圖1中的“資源天地”鏈接,依據(jù)“151工程”相關(guān)技術(shù)規(guī)范構(gòu)建,以實(shí)現(xiàn)異構(gòu)教學(xué)環(huán)境下資源共享和互操作。為達(dá)此目標(biāo),采用文件管理系統(tǒng)與關(guān)系數(shù)據(jù)庫相結(jié)合的方式實(shí)現(xiàn)對(duì)教育資源的儲(chǔ)存和管理。文件系統(tǒng)中存放著豐富的學(xué)習(xí)對(duì)象資源,通常是一些通用性較強(qiáng)的組件,可以被修改、組合、拆分和重用,以適應(yīng)不同的教學(xué)需要。同時(shí),描述每種教育資源的元數(shù)據(jù)也對(duì)應(yīng)地存在文件系統(tǒng)中,在數(shù)據(jù)庫中存放描述資源的核心元數(shù)據(jù)。資源管理平臺(tái)可完成教育資源與元數(shù)據(jù)編輯、導(dǎo)入、修改、刪除等功能,此類操作都會(huì)與相應(yīng)的文件系統(tǒng)及數(shù)據(jù)庫中的表發(fā)生關(guān)聯(lián)。

      文件系統(tǒng)中存儲(chǔ)教育資源及其屬性描述的XML文檔。為了科學(xué)、高效和方便地管理資源及其屬性描述的XML文檔即元數(shù)據(jù),平臺(tái)采用層次結(jié)構(gòu)來存儲(chǔ)資源及XML文檔。在文件系統(tǒng)中物理的資源及其屬性描述的XML文檔存在同一文件夾中,如圖1所示。

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

      4.網(wǎng)站的其他主要功能模塊

      (1)專家講壇:提供與課程相關(guān)的專家和教師的電子講稿,并進(jìn)行有機(jī)整合,學(xué)生可在專題學(xué)習(xí)基礎(chǔ)上針對(duì)重點(diǎn)難點(diǎn)做深入學(xué)習(xí),并可瀏覽和下載。

      (2)項(xiàng)目實(shí)踐:提供項(xiàng)目實(shí)踐案例,包括網(wǎng)絡(luò)聊天室、網(wǎng)絡(luò)信使服務(wù)等網(wǎng)絡(luò)通信工具的開發(fā)案項(xiàng)目,體現(xiàn)“做中學(xué)”和“學(xué)中做”的教育理念,以培養(yǎng)學(xué)生項(xiàng)目規(guī)劃和創(chuàng)新能力。

      (3)協(xié)作學(xué)習(xí):將分組教學(xué)引入到教學(xué)活動(dòng)中,以異質(zhì)分組為原則,內(nèi)置CSCL小組分組模塊,以實(shí)現(xiàn)協(xié)作學(xué)習(xí)功能,通過教學(xué)方法多樣化,激發(fā)學(xué)生的學(xué)習(xí)興趣,提高學(xué)生的綜合編程能力。

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

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

      (6)疑難解答:提供Java技術(shù)問題庫,學(xué)生遇到問題時(shí)可通過答疑系統(tǒng)進(jìn)行搜索、查閱。

      (7)在線測(cè)試:包括網(wǎng)上在線測(cè)試和考試管理兩部分。前者提供專題知識(shí)的相關(guān)練習(xí),分為形成性測(cè)試和總結(jié)性測(cè)驗(yàn)兩種類型,配有及時(shí)反饋功能,題型有選擇題、填空題、判斷題和簡(jiǎn)答題。利用前者學(xué)生可針對(duì)專題內(nèi)容進(jìn)行測(cè)試與評(píng)價(jià);利用后者,教師可實(shí)現(xiàn)考生管理、試題管理和考試監(jiān)控。

      (8)詞匯列表:提供與Java相關(guān)專業(yè)術(shù)語的解釋,學(xué)生可瀏覽和檢索。

      (9)系統(tǒng)管理:具有系統(tǒng)設(shè)置與維護(hù)、動(dòng)態(tài)信息管理和用戶管理的功能。

      三、網(wǎng)站開發(fā)關(guān)鍵技術(shù)

      1.開發(fā)技術(shù)路線

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

      2.開發(fā)關(guān)鍵技術(shù)

      (1)資源元數(shù)據(jù)屬性的XML統(tǒng)一描述方法

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

      在上述基礎(chǔ)上,采用XML對(duì)資源進(jìn)行統(tǒng)一描述,下面以一個(gè)動(dòng)畫素材為例,給出其XML描述的方法。

      00042

      二維動(dòng)畫

      Socket雙向握手通信過程動(dòng)畫

      ……

      馬祖英

      .swf

      127k

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

      SocketShakeHand.swf

      ……

      信息技術(shù)

      ……

      教育資源屬性的XML統(tǒng)一描述是為了便于資源存儲(chǔ)、搜索、綁定和編碼入庫,采用SOAP技術(shù)實(shí)現(xiàn)異構(gòu)環(huán)境下教育資源共享、交換和互操作。

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

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

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

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

      00042

      二維動(dòng)畫

      Socket雙向握手通信過程動(dòng)畫

      ……

      馬祖英

      .swf

      127k

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

      SocketShakeHand.swf

      ……

      信息技術(shù)

      ……

      00086

      視頻流媒體

      面向?qū)ο蟪绦蛟O(shè)計(jì)的多態(tài)性

      ……

      王咸偉

      .asf

      4.3M

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

      Polymorphism.asf

      ……

      信息技術(shù)

      ……

      ……

      對(duì)于數(shù)據(jù)量較大的XML數(shù)據(jù)可使用外部引用方式鏈接數(shù)據(jù)島。標(biāo)簽的ID屬性定義了數(shù)據(jù)島的ID而SRC屬性指向被嵌入的XML文件:

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

      (3)CSCL協(xié)作小組分組算法關(guān)鍵技術(shù)

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

      四、網(wǎng)站的特色

      1.體系結(jié)構(gòu)較為先進(jìn),知識(shí)體系完備,充分體現(xiàn)學(xué)科特色

      網(wǎng)站的體系構(gòu)架、系統(tǒng)設(shè)計(jì)和關(guān)鍵技術(shù)較為先進(jìn),功能模塊劃分合理、設(shè)置豐富;以網(wǎng)絡(luò)通信專題為導(dǎo)向,提供豐富的專題結(jié)構(gòu)化知識(shí),形成一個(gè)符合認(rèn)知規(guī)律的結(jié)構(gòu)體系,便于學(xué)生對(duì)新知識(shí)進(jìn)行有效的意義建構(gòu);開辟 “項(xiàng)目實(shí)踐”、“Java精品”等欄目便于學(xué)生從事開發(fā)實(shí)踐;采用虛擬仿真和程序運(yùn)行與跟蹤技術(shù),可動(dòng)態(tài)輸入數(shù)據(jù)、跟蹤程序運(yùn)行結(jié)果,充分體現(xiàn)了程序設(shè)計(jì)類課程教學(xué)的特點(diǎn)。此外,還采用“樣例學(xué)習(xí)”和“做中學(xué)”等教學(xué)方式,提供多種網(wǎng)絡(luò)學(xué)習(xí)工具,融入?yún)f(xié)作學(xué)習(xí)的先進(jìn)教育理念,體現(xiàn)了信息技術(shù)與課程整合的思想。

      2.豐富的原創(chuàng)資源,資源建設(shè)符合規(guī)范

      網(wǎng)站提供豐富的教育資源,其中原創(chuàng)超過60%。專題資源庫構(gòu)建符合資源建設(shè)技術(shù)規(guī)范,資源管理平臺(tái)可實(shí)現(xiàn)資源與元數(shù)據(jù)的編輯、導(dǎo)入、修改和刪除,并可實(shí)現(xiàn)異構(gòu)教學(xué)環(huán)境下資源共享和互操作。

      3.多方位的學(xué)習(xí)支持服務(wù)

      網(wǎng)站提供了良好學(xué)習(xí)導(dǎo)航、自主學(xué)習(xí)和協(xié)作學(xué)習(xí)環(huán)境,具有完備的學(xué)習(xí)評(píng)價(jià)和CSCL小組分組系統(tǒng),并提供實(shí)用性強(qiáng)的網(wǎng)絡(luò)學(xué)習(xí)工具和資源管理平臺(tái),可多方位地為學(xué)生提供學(xué)習(xí)支持服務(wù)。

      4.專題學(xué)習(xí)網(wǎng)站具有跨平臺(tái)特性

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

      參考文獻(xiàn):

      [1]李潔,王咸偉.CSCL中小組分組算法及系統(tǒng)設(shè)計(jì)與開發(fā)[J].華南師范大學(xué)(自然科學(xué)版),2007.2.[2]教育部信息化技術(shù)標(biāo)準(zhǔn)委員會(huì).教育資源建設(shè)技術(shù)規(guī)范CELTS-41.1,2002.12.[3]廣東高教電教中心.廣東省高等學(xué)?,F(xiàn)代教育技術(shù)“151工程”建設(shè)規(guī)范[S],2004.4.[4]鄭維勇,王萍.基于學(xué)習(xí)對(duì)象元數(shù)據(jù)的教育資源管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)教育信息化.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網(wǎng)站開發(fā)工程師面試題

      JAVA_WEB開發(fā)人員面試題及答案

      面試人:面試時(shí)間:

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

      1.jsp 有幾個(gè)內(nèi)置對(duì)象?(c)(單選)

      A 5個(gè)B6個(gè)C9個(gè)D8個(gè)

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

      A breakBreturnCforwardDfinally

      3.四種會(huì)話跟蹤技術(shù),哪個(gè)范圍最大?(d)(單選)

      A pageBrequestCsessionDapplication

      4.java中有幾種方法可以實(shí)現(xiàn)一個(gè)線程?(b)(單選)

      A1種B2種C3種D 4種

      5.同步有幾種實(shí)現(xiàn)方法(b)(單選)

      A 4種B2種C3種D 1種

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

      A DOMBSAXCSTAXD JDOM

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

      A 構(gòu)造器Constructor可被繼承

      BString類不可以繼承

      C 判斷兩個(gè)對(duì)象值相同用“==”

      D char型變量中能不能存貯一個(gè)中文漢字

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

      A調(diào)用sleep不會(huì)釋放對(duì)象鎖。

      B調(diào)用wait方法導(dǎo)致本線程放棄對(duì)象鎖

      C當(dāng)一個(gè)線程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其它線程不可進(jìn)入此對(duì)象的其它方法

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

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

      <%int Count=1;%>

      Count:<%= Count%>

      ACount:1BCount:2C1:2 DCount:

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

      a)2 3b)5c)23d)不會(huì)輸出,因?yàn)楸磉_(dá)式是錯(cuò)誤的11.在J2EE中,編寫Servlet過濾器時(shí),(c)接口用于調(diào)用過濾器鏈中的下一個(gè)過濾器。(單選)

      a)Filterb)FilterConfigc)FilterChaind)Servlet

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

      a)視圖是一種特殊的表,它存儲(chǔ)了用戶定制的數(shù)據(jù)。

      b)視圖僅用于用戶進(jìn)行查詢,不可以通過視圖對(duì)數(shù)據(jù)進(jìn)行修改。

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

      d)創(chuàng)建視圖只能操作本機(jī)器上的數(shù)據(jù)庫表。

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

      18)Struts控制器的主要任務(wù)是接受用戶請(qǐng)求、根據(jù)用戶請(qǐng)求調(diào)用對(duì)應(yīng)的模型組件、獲取業(yè)務(wù)邏輯執(zhí)行結(jié)果的根據(jù)處理結(jié)果選擇適合的視圖組件返回給用戶,實(shí)現(xiàn)Struts控制器的類中不包括(c)。(單選)

      a)ActionServletb)Actionc)ActionFormd)ActionForward

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

      A)對(duì)于每個(gè)數(shù)據(jù)庫事務(wù),應(yīng)該創(chuàng)建一個(gè)SessionFactory對(duì)象

      B)一個(gè)SessionFactory對(duì)象對(duì)應(yīng)一個(gè)數(shù)據(jù)庫存儲(chǔ)源。

      C)SessionFactory是重量級(jí)的對(duì)象,不應(yīng)該隨意創(chuàng)建。如果系統(tǒng)中只有一個(gè)數(shù)據(jù)庫存儲(chǔ)源只需要?jiǎng)?chuàng)建一個(gè)。

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

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

      A)sqlB)hqlC)Criteria

      18)以下數(shù)據(jù)結(jié)構(gòu)不屬于線性結(jié)構(gòu)的是(c)(單選)

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

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

      A)File ReaderB)FileC)FileWriterD)InputStream

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

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

      18)在計(jì)算機(jī)中,—個(gè)字節(jié)是由多少個(gè)二進(jìn)制位組成的(b)(單選)

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

      19.下列不屬于面向?qū)ο蟮姆椒ㄊ牵╠)(單選)

      A).對(duì)象B).類C).繼承D).過程調(diào)用

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

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

      1.String s = new String(“xyz”);創(chuàng)建了__2__個(gè)String 對(duì)象?

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

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

      4.如何現(xiàn)實(shí)servlet的單線程模式 ______<%@ page isThreadSafe=“false”%> _________

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

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

      7.Java默認(rèn)的包是______ java.lang.*_________

      8.Hibernate里面怎樣實(shí)現(xiàn)類與類之間的關(guān)系__________表映射_______________

      9.Socket 編程服務(wù)器端用____ serverSocket ____類來創(chuàng)建socket對(duì)象。

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

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

      2.Overload和Override都是java多態(tài)的不同體現(xiàn)形式。對(duì)

      3.String是最基本的數(shù)據(jù)類型。錯(cuò)

      4.啟動(dòng)一個(gè)線程是用start。對(duì)

      5.接口可以繼承接口。對(duì)

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

      1、網(wǎng)頁設(shè)計(jì)采用div css有什么好處?

      答:布局實(shí)現(xiàn)了表現(xiàn)與內(nèi)容的分離,大大縮減頁面代碼,符合W3C的標(biāo)準(zhǔn),兼容性更好;易于后期網(wǎng)站的更新、維護(hù);SEO的優(yōu)化:對(duì)搜索引擎更加友好,更容易被搜索引擎收錄。

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

      答:網(wǎng)頁分成三個(gè)層次,即:結(jié)構(gòu)層、表示層、行為層。

      網(wǎng)頁的結(jié)構(gòu)層(structural layer)由HTML或 XHTML之類的標(biāo)記語言負(fù)責(zé)創(chuàng)建。標(biāo)簽,也就是那些出現(xiàn)在尖括號(hào)里的單詞,對(duì)網(wǎng)頁內(nèi)容的語義含義做出了描述,但這些標(biāo)簽不包含任何關(guān)于如何顯示有關(guān)內(nèi)容的信息。例如,P 標(biāo)簽表達(dá)了這樣一種語義:“這是一個(gè)文本段?!?/p>

      網(wǎng)頁的表示層(presentation layer)由CSS負(fù)責(zé)創(chuàng)建。CSS 對(duì)“如何顯示有關(guān)內(nèi)容”的問題做出了回答。

      網(wǎng)頁的行為層(behavior layer)負(fù)責(zé)回答“內(nèi)容應(yīng)該如何對(duì)事件做出反應(yīng)”這一問題。這是 Javascript 語言和 DOM 主宰的領(lǐng)域。

      3、如何區(qū)別display:none與visibility:hidden?

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

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

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

      5. 一個(gè)網(wǎng)站最多有幾種色彩

      答:一到兩各種主色彩。

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

      答:紅色。

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

      注:有上機(jī)機(jī)會(huì)上機(jī)操作,沒有就手動(dòng)把代碼寫出來;

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

      2.寫出冒泡排序的實(shí)現(xiàn)

      答:代碼如下:

      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;

      }

      }

      }

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

      答:代碼如下:

      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中國(guó)43中國(guó)人

      0ewldfls=103”,4);

      ss.SplitIt();

      }

      }

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

      1.手寫 html 能力

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

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

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

      第四篇:個(gè)人博客網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)

      摘 要

      最近幾年博客在國(guó)內(nèi)發(fā)展的非常迅猛,它可以作為其使用者個(gè)人或者工作中的文章、日記、照片等分享的平臺(tái),其漸漸成為新興的網(wǎng)路媒介,并且擴(kuò)展至營(yíng)銷、商業(yè)推廣等商業(yè)應(yīng)用,越來越多的人們建立了屬于自己的博客來展示自己的風(fēng)采。

      該博客網(wǎng)站設(shè)計(jì)的目的旨在建立以ASP.NET和SQL Server 2005數(shù)據(jù)庫為工具,功能簡(jiǎn)潔、結(jié)構(gòu)靈活且精致、輕巧的個(gè)人博客網(wǎng)站系統(tǒng)。其中網(wǎng)絡(luò)日志的管理作為本系統(tǒng)的主要目標(biāo),且同時(shí)可以滿足用戶對(duì)于圖片,相冊(cè),留言,個(gè)人信息等的管理和展示,并且可以設(shè)置博客的背景音樂等功能。

      該設(shè)計(jì)的開發(fā)環(huán)境為Microsoft Visual Studio 2005,使用C#編程語言進(jìn)行編碼,采用的是SQL Server 2005數(shù)據(jù)庫。

      關(guān)鍵字:DotNet;C#; 個(gè)人博客; 數(shù)據(jù)庫; 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

      目 錄

      第一章 系統(tǒng)概述...................................................1 1.1研究背景........................................................1 1.2研究現(xiàn)狀........................................................1 1.3設(shè)計(jì)內(nèi)容........................................................2 1.4 課題研究意義...................................................3 第二章 系統(tǒng)開發(fā)環(huán)境...............................................4 2.1 ASP.NET概述....................................................4

      2.1.1 ASP.NET和ASP.NET結(jié)構(gòu).....................................4 2.2 C#概述..........................................................7 2.3 動(dòng)態(tài)網(wǎng)站技術(shù)介紹................................................8 2.4數(shù)據(jù)庫技術(shù)......................................................8 2.5 ADO.NET連接數(shù)據(jù)庫..............................................9 第三章 需求分析..................................................11 3.1 可行性分析.....................................................11

      3.1.1 技術(shù)可行性.................................................11

      3.1.2 經(jīng)濟(jì)可行性.................................................12

      3.1.3操作可行性.................................................14 3.2 功能需求.......................................................14 3.3 性能需求.......................................................15 3.4系統(tǒng)用例.......................................................15 第四章 系統(tǒng)概要設(shè)計(jì)..............................................17

      4.1概述...........................................................17 4.2系統(tǒng)結(jié)構(gòu).......................................................17 4.3 數(shù)據(jù)庫設(shè)計(jì).....................................................18

      4.3.1 數(shù)據(jù)庫設(shè)計(jì)概述.............................................19

      4.3.2 數(shù)據(jù)庫概念設(shè)計(jì).............................................20

      4.3.3 數(shù)據(jù)庫實(shí)體設(shè)計(jì).............................................22

      4.3.4 數(shù)據(jù)庫設(shè)計(jì)表...............................................24 第五章 系統(tǒng)詳細(xì)設(shè)計(jì)..............................................28 5.1用戶登錄模塊的實(shí)現(xiàn).............................................28 5.2留言板模塊的實(shí)現(xiàn)...............................................29 5.3相冊(cè)模塊的實(shí)現(xiàn).................................................31 5.4圖片管理模塊的實(shí)現(xiàn).............................................34 5.5背景音樂的實(shí)現(xiàn).................................................37 5.6日歷模塊的實(shí)現(xiàn).................................................39 第六章 總結(jié)......................................................41 參考文獻(xiàn).........................................................42 致謝.............................................................43

      基于Asp.Net的個(gè)人博客網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)

      第一章 系統(tǒng)概述

      1.1研究背景

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

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

      Jorn Barge在一九九七年的十二月第一次提出了BLOG一詞,但到當(dāng)年互聯(lián)網(wǎng)上的博客屈指可數(shù),直到進(jìn)入新世紀(jì)博客才真正的流行起來。最開始,博客們每天把他們其瀏覽互聯(lián)網(wǎng)的的感受和想法記錄下來,然后發(fā)表出來,以供其他人參考和借鑒。但隨著BLOG的快速發(fā)展,其目的與最初的時(shí)候已經(jīng)大相徑庭?,F(xiàn)如今互聯(lián)網(wǎng)上面數(shù)以百萬計(jì)的博客們所創(chuàng)作并且發(fā)表出來的難以計(jì)數(shù)的BLOG有著各種各樣的目地。但是,因?yàn)槠錅贤ǚ绞捷^E-mail、聊天室更簡(jiǎn)潔、容易上手,更加快捷和廣泛,BLOG已經(jīng)成為個(gè)人、團(tuán)體、公司和政府部門之間越來越流行的溝通工具。

      1.2研究現(xiàn)狀

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

      每一個(gè)BLOG都是一個(gè)網(wǎng)頁,其通常是由簡(jiǎn)單短小并且經(jīng)常更新的Post來

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

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

      2000年博客開始走入中國(guó),并且得到迅速發(fā)展,但并沒取得突出業(yè)績(jī); 2001年博客在911事件的報(bào)道中發(fā)揮了巨大的作用,從而步入主流; 2003年在對(duì)伊拉克戰(zhàn)爭(zhēng)的報(bào)道中,美國(guó)眾多傳統(tǒng)媒體所具備的公信力遇到博客的重大挑戰(zhàn);

      2004年是對(duì)于中國(guó)博客的發(fā)展至關(guān)重要的一年,木子美事件使很多中國(guó)人了解了博客,并學(xué)會(huì)了使用用博客;

      2005年,像搜狐,新浪這樣的很多起初對(duì)博客這一事物不抱期望的的國(guó)內(nèi)各門戶網(wǎng)站,也紛紛加入到發(fā)展博客的行列,從此國(guó)內(nèi)博客的發(fā)展進(jìn)入了戰(zhàn)國(guó)時(shí)代。最近幾年,芙蓉姐姐等網(wǎng)絡(luò)名人的一炮走紅也使得博客更加深入人心。

      博客們每天把他們其瀏覽互聯(lián)網(wǎng)的的感受和想法記錄下來,然后發(fā)表出來,以供其他人參考和借鑒。但隨著BLOG的快速發(fā)展,其目的與最初的時(shí)候已經(jīng)大相徑庭。現(xiàn)如今互聯(lián)網(wǎng)上面數(shù)以百萬計(jì)的博客們所創(chuàng)作并且發(fā)表出來的難以計(jì)數(shù)的BLOG有著各種各樣的目地。但是,因?yàn)槠錅贤ǚ绞捷^E-mail、聊天室更簡(jiǎn)潔、容易上手,更加快捷和廣泛,BLOG已經(jīng)成為個(gè)人、團(tuán)體、公司和政府部門之間越來越流行的溝通工具。

      如今,門戶網(wǎng)站已經(jīng)普遍有了自己的大型博客站點(diǎn)。目前,國(guó)內(nèi)發(fā)展較好為人們所熟知的相關(guān)網(wǎng)站有:新浪,搜狐,騰訊,百度等。

      1.3設(shè)計(jì)內(nèi)容

      網(wǎng)站的界面很友好、明快、舒適;操作起來容易、快捷;查詢資料快捷、準(zhǔn)確。本個(gè)人博客網(wǎng)站在很大程度上實(shí)現(xiàn)安裝的簡(jiǎn)易性、操作的簡(jiǎn)單性與維護(hù)的最小化。系統(tǒng)運(yùn)行有較高的穩(wěn)定性、安全性和可靠性。在功能上游客身份可以用不注冊(cè),直接通過匿名訪問的方式在博客前臺(tái)進(jìn)行查看用戶的博客日志,發(fā)表留言,查看用戶的相冊(cè)圖片等操作。博客用戶可以在前臺(tái)的頁面登錄,然后進(jìn)入后臺(tái)頁

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

      1.4 課題研究意義

      根據(jù)上面所介紹的相關(guān)信息我們已經(jīng)知道如今博客的發(fā)展已經(jīng)到了比較成熟的階段了,它已經(jīng)被人們所廣泛接受。博客在改變著人們抒發(fā)情感與人際間相互交流的方式,它拉近了人與人的距離,改變著人們社交的方式;博客極大的擴(kuò)展了著人們對(duì)于信息世界的想象,它影響著整個(gè)互聯(lián)網(wǎng)的發(fā)展趨勢(shì),甚至對(duì)社會(huì)的發(fā)展會(huì)起到想當(dāng)重大的影響。

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

      現(xiàn)在各個(gè)大中型的門戶網(wǎng)站都退出了博客、空間等服務(wù),令廣大用戶能夠在互聯(lián)網(wǎng)上有屬于自己的一席之地。為了滿足廣大用戶們?cè)谑褂貌┛偷倪^程中所追求的個(gè)性化要求,本個(gè)人博客網(wǎng)站盡量采用了.NET中的新方法,該個(gè)人博客采用.NET的可視化開發(fā)環(huán)境,所見即所得。從而讓開發(fā)人員可以更加高效快捷的得到開發(fā)內(nèi)容的實(shí)際效果,并且進(jìn)行相關(guān)調(diào)試。3 基于Asp.Net的個(gè)人博客網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)

      第二章 系統(tǒng)開發(fā)環(huán)境

      2.1 ASP.NET概述

      DOTNET也就是我們通常所說的.NET,準(zhǔn)確來說它叫做.Net框架。作為Windows系統(tǒng)的的一種組件,NET框架將會(huì)支持未來會(huì)出現(xiàn)的各種應(yīng)用程序和XML Web業(yè)務(wù)。.Net框架剛剛提出的時(shí)候,微軟確定要實(shí)現(xiàn)以下目標(biāo):給程序開發(fā)者統(tǒng)一的面向?qū)ο蟮木幊汰h(huán)境。提供一個(gè)控制軟件的布置和協(xié)調(diào)不同版本之間矛盾的執(zhí)行環(huán)境,盡可能的減少矛盾,提供了更加安全可靠的的代碼運(yùn)行環(huán)境,提供一個(gè)可以避免腳本運(yùn)行或者解釋運(yùn)行環(huán)境所引起的整體性能降低,使開發(fā)人員面對(duì)的操作系統(tǒng)的應(yīng)用程序與網(wǎng)絡(luò)應(yīng)用程序相協(xié)調(diào)。

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

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

      .NET 框架類庫

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

      并且,雖然語言不同,但是實(shí)現(xiàn)相同功能時(shí)的程序結(jié)構(gòu)是相似的。就像任何

      程序語言都能夠使用循環(huán)結(jié)構(gòu)與條件結(jié)構(gòu)的語句。寫在Visual Basic語法的使用條件語句是寫在C + +中是不一樣的,程序的功能卻是一樣的。

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

      同時(shí)向多種語言來提供這種功能要耗費(fèi)很多的資源。為什么繼續(xù)重復(fù)工作呢?對(duì)所有的語言只創(chuàng)建這種功能一次,然后把這個(gè)功能應(yīng)用在每一種語言中豈不是更容易。

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

      此外.NET Framework包含所有基本的變量數(shù)據(jù)類型。

      相比于之前的腳本語言,ASP.NET優(yōu)越性集中表現(xiàn)在下面幾個(gè)特性上:

      (一)高效性

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

      (二)可重用性

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

      (三)代碼量小

      在ASP中,要實(shí)現(xiàn)的功能是通過編寫代碼來實(shí)現(xiàn),但ASP.NET只是事先,可以自動(dòng)實(shí)現(xiàn),因此,當(dāng)實(shí)現(xiàn)相同的功能,小于ASP的ASP.NET代碼量。

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

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

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

      如果是VB.NET代碼,則使用這種語言所編譯器;若使用的是C#代碼,則使用C#對(duì)應(yīng)的編譯器;如果是其他語言代碼,則使用其對(duì)應(yīng)的編譯器。統(tǒng)一將

      其編譯為MSIL代碼,之后進(jìn)行JIT變編譯,隨后編譯為機(jī)器語言代碼最終進(jìn)行執(zhí)行。6 基于Asp.Net的個(gè)人博客網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)

      2.2 C#概述

      C#是一種Microsoft為了實(shí)際應(yīng)用.NET而根據(jù)其特點(diǎn)和需要所創(chuàng)造的不同于以前出現(xiàn)過的的的編程語言。C#同.NET Framework存在密切相關(guān)的關(guān)系,C#中所包含地類型便是.NET里面所能提供地所有類,而且C#可以直接使用.NET 框架所提供地類庫。此外,C#中所包含地理性的安全檢查和結(jié)構(gòu)化異常的處理等全部由CLR來處理。事實(shí)上,ASP.NET 3.5便是使用C#語言來進(jìn)行開發(fā)的,因此C#這種編程語言不進(jìn)十分適合Web應(yīng)用程序的開發(fā),而且還適合用于強(qiáng)大的系統(tǒng)程序的開發(fā)。

      C#這門語言具有著如下的特點(diǎn):

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

      采用C#編程語言可以構(gòu)建出健康高效的應(yīng)用程序。C#中的垃圾回收功能將會(huì)自動(dòng)的回收那些不再被使用的對(duì)象所占用的內(nèi)存。而異常處理功能則提供了結(jié)構(gòu)化的并且可擴(kuò)展的錯(cuò)誤檢測(cè)與恢復(fù)的方法。獨(dú)有的類型安全的設(shè)計(jì)從根本上排除在讀取未被初始化過的變量和未被初始化過的數(shù)組的時(shí)候?qū)е乱绯錾舷薜目赡苄浴?/p>

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

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

      通過上面的介紹,可以想象.NET Framework會(huì)是非常龐大的。它有著三千四百個(gè)的類。幸運(yùn)的是,類不會(huì)簡(jiǎn)單的堆在一起。.NET Framework通過鮮明的層次結(jié)構(gòu)將類組織在命名空間中。

      例如在先前的ASP中,你只有五個(gè)標(biāo)準(zhǔn)類的訪問,而在ASP.NET中所提供的類超過三千四百個(gè)!

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

      基于Asp.Net的個(gè)人博客網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)

      2.3 動(dòng)態(tài)網(wǎng)站技術(shù)介紹

      鑒于博客網(wǎng)站系統(tǒng)的操作界面均為Web頁面的形式,并且需要對(duì)各種用戶的請(qǐng)求實(shí)時(shí)進(jìn)行處理以及返回結(jié)果,而這些是一般的靜態(tài)Web頁面所無法實(shí)現(xiàn)的,因此需要使用動(dòng)態(tài)網(wǎng)頁技術(shù)。現(xiàn)在動(dòng)態(tài)網(wǎng)頁技術(shù)有很多,例如CGI、SP.NET、JSP、ASP、ASP.NET等。本設(shè)計(jì)將以ASP.NET為主要技術(shù)。

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

      2.4數(shù)據(jù)庫技術(shù)

      該個(gè)人博客網(wǎng)站所具有的存儲(chǔ)用戶信息,文章,圖片,音樂等功能必然要通過數(shù)據(jù)庫技術(shù)來實(shí)現(xiàn)。

      統(tǒng)一的SQL Server 2005中的語言風(fēng)格,可以完成這項(xiàng)工作的數(shù)據(jù)庫活動(dòng),包括創(chuàng)建數(shù)據(jù)庫,數(shù)字模式,改變和查詢數(shù)據(jù)和整體安全的保障和數(shù)據(jù)庫的維護(hù)。數(shù)據(jù)庫應(yīng)用系統(tǒng)的發(fā)展提供了一個(gè)良好的環(huán)境。即使系統(tǒng)在實(shí)際使用之后,用戶仍舊能夠根據(jù)需要來改變系統(tǒng)的結(jié)構(gòu),同時(shí)保證數(shù)據(jù)的正常運(yùn)行,這一特點(diǎn)令系統(tǒng)有了非常優(yōu)異的擴(kuò)展性能。

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

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

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

      SQL語言就能夠?qū)崿F(xiàn)所數(shù)據(jù)庫活動(dòng)的工作,包括數(shù)據(jù)庫的創(chuàng)建,修改和查詢數(shù)據(jù)和安全管理和維護(hù)數(shù)據(jù)庫,使用戶可以繼續(xù)死對(duì)數(shù)據(jù)庫結(jié)構(gòu)根據(jù)修改后還需要數(shù)據(jù)庫系統(tǒng)投入使用。同時(shí)不會(huì)影像數(shù)據(jù)庫的運(yùn)行,從而使得系統(tǒng)具有良好的可擴(kuò)展性。

      在使用SQL語言訪問數(shù)據(jù)庫的時(shí)候,用戶無需告訴計(jì)算機(jī)怎樣一步步的達(dá)成操作,只需要描述清楚所要實(shí)現(xiàn)的目的。SQL語言之后便會(huì)將用戶的要求提供到數(shù)據(jù)庫管理系統(tǒng),然后其將自動(dòng)將剩余的任務(wù)達(dá)成。

      盡管SQL語言有著強(qiáng)大的功能,但是它并不復(fù)雜,通過很少的幾條命令便能實(shí)現(xiàn)眾多功能。而且,SQL語法和日常語言比較相似,十分便于學(xué)習(xí)。

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

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

      2.5 ADO.NET連接數(shù)據(jù)庫

      在網(wǎng)站的開發(fā)過程中,如何存取數(shù)據(jù)庫是最常用的部分。.Net 框架提供了多種存取數(shù)據(jù)庫的方式。

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

      System.Data命名空間管理專業(yè)類在ADO.NET中,數(shù)據(jù)處理是一個(gè)關(guān)鍵部分。所有依靠ADO.NET的軟件的實(shí)現(xiàn)方法的關(guān)鍵都是數(shù)據(jù)集。該數(shù)據(jù)集是一個(gè)內(nèi)存庫中的副本。一個(gè)數(shù)據(jù)集包括許多數(shù)據(jù)表,每個(gè)數(shù)據(jù)表一般都會(huì)對(duì)應(yīng)著一個(gè)數(shù)據(jù)庫的表或者視圖。有些特定的命名空間便是用來提供處理數(shù)據(jù)集,數(shù)據(jù)表和

      視圖的類。通過這些類能夠方便的以編程的方式與數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行交互。

      System.Data命名空間中的類,涵蓋了所有的內(nèi)容和關(guān)系數(shù)據(jù)庫,如某些特定的類的外鍵查找和修改數(shù)據(jù)視圖的數(shù)據(jù)關(guān)系表。

      使用System.Data能夠?qū)?shù)據(jù)庫中的數(shù)據(jù)進(jìn)行緩存,方便客戶端進(jìn)行讀取,從而打到提高數(shù)據(jù)交互性能的目的。

      System.Data是數(shù)據(jù)操作的關(guān)鍵,System.Data命名空間中包含的類負(fù)責(zé)著協(xié)調(diào)整合修改并且提供數(shù)據(jù)交互的一些常用功能:

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

      第三章 需求分析

      3.1 可行性分析

      技術(shù)可行性:如今主流的計(jì)算機(jī)配置水平均可以實(shí)現(xiàn)平臺(tái)的安裝和穩(wěn)定運(yùn)行;SQL數(shù)據(jù)庫和VS2008等編程工具提供了可靠的編程環(huán)境;憑借以前所學(xué)的軟件開發(fā)方法和編程的知識(shí),并且查閱相關(guān)資料和書籍可以為網(wǎng)站的開發(fā)提供足夠的技術(shù)保障。

      社會(huì)可行性:目前互聯(lián)網(wǎng)上已經(jīng)有很多成功的博客網(wǎng)站,博客系統(tǒng)的存在完全符合國(guó)家的相關(guān)法規(guī)和普遍的社會(huì)價(jià)值觀,不存在嚴(yán)重的障礙。此外,博客的的操作方式簡(jiǎn)便,門檻低,適合大多數(shù)人使用,其內(nèi)容符合大眾的價(jià)值觀,有利于提高人們學(xué)習(xí)、交流的效率,因此本設(shè)計(jì)具有可行性。

      經(jīng)濟(jì)可行性:本設(shè)計(jì)基于ASP.NET開發(fā),完全可以實(shí)現(xiàn)免費(fèi)、開源,用戶可以直接瀏覽博客信息和留言,并且可用通過免費(fèi)注冊(cè)來獲得更多的功能,便于為人們接受。3.1.1 技術(shù)可行性

      技術(shù)可行性是本設(shè)計(jì)最關(guān)鍵的部分,也是其他可行性的基礎(chǔ)。需要根據(jù)用戶所提出的各種功能要求和限制條件,在技術(shù)的角度上研究本系統(tǒng)實(shí)現(xiàn)的可行性。系統(tǒng)的開發(fā)涉及多個(gè)方面的技術(shù)。包括了系統(tǒng)的軟件和硬件,網(wǎng)絡(luò)的環(huán)境,人員的技術(shù)水平,系統(tǒng)開發(fā)的各種相關(guān)理論。在

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

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

      之因?yàn)楦鞣N各樣的原因?qū)е滤鼈儧]有廣泛的應(yīng)用。我們?cè)陂_發(fā)的過程中確定了產(chǎn)品的功能之后要做的便是選擇合適的技術(shù)來實(shí)現(xiàn)它,這其中的大多數(shù)技術(shù)應(yīng)當(dāng)是成熟的可靠的,因?yàn)樽鳛橐豢町a(chǎn)品首先應(yīng)該是可靠的,不能總是出現(xiàn)問題。但是也應(yīng)當(dāng)采用一些具有新特點(diǎn)的技術(shù),令本產(chǎn)品同其他類似產(chǎn)品比起來有所獨(dú)特的地方,能夠在眾多同類產(chǎn)品中脫穎而出。當(dāng)然,如果技術(shù)實(shí)力足夠強(qiáng)大,也可以更加大膽和廣泛的采用新技術(shù)新理念。

      博客作為一款網(wǎng)絡(luò)應(yīng)用,需要注意的還有網(wǎng)絡(luò)環(huán)境的問題,如何降低網(wǎng)絡(luò)環(huán)境的波動(dòng)對(duì)博客系統(tǒng)性能產(chǎn)生的影響。比如博客在只有少數(shù)用戶的時(shí)候能夠流暢的運(yùn)行,但是在面對(duì)大量的用戶時(shí)原有的資源就可能捉襟見肘,如何在低谷和高峰之間進(jìn)行切換,在面對(duì)大量用戶時(shí)不會(huì)導(dǎo)致明顯的性能能下降,在面對(duì)少量用戶時(shí)避免資源的浪費(fèi)。

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

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

      經(jīng)濟(jì)可行性是指可以使用的資源的可能性,經(jīng)濟(jì)可行性研究的核心是成本效益分析,主要是估算開發(fā)成本是否會(huì)高于預(yù)期利潤(rùn)。要關(guān)注開發(fā)設(shè)計(jì)所投入的資

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

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

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

      要開發(fā)的產(chǎn)品應(yīng)該事先進(jìn)行評(píng)估,確定其開發(fā)中所需要投入的各種成本,并且對(duì)今后的運(yùn)行維護(hù)做出比較準(zhǔn)確的預(yù)期。從而避免出現(xiàn)系統(tǒng)自身問題導(dǎo)致耗費(fèi)大量人力物力來解決后期運(yùn)行中的問題。

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

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

      對(duì)于用戶來說一個(gè)可以輕而易舉上手的產(chǎn)品顯然比那些要讀完冗長(zhǎng)的說明書甚至進(jìn)行一定的學(xué)習(xí)培訓(xùn)才能操作的產(chǎn)品受歡迎的多。一個(gè)成功的博客應(yīng)該是

      很友好的,對(duì)于任何一個(gè)熟悉上網(wǎng)方式的人都應(yīng)該能夠無障礙的使用它。同時(shí)它的功能又應(yīng)該是全面的,用戶可以用符合日常習(xí)慣的方式來實(shí)現(xiàn)所要達(dá)到的目的。對(duì)于一些新穎的功能,應(yīng)該通過給予用戶一些獎(jiǎng)勵(lì)的方式使用戶對(duì)其產(chǎn)生興趣,并且試用它。若是使用起來有一定的難度則應(yīng)該給予一定的說明和引導(dǎo)。比如騰訊微博在更新出新功能時(shí)會(huì)通過種種獎(jiǎng)勵(lì)和優(yōu)惠積極像廣大用戶推廣,并且用很詳細(xì)的方式來一步步引導(dǎo)用戶學(xué)會(huì)使用新功能。

      本博客網(wǎng)站系統(tǒng)的用戶平臺(tái)同時(shí)面向游客、普通注冊(cè)用戶和管理員,其界面簡(jiǎn)潔,采用web的可視化界面,普通注冊(cè)用戶只需要輕點(diǎn)鼠標(biāo)和鍵盤就可以使用博客;而數(shù)據(jù)的輸入和維護(hù)均由博客的管理者來完成。正是由于這些特性,本博客系統(tǒng)十分適于新手使用,無須學(xué)習(xí)復(fù)雜的教程便可以獲得好的體驗(yàn)。故,本博客網(wǎng)站系統(tǒng)在操作上是可行的。

      3.2 功能需求

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

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

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

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

      3.3 性能需求

      數(shù)據(jù)精度要求:數(shù)據(jù)需要遵循嚴(yán)格的格式,否則系統(tǒng)將不會(huì)予以響應(yīng)。時(shí)間要求:運(yùn)行環(huán)境方面的連接響應(yīng)時(shí)間應(yīng)小于等于10秒,對(duì)大于180秒沒進(jìn)行任何操作的用戶其訪問認(rèn)證將失效,需要重新進(jìn)行登入。

      數(shù)據(jù)管理要求:即數(shù)據(jù)庫系統(tǒng)管理,其包括:

      注冊(cè)信息表包含用戶名,密碼,住址,愛好,職業(yè)等基本信息。并且要求數(shù)據(jù)庫的自動(dòng)增長(zhǎng)比例為2%。

      日志記錄:包含標(biāo)題,時(shí)間,內(nèi)容,作者等信息。留言管理:包含回復(fù)人,內(nèi)容,時(shí)間等信息。相冊(cè)管理:包含評(píng)論人,內(nèi)容,時(shí)間等信息。

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

      根據(jù)以上需求分析,總結(jié)出個(gè)本人博客系統(tǒng)的基本功能需求。如圖3-1所示: 15

      日志管理<><><><>圖片管理留言管理相冊(cè)管理<><>用戶管理系統(tǒng)管理員音樂管理用戶注冊(cè)<><><><><>瀏覽日志用戶登陸<>瀏覽相冊(cè)文章評(píng)論個(gè)人檔前臺(tái)用戶圖3-1 系統(tǒng)總用例圖

      基于Asp.Net的個(gè)人博客網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)

      第四章 系統(tǒng)概要設(shè)計(jì)

      4.1概述

      本博客系統(tǒng)采用B/S結(jié)構(gòu),即Browser/Server或?yàn)g覽器/服務(wù)器結(jié)構(gòu);建立在兩種Web服務(wù)模式之上,本模型結(jié)構(gòu)適用于Internet環(huán)境下。用戶只需要連上Internet,便能夠在任何時(shí)間、任何地點(diǎn)使用本系統(tǒng),本網(wǎng)站工作的原理如4-1:

      執(zhí)行過程請(qǐng)求客戶端回發(fā)驗(yàn)證Web服務(wù)器傳送數(shù)據(jù)庫檢索 圖4-1 系統(tǒng)工作原理圖

      4.2系統(tǒng)結(jié)構(gòu)

      本博客網(wǎng)站系統(tǒng)基于B/S架構(gòu),分為用戶前臺(tái)和管理者后臺(tái)這兩大模塊。

      前臺(tái)的關(guān)鍵任務(wù)是:查看日志、查看相冊(cè)、大家評(píng)論、音樂背景、用戶登錄、用戶資料等功能模塊。

      后臺(tái)的主要功能為:日志管理、相冊(cè)管理、圖片管理、留言管理等功能模塊。本系統(tǒng)的功能部分結(jié)構(gòu)如圖4-2所示: 基于Asp.Net的個(gè)人博客網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)

      系系系系系系系系系系系系系系系系系系系日背日日發(fā)志留相添上景用日相歷志布類言冊(cè)加傳音戶志冊(cè)瀏留管日別管管相圖樂登查瀏覽言理志管理理冊(cè)片設(shè)錄看覽文板理置章圖4-2系統(tǒng)功能結(jié)構(gòu)圖

      從上圖可以看出本個(gè)人博客系統(tǒng)由前臺(tái)和后臺(tái)這兩個(gè)功能模塊組成。前臺(tái)功能模塊包括:

      用戶登錄:用戶通過自己所注冊(cè)的賬號(hào)和密碼登錄成功后便能進(jìn)入屬于自己的博客管理界面。

      日志查看:日志查看可以分為對(duì)日志的列表進(jìn)行查看和對(duì)日志的內(nèi)容進(jìn)行查看,并且日志可以根據(jù)類別進(jìn)行瀏覽。

      相冊(cè)瀏覽:相冊(cè)瀏覽包含首頁最新相冊(cè)和相冊(cè)列表這兩項(xiàng),點(diǎn)擊相冊(cè)的類別便可以看到該類別的所有圖片。

      留言板:本博客系統(tǒng)具有留言板功能,游客和用戶能均可以到留言板發(fā)表留言。

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

      后臺(tái)功能模塊包括:

      日志管理:即發(fā)布日志,更改日志,deleted日志,并可以對(duì)日志類別進(jìn)行區(qū)分和修改。

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

      4.3 數(shù)據(jù)庫設(shè)計(jì) 個(gè)人檔基于Asp.Net的個(gè)人博客網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)

      4.3.1 數(shù)據(jù)庫設(shè)計(jì)概述

      數(shù)據(jù)庫設(shè)計(jì)是使用現(xiàn)有的數(shù)據(jù)庫管理系統(tǒng),針對(duì)特定應(yīng)用的簡(jiǎn)歷數(shù)據(jù)庫模型,建立數(shù)據(jù)庫來滿足它所要實(shí)際使用的環(huán)境。因此,它可以快捷的采集數(shù)據(jù),進(jìn)行內(nèi)存操作和管理數(shù)據(jù),實(shí)現(xiàn)使用者對(duì)信息需求和處理的要求。從另一個(gè)角度來看,數(shù)據(jù)庫的設(shè)計(jì)是在現(xiàn)實(shí)世界的數(shù)據(jù)庫管理系統(tǒng)的緊密結(jié)合,有機(jī)的過程,結(jié)合相應(yīng)的。

      在數(shù)據(jù)庫的設(shè)計(jì)過程之中,我們將會(huì)遇到的關(guān)鍵難題會(huì)是:

      懂得計(jì)算機(jī)與數(shù)據(jù)庫的人往往缺乏應(yīng)用業(yè)務(wù)的只是和實(shí)際經(jīng)驗(yàn)。而熟悉應(yīng)用業(yè)務(wù)的人一般又不懂得計(jì)算機(jī)和數(shù)據(jù)庫。兩者兼具的人很少。

      在項(xiàng)目的一開始旺旺不能明確應(yīng)用業(yè)務(wù)的數(shù)據(jù)庫系統(tǒng)目標(biāo)。能普遍適用的工具與設(shè)計(jì)方法幾乎不存在。

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

      要設(shè)計(jì)數(shù)據(jù)庫首先要明確系統(tǒng)目標(biāo)。這樣可以確保開發(fā)工作得以順利實(shí)施,提高工作效率,保證數(shù)據(jù)模型的準(zhǔn)確和完整。數(shù)據(jù)庫設(shè)計(jì)的終極目標(biāo)是數(shù)據(jù)庫必須滿足使用者對(duì)數(shù)據(jù)的存儲(chǔ)和處理的要求。一個(gè)成功的數(shù)據(jù)庫應(yīng)該是功能強(qiáng)大的。能夠準(zhǔn)確的顯示工作數(shù)據(jù)。使用方便,易于維護(hù)。在系統(tǒng)實(shí)際投入使用的時(shí)候,對(duì)于用戶的請(qǐng)求能夠在合理的時(shí)間內(nèi)給與響應(yīng)。方便在投入使用之后根據(jù)實(shí)際情況對(duì)數(shù)據(jù)庫結(jié)構(gòu)進(jìn)行再次的改進(jìn)。便于對(duì)數(shù)據(jù)的查找和編輯。維護(hù)數(shù)據(jù)庫的工作較少。具有可靠的安全措施可以保證數(shù)據(jù)的安全。冗余的數(shù)據(jù)盡可能少。便于數(shù)據(jù)的備份和恢復(fù)。數(shù)據(jù)庫的結(jié)構(gòu)對(duì)于最后使用的用戶應(yīng)當(dāng)是可視化的。

      新奧爾良方法。這種方法是一種比成熟的數(shù)據(jù)庫設(shè)計(jì)的辦法。其主要包括對(duì)需求進(jìn)行分析,之后根據(jù)需求建立概念結(jié)構(gòu),以之前的工作為基礎(chǔ)簡(jiǎn)歷邏輯結(jié)構(gòu),最后設(shè)計(jì)系統(tǒng)的物理結(jié)構(gòu)等肆大部分。這種方法注重于數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計(jì),而不太考慮數(shù)據(jù)庫的行為設(shè)計(jì)。

      數(shù)據(jù)庫設(shè)計(jì)方法——E-R模型是以第三范式作為理論基礎(chǔ)的,抽象的語言規(guī)范世紀(jì)的方法,設(shè)計(jì)方法的基礎(chǔ)上,使用在數(shù)據(jù)庫設(shè)計(jì)的各個(gè)步驟中的的實(shí)際的技術(shù)和方法。

      數(shù)據(jù)庫設(shè)計(jì)的實(shí)現(xiàn)方法,從根本上來講依舊是靠手工分析來設(shè)計(jì)的,他的基本思想是通過不斷的反復(fù)帶入和不斷的精益求精來實(shí)現(xiàn)的。

      在數(shù)據(jù)庫設(shè)計(jì)過程中,首先要做的是需求分析,在這個(gè)部分要做的是對(duì)我們

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

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

      數(shù)據(jù)庫的需求分析是數(shù)據(jù)庫最重要也是最困難最麻煩的一步,如果這一步做得不好,那么后續(xù)的設(shè)計(jì)花費(fèi)再多的時(shí)間,再怎么優(yōu)化也無法從根本上改變之前的問題。

      在明確了數(shù)據(jù)庫的需求之后要做的就是數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計(jì)。4.3.2 數(shù)據(jù)庫概念設(shè)計(jì)

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

      數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的第一步要做是確立概念性的結(jié)構(gòu),其頂部的信息結(jié)構(gòu)的設(shè)計(jì),會(huì)要求根據(jù)對(duì)使用者需求的研究出的結(jié)果,抽象出系統(tǒng)的信息結(jié)構(gòu),也就是概念模型,建立數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)是最重要的工作,獨(dú)立的邏輯結(jié)構(gòu)設(shè)計(jì),數(shù)據(jù)庫管理系統(tǒng)。

      數(shù)據(jù)庫概念結(jié)構(gòu)需要具有豐富的語義表達(dá)能力。表達(dá)各種用戶的不同需求,包括各種現(xiàn)實(shí)世界中的物體的描述,它們之間的連接,可滿足用戶數(shù)據(jù)處理的需求。容易溝通和理解。結(jié)構(gòu)的概念是設(shè)計(jì)師和用戶之間溝通的主要工具。容易修改。當(dāng)這個(gè)系統(tǒng)所使用的地方和應(yīng)用中遇到的要求發(fā)生變化時(shí),可以很容易地修改的概念結(jié)構(gòu),以反映這些變化。輕松轉(zhuǎn)換模型的各種數(shù)據(jù),很容易推導(dǎo)出的DBMS的邏輯模型。

      其設(shè)計(jì)的方法是采用E-R圖,其過程可以分為三步:

      (一)在E-R模型的設(shè)計(jì)

      設(shè)計(jì)內(nèi)容包括當(dāng)?shù)氐腅R模型確定本地的ER模型范圍內(nèi),定義實(shí)體,關(guān)系和它們的屬性。主要核心是實(shí)際的現(xiàn)實(shí)情況是,加工,共同的特征提取,忽略不

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

      (二)設(shè)計(jì)整體E-R模型

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

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

      通過對(duì)相關(guān)實(shí)體的合并減少數(shù)量的實(shí)體,通常具有相同的原代碼實(shí)體合并。此外,如果多個(gè)實(shí)體之間存在1:1的關(guān)聯(lián),那么你可以考慮把他們整合成一個(gè)實(shí)體,同時(shí)適當(dāng)把多余的屬性和多余的鏈路消除掉。

      通過對(duì)現(xiàn)實(shí)世界信息的抽象,建立概念模型,可以有效提高數(shù)據(jù)庫設(shè)計(jì)的效率。根據(jù)以前所學(xué)的知識(shí),可以依靠系統(tǒng)E-R圖來描述概念模型,并且易于該圖所體現(xiàn)的系統(tǒng)中各個(gè)實(shí)體間關(guān)系來建立數(shù)據(jù)庫。相關(guān)的內(nèi)容如圖4-3所示:

      編號(hào)相冊(cè)名稱1管理N相冊(cè)相冊(cè)封面登錄賬號(hào)添加時(shí)間編號(hào)管理員信息11管理N登錄賬號(hào)登錄密碼登錄密碼管理編號(hào)用戶信息出生年月N電子郵件標(biāo)題描述愛好星座編號(hào)日志信息內(nèi)容類別發(fā)布時(shí)間

      圖4-3系統(tǒng)E-R圖

      4.3.3 數(shù)據(jù)庫實(shí)體設(shè)計(jì)

      在概念設(shè)計(jì)完成的是進(jìn)行E-R模型轉(zhuǎn)化為一個(gè)特定的數(shù)據(jù)庫管理系統(tǒng)在支持?jǐn)?shù)據(jù)模型的組織,這是在一定條件下所限定的數(shù)據(jù)庫管理系統(tǒng)。它能夠?qū)?shù)據(jù)庫中所包括的信息的邏輯結(jié)構(gòu)進(jìn)行處理。

      數(shù)據(jù)庫管理系統(tǒng)的具體數(shù)據(jù)支持的組織層形式有四種。層次的形式,網(wǎng)絡(luò)的形式,關(guān)系的形式和面向?qū)ο蟮男问健?/p>

      在本設(shè)計(jì)中將用到的是E-R模型想關(guān)系模型的轉(zhuǎn)換。

      其包含有兩個(gè)步驟:

      (一)E-R模型向關(guān)系模型的轉(zhuǎn)換

      從ER模型轉(zhuǎn)換關(guān)系模型中面對(duì)的問題是如何將實(shí)體和關(guān)系模型之間的關(guān)系,如何確定主代碼和屬性模型之間的關(guān)系。

      (二)數(shù)據(jù)模型的優(yōu)化

      邏輯結(jié)構(gòu)的設(shè)計(jì)結(jié)果并非是唯一的,因此應(yīng)該根據(jù)實(shí)際需求對(duì)邏輯數(shù)據(jù)模型進(jìn)行適當(dāng)?shù)恼{(diào)整與修改,即數(shù)據(jù)模型的優(yōu)化。

      在完成了以上工作之后,便到了物理結(jié)構(gòu)設(shè)計(jì)的階段。物理結(jié)構(gòu)依靠數(shù)據(jù)庫管理系統(tǒng)為基礎(chǔ)建立存儲(chǔ)結(jié)構(gòu),是把已經(jīng)確定的數(shù)據(jù)庫邏輯結(jié)構(gòu)性能盡可能提高的方法和技術(shù)。數(shù)據(jù)訪問,訪問和存儲(chǔ)分配設(shè)計(jì)合理高效的數(shù)據(jù)的路徑,數(shù)據(jù)庫結(jié)構(gòu)和可行的。

      其一般方法為確定數(shù)據(jù)庫的物理結(jié)構(gòu),用于選擇適合對(duì)數(shù)據(jù)庫進(jìn)行物理訪問的方法和數(shù)據(jù)庫信息儲(chǔ)存的結(jié)構(gòu);對(duì)物理結(jié)構(gòu)的時(shí)間效率和空間效率做出評(píng)價(jià)。

      相冊(cè)信息實(shí)體,相冊(cè)包含編號(hào);相冊(cè)的名字;相冊(cè)的封面圖;建立的時(shí)間這四個(gè)屬性,具體如圖4-4:

      相冊(cè)名稱編號(hào)相冊(cè)相冊(cè)封面添加時(shí)間

      圖4-4相冊(cè)信息實(shí)體圖

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

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

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

      圖4-5用戶信息實(shí)體圖

      日志信息包含編號(hào);標(biāo)題;具體信息;類別;發(fā)布時(shí)間等屬性,如圖4-6:

      編號(hào)日志信息標(biāo)題內(nèi)容類別發(fā)布時(shí)間

      圖4-6日志信息實(shí)體圖

      日志類別包含編號(hào)和類別名稱這兩個(gè)屬性,如圖4-7:

      編號(hào)日志類別類別名稱 圖4-7日志類別信息實(shí)體圖

      留言信息包含有編號(hào);留言人;留言時(shí)間;留言內(nèi)容;回復(fù)內(nèi)容等屬性,如圖4-8: 23 基于Asp.Net的個(gè)人博客網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)

      編號(hào)留言信息留言人回復(fù)內(nèi)容留言內(nèi)容留言時(shí)間

      圖4-8 留言信息實(shí)體圖

      圖片信息包含有編號(hào);圖片名稱;圖片描述;所屬相冊(cè);上傳時(shí)間;圖片地址等屬性,如圖4-9:

      編號(hào)圖片信息圖片地址上傳時(shí)間圖片描述圖片名稱所屬相冊(cè)

      圖4-9 圖片信息實(shí)體圖

      4.3.4 數(shù)據(jù)庫設(shè)計(jì)表

      在完成了數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計(jì)和行為設(shè)計(jì),并且編寫了實(shí)現(xiàn)用戶需求的應(yīng)用程序之后要做的邊上利用DBMS提供的功能實(shí)現(xiàn)之前所做的設(shè)計(jì),并且選擇盡可能好的方法。然后夾在數(shù)據(jù)并且調(diào)試和運(yùn)行應(yīng)用程序。

      下面將介紹本博客系統(tǒng)所需要的數(shù)據(jù)庫中各個(gè)表的詳細(xì)信息。

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

      表4-1 相冊(cè)信息表

      字段名 ID AlbumName AlbumPic addTime 數(shù)據(jù)類型 int nvarchar nvarchar datetime

      長(zhǎng) 度 4 50 50 8

      主 鍵 是

      否 否 否

      述 編號(hào) 相冊(cè)名稱 相冊(cè)封面 添加時(shí)間

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

      表4-2 背景音樂信息表

      字段名 id MusicPath 數(shù)據(jù)類型 int int

      長(zhǎng) 度 4 50

      主 鍵 是 否

      述 編號(hào) 標(biāo)題

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

      表4-3 相冊(cè)內(nèi)容信息表

      字段名 id imagePath AlbumId AlbumName ds 數(shù)據(jù)類型 int nvarchar int nvarchar text

      長(zhǎng) 度 4 50 4 50 16

      主 鍵 是 否 否 否 否

      述 編號(hào) 圖片地址 相冊(cè)編號(hào) 相冊(cè)名稱 圖片描述

      Article信息表包含編號(hào)(id),日志標(biāo)題(Title),日志內(nèi)容(Contents),發(fā)布時(shí)間(addtime)。在這些字段中編號(hào)是該表的主鍵。如表4-4所示:

      表4-4 日志信息表

      字段名 id Title Contents addtime 數(shù)據(jù)類型 int nvarchar text datetime

      長(zhǎng) 度 4 50 16 8

      主 鍵 是 否 否 否

      述 編號(hào) 日志標(biāo)題 日志內(nèi)容 發(fā)布時(shí)間

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

      基于Asp.Net的個(gè)人博客網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)

      表4-5 用戶信息表

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

      長(zhǎng) 度 4 50 50 50 50 50 50 8 16

      主 鍵 是 否 否 否 否 否 否 否 否

      述 編號(hào) 賬號(hào) 用戶密碼 用戶生日 電子郵件 星座 愛好 注冊(cè)時(shí)間 用戶描述

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

      表4-6 留言信息表

      字段名 id Date Name Reply Message 數(shù)據(jù)類型 int nvarchar nvarchar Text Text

      長(zhǎng) 度 4 50 50 16 16

      主 鍵 是 否 否 否 否

      述 編號(hào) 發(fā)布時(shí)間 留言姓名 回復(fù)內(nèi)容 留言內(nèi)容

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

      表4-7 日志類別信息表

      字段名 id Name 數(shù)據(jù)類型 int nvarchar

      長(zhǎng) 度 4 50

      主 鍵 是 否

      述 編號(hào) 類別名稱 基于Asp.Net的個(gè)人博客網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)

      第五章 系統(tǒng)詳細(xì)設(shè)計(jì)

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

      5.1用戶登錄模塊的實(shí)現(xiàn)

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

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

      圖5-1 用戶登陸 基于Asp.Net的個(gè)人博客網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)

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

      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)//判斷所輸入的驗(yàn)證碼與系統(tǒng)隨機(jī)生成的驗(yàn)證碼是否相同

      {

      Label2.Text = “驗(yàn)證碼錯(cuò)誤?!?

      return;

      }

      else

      {

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

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

      Response.Redirect(“l(fā)oading.aspx”);

      }//將用戶名和密碼與數(shù)據(jù)庫中的信息進(jìn)行比對(duì)

      }

      else

      {

      Response.Write(“”);

      } } 5.2留言板模塊的實(shí)現(xiàn)

      本博客網(wǎng)站為用戶提供了留言板功能,所用用戶均可在留言板進(jìn)行留言,博客擁有這在后臺(tái)可以查看和刪除留言信息。

      留言的頁面效果如圖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”);

      } 下面是留言板的后臺(tái)部分,博客擁有者在后臺(tái)可以進(jìn)行查看和刪除留言的操作。

      后臺(tái)管理留言的效果如圖5-3所示:

      圖5-3 管理留言

      5.3相冊(cè)模塊的實(shí)現(xiàn)

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

      相冊(cè)展示列表的實(shí)現(xiàn)效果如圖5-4所示:

      圖5-4 相冊(cè)信息列表

      主要的代碼如下: 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

      {

      }

      }

      博客管理者在后臺(tái)憑借相冊(cè)相關(guān)介紹添加的部分可以實(shí)現(xiàn)對(duì)相冊(cè)加入多重介紹,包括相冊(cè)的名字,圖片的注釋。添加相冊(cè)信息實(shí)現(xiàn)的效果如圖5-5所示:

      圖5-5 添加相冊(cè)信息

      主要代碼如下:

      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”);

      } 首先我們將采用一個(gè)圖片上傳類來對(duì)圖片的上傳進(jìn)行操作,用戶先獲取所要

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

      5.4圖片管理模塊的實(shí)現(xiàn)

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

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

      圖5-6 圖片信息展示

      主要實(shí)現(xiàn)代碼如下:

      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

      {

      }

      } 在后臺(tái)可以實(shí)現(xiàn)圖片信息的添加、修改和上傳圖片等功能的操作。上傳圖片界面運(yùn)行效果如圖5-7所示:

      圖5-7 上傳圖片

      主要實(shí)現(xiàn)代碼如下:

      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(“添加成功繼續(xù)上傳”, “UpLoadPic.aspx”);}

      5.5背景音樂的實(shí)現(xiàn)

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

      博主進(jìn)入后臺(tái)后可以電擊背景音樂設(shè)置按鈕選定背景音樂,然后上傳到數(shù)據(jù)庫中,這樣便成功實(shí)現(xiàn)了設(shè)置背景音樂。

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

      圖5-8 背景音樂設(shè)置

      主要實(shí)現(xiàn)代碼如下:

      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);//將音樂和說明信息上傳數(shù)據(jù)庫

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

      } 這樣數(shù)據(jù)庫中便以存儲(chǔ)了背景音樂的路徑和名稱,在前臺(tái)登陸后便可以采用微軟自帶的音樂播放器來自動(dòng)加載和播放背景音樂。

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

      width=“260”>

      “>

      5.6日歷模塊的實(shí)現(xiàn)

      為了便與檢索文章,我們?cè)诓┛椭屑尤肓巳諝v模塊,用戶可以點(diǎn)擊日歷模塊上的日期便能夠直接查詢?cè)撊掌诋?dāng)天所發(fā)布的所有日志信息。其原理是在選擇日期后系統(tǒng)會(huì)把所選擇的日期值傳到文章頁面,通過檢索將結(jié)果顯示到頁面中。

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

      圖5-9 日歷效果

      主要實(shí)現(xiàn)代碼如下:

      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");經(jīng)過一段時(shí)間的實(shí)際測(cè)試證明,該博客網(wǎng)站系統(tǒng)有著較高的穩(wěn)定性,其操作簡(jiǎn)單,功能齊全,所采用的技術(shù)成熟并且有很好的發(fā)展預(yù)期,故本設(shè)計(jì)基本達(dá)到預(yù)期。

      由于自身的實(shí)踐水平不足,導(dǎo)致在后期調(diào)試中花費(fèi)較多時(shí)間,因而時(shí)間比較倉促,很多地方不夠完善。比如其網(wǎng)站界面不夠美觀,對(duì)于一個(gè)網(wǎng)站來說,網(wǎng)站的頁面是用戶第一個(gè)看到的方面,其給用戶的印象對(duì)整個(gè)網(wǎng)站來說是至關(guān)重要的。

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

      第六章 總結(jié)

      經(jīng)過近三個(gè)月的努力,終于完成了這項(xiàng)程序設(shè)計(jì)及論文的撰寫。設(shè)計(jì)成品能夠符合我的設(shè)計(jì)初衷,即為特定年齡層用戶以及博客初次使用者編寫一款簡(jiǎn)單方便的個(gè)人博客系統(tǒng)。

      本系統(tǒng)所實(shí)現(xiàn)的具體目標(biāo)如下:

      1、界面簡(jiǎn)潔、操作方便:使用完全控件式的頁面布局,上用戶在使用博客時(shí)更加簡(jiǎn)單方便;用戶在使用博客的一些功能時(shí)只需按流程點(diǎn)擊鼠標(biāo)即可,不存在復(fù)雜的操作功能,實(shí)現(xiàn)博客易操作的目標(biāo);系統(tǒng)風(fēng)格樸實(shí)簡(jiǎn)單,避免因花俏繚亂給人以不實(shí)之感。

      2、即時(shí)可見:對(duì)博客進(jìn)行的操作,包括發(fā)布、修改、刪除等,一旦操作成功將立該在系統(tǒng)的相應(yīng)位置出現(xiàn),實(shí)現(xiàn)系統(tǒng)消息的提交與發(fā)表之間的零時(shí)差性。

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

      4、動(dòng)態(tài)管理:能夠動(dòng)態(tài)的完成對(duì)數(shù)據(jù)庫作息的存儲(chǔ)、搜索、修改等操作,實(shí)現(xiàn)對(duì)系統(tǒng)的動(dòng)態(tài)管理。

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

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

      經(jīng)過這幾個(gè)月的學(xué)習(xí),我現(xiàn)在已經(jīng)基本掌握了ASP.NET、SQL Server 2005、C#等網(wǎng)站開發(fā)技術(shù),完成了從入門到運(yùn)用的階段跨越。除此之外,在程序設(shè)計(jì)過程中我還學(xué)會(huì)了做事要態(tài)度嚴(yán)謹(jǐn)、心思細(xì)膩,不然在過程中出現(xiàn)任何一個(gè)微小的錯(cuò)誤都可能造成最后失敗的結(jié)果。

      由于時(shí)間和能力有所限,本系統(tǒng)必然不是完美的,程序和論文都存在不足之處。我今后將會(huì)更加努力學(xué)習(xí)軟件開發(fā)方面的知識(shí),爭(zhēng)取將這個(gè)設(shè)計(jì)盡可能的改進(jìn)完善。

      參考文獻(xiàn)

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

      致謝

      在畢業(yè)設(shè)計(jì)期間,老師們認(rèn)真負(fù)責(zé)的工作態(tài)度、客觀嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神、深厚扎實(shí)的理論知識(shí)和為人師表的道德風(fēng)范都給我留下了深刻的印象,這些都是值得我用一生學(xué)習(xí)的寶貴財(cái)富。

      在本次畢業(yè)設(shè)計(jì)的過程中,我鞏固了大學(xué)中所學(xué)的理論知識(shí),提高了時(shí)間能力,通過XX老師的悉心指導(dǎo)我成功的將自己所學(xué)的理論知識(shí)同實(shí)際需要有機(jī)結(jié)合起來,在完成設(shè)計(jì)的過程中我獨(dú)立調(diào)研,全面分析,系統(tǒng)的靈活的運(yùn)用理論知識(shí)解決了很多實(shí)際問題,并且在這個(gè)過程中發(fā)現(xiàn)自身的不足,從而使自己的整體理論水平進(jìn)一步提高。與此同時(shí),老師們嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,認(rèn)真的工作態(tài)度也深深的感染了我,我將在今后的工作學(xué)習(xí)中以此為楷模不斷進(jìn)取。

      在此,我向給予了我巨大幫助的各位老師們和同學(xué)們致以深深的感謝與敬意,在你們的幫助下我才能取得今天的成績(jī)。與此同時(shí),謹(jǐn)向?qū)徃宓睦蠋焸冎乱灾孕牡母兄x!

      第五篇:博客網(wǎng)站設(shè)計(jì)制作策劃書

      博客網(wǎng)站設(shè)計(jì)制作策劃書

      一、前期調(diào)研分析:

      1、創(chuàng)建博客網(wǎng)站所遵循的一般原則

      (1)系統(tǒng)性原則。創(chuàng)建者要提供設(shè)計(jì)方案,還應(yīng)充分了解用戶的一些基本情況,并將其需求等要素融入到網(wǎng)站建設(shè)方案中。

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

      (3)友好性原則。博客網(wǎng)站的友好性包括以下幾個(gè)個(gè)方面:對(duì)用戶友好——滿足用戶需求、獲得用戶信任;對(duì)網(wǎng)絡(luò)環(huán)境友好——適合搜索引擎檢索、便于積累網(wǎng)絡(luò)資源;對(duì)經(jīng)營(yíng)者友好——網(wǎng)站便于管理維護(hù)、能提高工作效率。

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

      (5)適應(yīng)性原則。博客網(wǎng)站的功能、內(nèi)容、服務(wù)和表現(xiàn)形式等需要適應(yīng)不斷變化的網(wǎng)絡(luò)環(huán)境,網(wǎng)站應(yīng)具有連續(xù)性和可擴(kuò)展性。

      2、網(wǎng)站建設(shè)基本流程規(guī)范

      (1)制定網(wǎng)站規(guī)劃方案,包括網(wǎng)站預(yù)期目標(biāo)、狀況分析、網(wǎng)站欄目結(jié)構(gòu)、用戶行為分析及內(nèi)容規(guī)劃、網(wǎng)頁模版設(shè)計(jì)、網(wǎng)站服務(wù)器技術(shù)、網(wǎng)站運(yùn)營(yíng)維護(hù)等基本內(nèi)容;

      (2)網(wǎng)站技術(shù)開發(fā)、網(wǎng)頁設(shè)計(jì);

      (3)網(wǎng)站測(cè)試;

      (4)網(wǎng)站發(fā)布和推廣;

      (5)網(wǎng)站維護(hù)及管理。

      (6)網(wǎng)站設(shè)計(jì)對(duì)不同瀏覽器具有兼容性。

      二、網(wǎng)站的功能定位:

      1、個(gè)人博客網(wǎng)站的基本功能和內(nèi)容

      (1)與互聯(lián)網(wǎng)絡(luò)實(shí)現(xiàn)無縫鏈接;

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

      (3)詳細(xì)的個(gè)人介紹;

      (4)詳細(xì)的聯(lián)系方式;

      (5)具有較強(qiáng)的互動(dòng)性;

      (6)相關(guān)的聯(lián)系和服務(wù)信息;

      (7)在線服務(wù)信息;

      (8)持續(xù)更新的信息;

      (9)相關(guān)網(wǎng)站鏈接管理功能;

      三、網(wǎng)站技術(shù)方案:

      (網(wǎng)站設(shè)計(jì)和制作中所采用的技術(shù))

      1.Flash特效功能;

      2.使用各種常用行為;

      3.調(diào)用javaScript;

      4.具有一定的動(dòng)態(tài)效果;

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

      四、網(wǎng)站內(nèi)容規(guī)劃:

      我的個(gè)人博客網(wǎng)站大體上包括以下內(nèi)容:我的圈子,我的相冊(cè),我的音樂,最新動(dòng)態(tài),實(shí)時(shí)互動(dòng)等模塊,各模塊簡(jiǎn)介如下:

      1.我的圈子簡(jiǎn)介:

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

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

      2.我的相冊(cè)簡(jiǎn)介:

      因?yàn)橹灰?QQ號(hào)的幾乎都有自己的空間所以我可以加個(gè)超連接,連接到我的QQ空間、我的相冊(cè):

      (1)設(shè)計(jì)個(gè)人的相冊(cè)

      (2)朋友的相冊(cè)

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

      3.我的音樂簡(jiǎn)介:

      這個(gè)模塊主要包括:

      (1)國(guó)內(nèi)最新流行的音樂

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

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

      4.最新動(dòng)態(tài)簡(jiǎn)介:

      (1)網(wǎng)站公告

      (2)站內(nèi)新聞

      5.項(xiàng)目互動(dòng)簡(jiǎn)介:

      (1)請(qǐng)你留言,通過這個(gè)模塊可以實(shí)時(shí)交流。

      (2)博客論壇。

      五、網(wǎng)頁設(shè)計(jì):

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

      1.網(wǎng)站名稱:博客組團(tuán)

      2.網(wǎng)站LOGO:

      3.網(wǎng)站作用:讓別人了解我、認(rèn)識(shí)我。

      4.網(wǎng)站規(guī)模:因?yàn)槭莻€(gè)人博客網(wǎng)站,以團(tuán)隊(duì)平均每人做1個(gè)頁面的數(shù)值來建立網(wǎng)站,所以規(guī)模不大。由6個(gè)網(wǎng)頁頁面組成。

      5.網(wǎng)站目標(biāo)客戶:學(xué)生及青年朋友。

      6.網(wǎng)站特色:我的博客網(wǎng)站受眾一般為學(xué)生,所以在色彩上和設(shè)計(jì)風(fēng)格上追求學(xué)生的口味,以校園的學(xué)習(xí)和生活為主題,在內(nèi)容上的特色表現(xiàn)為:

      (1)內(nèi)容標(biāo)準(zhǔn)化與個(gè)性化。

      (2)充分體現(xiàn)互動(dòng)性。

      (3)內(nèi)容實(shí)用性。

      (4)多媒體技術(shù)專業(yè)性。

      (5)網(wǎng)站平臺(tái)延展性。

      7.網(wǎng)站的宣傳標(biāo)語:展示自我,分享快樂。

      8.網(wǎng)站的風(fēng)格及配色方案:

      網(wǎng)站標(biāo)準(zhǔn)色:整個(gè)網(wǎng)站以橙黃色為主基色,配以黑白色,我認(rèn)為配這種色代表年輕人的激情。

      9.網(wǎng)站標(biāo)準(zhǔn)字體:在字體上我主張采用默認(rèn)字體,因?yàn)檫@種字體無論在那種瀏覽器上都能正常顯示。所以我采用系統(tǒng)默認(rèn)字體。

      10.網(wǎng)站的欄目設(shè)計(jì)(畫出欄目結(jié)構(gòu)圖):

      主頁布局示意圖

      子頁示意圖

      六、網(wǎng)頁測(cè)試:

      博客網(wǎng)站在本地和服務(wù)器有無圖片和動(dòng)畫無法顯示或鏈接失效等情況。

      七、網(wǎng)站發(fā)布與推廣:

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

      八、博客網(wǎng)站設(shè)計(jì)日程表:

      1.小組分工與合作:

      前期策劃制作:許青

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

      子頁制作:(如圖所示)

      (第1張:1.html)許青

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

      (第3張:3.html)唐辰

      (第4張:4.html)潘俊標(biāo)

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

      項(xiàng)目測(cè)試報(bào)告:許青

      項(xiàng)目匯報(bào):鄭周勇

      2.博客網(wǎng)站策劃書:2012年5月26日

      博客網(wǎng)站設(shè)計(jì)與制作:2012年5月28日---6月

      博客網(wǎng)站測(cè)試:2012年5月31日

      博客網(wǎng)站測(cè)試報(bào)告:2012年6月2日

      博客網(wǎng)站項(xiàng)目匯報(bào):2012年6月4日

      九、費(fèi)用明細(xì):

      1.網(wǎng)頁制作人員工資:

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

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

      下載基于java的博客網(wǎng)站設(shè)計(jì)與開發(fā)畢業(yè)論文word格式文檔
      下載基于java的博客網(wǎng)站設(shè)計(jì)與開發(fā)畢業(yè)論文.doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        網(wǎng)站開發(fā)畢業(yè)論文(共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......

        畢業(yè)論文開題報(bào)告(ASP網(wǎng)站開發(fā))

        開題報(bào)告填寫要求 1.開題報(bào)告作為畢業(yè)設(shè)計(jì)(論文)答辯委員會(huì)對(duì)學(xué)生答辯資格審查的依據(jù)材料之一。此報(bào)告應(yīng)在指導(dǎo)教師指導(dǎo)下,由學(xué)生在畢業(yè)設(shè)計(jì)(論文)工作前期內(nèi)完成,經(jīng)指導(dǎo)教師簽署意......

        JAVA網(wǎng)站開發(fā)與優(yōu)化如何提高代碼運(yùn)行效率

        JAVA網(wǎng)站開發(fā)與優(yōu)化如何提高代碼運(yùn)行效率 可供程序利用的資源(內(nèi)存、CPU時(shí)間、網(wǎng)絡(luò)帶寬等)是有限的,網(wǎng)站優(yōu)化的目的就是讓程序用盡可能少的資源完成預(yù)定的任務(wù)。網(wǎng)站優(yōu)化通常......

        網(wǎng)站設(shè)計(jì)畢業(yè)論文5篇

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

        網(wǎng)站設(shè)計(jì) 畢業(yè)論文 畢業(yè)設(shè)計(jì)

        (論文設(shè)計(jì)(論文)題目 JSP動(dòng)態(tài)網(wǎng)站設(shè)計(jì) 學(xué) 院 教 學(xué) 系 班 級(jí) 姓 名 指導(dǎo)教師 畢業(yè)設(shè)計(jì)) 畢業(yè)論文 JSP動(dòng)態(tài)網(wǎng)站設(shè)計(jì) 摘要 隨著Internet技術(shù)的發(fā)展,人們的日常生活已經(jīng)離不......

        畢業(yè)設(shè)計(jì)-博客網(wǎng)站

        第一章緒論 1.1 系統(tǒng)開發(fā)背景 隨著計(jì)算機(jī)技術(shù)的發(fā)展和普及,blog得到了極大的發(fā)展。Blog,是Weblog的簡(jiǎn)稱。blog是一種新的生活方式、新的工作方式、新的學(xué)習(xí)方式和交流方式。它......

        JAVA開發(fā)個(gè)人簡(jiǎn)歷

        個(gè) 人 簡(jiǎn) 歷 個(gè)人信息 姓名:xxxxxxx性別:x 電話:187-xxx7-xxxx年齡:22 郵箱: lxxxxxxx@xxx.com專業(yè):軟件技術(shù)應(yīng)聘職位 Java軟件開發(fā)工程師 專業(yè)技能 熟練掌握CoreJava編程,具有扎實(shí)......

        java開發(fā)面試題

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