freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于web的在線實(shí)時(shí)通訊系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)-資料下載頁

2025-02-26 10:53本頁面

【導(dǎo)讀】越來越多的網(wǎng)民的青睞。目前,出現(xiàn)了很多非常不錯(cuò)的聊天工具,其中應(yīng)用比較廣。泛的有Netmeeting、騰訊QQ、MSN-Messager等。聊天通訊系統(tǒng)的誕生拉進(jìn)了人們。的距離,溝通交流更加方便了。一個(gè)網(wǎng)絡(luò)聊天客戶程序兩個(gè)方面。前者通過Socket套接字建立服務(wù)器,服務(wù)器能讀。取、轉(zhuǎn)發(fā)客戶端發(fā)來信息,并能刷新用戶列表。其中用到了局域網(wǎng)通信機(jī)制的原理,通過直接繼承。Thread類來建立多線程。開發(fā)中利用了計(jì)算機(jī)網(wǎng)絡(luò)編程的基本理論知識,如TCP/IP. 協(xié)議、客戶端/服務(wù)器端模式、網(wǎng)絡(luò)編程的設(shè)計(jì)方法等。系統(tǒng)的目標(biāo)就是能夠?qū)崿F(xiàn)在線實(shí)時(shí)通訊,系統(tǒng)采用MyEclipse為基本開發(fā)環(huán)境,使用SSH框架以及Ajax等進(jìn)行編寫,首先可在短時(shí)間內(nèi)建立系統(tǒng)應(yīng)用原型,然后,對初始原型系統(tǒng)進(jìn)行不斷修正和改進(jìn),直到形成可行系統(tǒng)。系統(tǒng)具有良好的程序結(jié)

  

【正文】 基礎(chǔ)類中沒有實(shí)現(xiàn),則只需在繼承基礎(chǔ)類的前提下添加上自己需要的方法即可,如此大大提高了編碼效率。 DAO 層的類圖如圖 47 所示,其設(shè)計(jì)方案如圖 48 所示,遵循如上所述的實(shí)現(xiàn)原理,所有的 DAO 類皆實(shí)現(xiàn)了基礎(chǔ)類。 I U s e r D a oI F r ie n d D a oI M e s s a g e D a oU s e r D a oF r ie n d D a oM e s s a g e D a oI B a s e D a oSi m p le H ibe r n a t e D a o H ibe r n a t e D a o Su p p o r t 圖 48 DAO 層之間的關(guān)系 如圖 48 中所描 繪的,所有的 dao 類都繼承了 SimpleHibernateDao 以及實(shí)現(xiàn)了 IBaseDao 基礎(chǔ) dao 類,使得其擴(kuò)展性更好,方便以后換框架。 Service 層設(shè)計(jì) 業(yè)務(wù)邏輯層的主要目的即完成對系統(tǒng)功能的具體實(shí)現(xiàn),在該層通過調(diào)用 DAO 層( 通過接口調(diào)用),完成對數(shù)據(jù)的操作,同時(shí)實(shí)現(xiàn)系統(tǒng)中需要實(shí)現(xiàn)的各項(xiàng)功能。 該層的設(shè)計(jì)原則同 DAO 層 相似 ,首先建立接口層,該層聲明在該層需要實(shí)現(xiàn)的 27 信息科學(xué)與技術(shù)學(xué)院學(xué)士學(xué)位論文 功能方法;其次就是接口實(shí)現(xiàn)層,在該層調(diào)用 DAO 層的相關(guān)方法同時(shí)實(shí)現(xiàn)業(yè)務(wù)接口層對應(yīng)的接口完成業(yè)務(wù)功能的實(shí)現(xiàn)。系統(tǒng)中業(yè)務(wù)邏輯組件和 DAO 組件及數(shù)據(jù)之間的依賴關(guān)系如圖 49 所示( Message 為例)。 I M e s s a g e D a oM e s s a g e D a oI B a s e D a oSi m p le H ibe r n a t e D a oH ibe r n a t e D a o Su p p o r tM e s s a g e Se r v ic eI M e s s a g e Se r v ic e 圖 49業(yè)務(wù)邏輯組件和 DAO組件及數(shù)據(jù)之間的依賴關(guān)系圖 在 Service 層中,利用 Spring 的依賴注入與控制反轉(zhuǎn)進(jìn)行橫向切入,提高效率。 bean id=userDao class= property name=sessionFactory ref=sessionFactory/property /bean bean id=friendDao class= property name=sessionFactory ref=sessionFactory/property /bean ! 將 userDao和 friendDao注入到 userService中 bean id=userService class= property name=userDao ref=userDao/property property name=friendDao ref=friendDao/property /bean 28 信息科學(xué)與技術(shù)學(xué)院學(xué)士學(xué)位論文 Web 層設(shè)計(jì) Web是在 Inter上的一種新的資源組織形式,也是一種新的新的信息服務(wù)方式。它是由 Web 瀏覽器和 Web 服務(wù)器兩部分組成。 Web 瀏覽器主要用于在用戶機(jī)器上處理和顯示超文本文件即 Web 頁面 ), Web 服務(wù)器接收 Web 瀏覽器傳送來的 Web 資源和 URL 地址,并將響應(yīng)的文本或信息提供給客戶端的 We b 瀏覽器。 Web 服務(wù)器系統(tǒng)通過超文本鏈接功能和 HTTP 協(xié)議,將文本、圖像、聲音和其他 Inter 上的資源緊密地結(jié)合起來,只要在 Web 瀏覽器的地址欄中輸入 Web 資源的 URL 地址,既可以Web 頁面的形式顯示在 Web 瀏覽器上,并且組成 Web 的超大型文本文件通過超鏈接相互連接,只要在鏈接點(diǎn)上單擊一下,就可以從當(dāng)前頁面跳轉(zhuǎn)到某個(gè)其他頁面, Web資源的這種方便的訪問方式大大加速了 Inter 的普及使用。 Web 的基礎(chǔ)上,在人們開發(fā)出了各種各樣的即時(shí)通訊系統(tǒng)。 Web 層的主要任務(wù)有: ( 1) 顯示用戶界面 ; ( 2) 驗(yàn)證用戶的輸入 ; ( 3) 與服務(wù)器進(jìn)行交互 。 系統(tǒng)中采用 Struts 2 作為系統(tǒng)中 MVC 框架。在控制器層都由 Struts 2 的 Action充當(dāng),這些 Action 通過調(diào)用系統(tǒng)業(yè)務(wù)邏輯層的業(yè)務(wù)邏輯方法來處理用戶請求,并將處理結(jié)果存入系統(tǒng)中,同時(shí)在 JSP 頁面中通過 Struts 2 的標(biāo)簽庫輸出這些處理結(jié)果。 系統(tǒng)中還使用了 Servlet 作為 Web 層的實(shí)現(xiàn)技術(shù),以下以更新信息為例子簡單介紹下實(shí)現(xiàn)方法。如圖 410 所示。 本章主要介紹了整個(gè)系統(tǒng)的設(shè)計(jì)思路,通過 MVC 模式能夠更加快捷方便的理清脈絡(luò),使設(shè)計(jì)路線更下清晰有效 。 29 信息科學(xué)與技術(shù)學(xué)院學(xué)士學(xué)位論文 U p d a t e Se r v le t+d oG e t ( )+d oP os t ( )U s e r D a oI U s e r D a oSi m p le H ibe r n a t e D a oH ibe r n a t e D a o Su p p o r t 圖 410用戶更新信息實(shí)現(xiàn)類圖 30 信息科學(xué)與技術(shù)學(xué)院學(xué)士學(xué)位論文 5 系統(tǒng)實(shí)現(xiàn) 系統(tǒng)的實(shí)現(xiàn)是整個(gè)開發(fā)過程中最重要的一環(huán),設(shè)計(jì)做得再好,系統(tǒng)無法實(shí)現(xiàn),一切都是徒勞,所以系統(tǒng)的實(shí)現(xiàn)就意味著整個(gè)項(xiàng)目的成功與否。 開發(fā)環(huán)境部署 系統(tǒng)采用主流框架 SSH 并使用服務(wù)器 Tomcat, Myeclipse 進(jìn)行開發(fā)。系統(tǒng)中需要完成 Hibernate 和 Spring 的整合,下面將針對整合進(jìn)行分析 。 Hibernate 和 Spring 的整合, Spring 的 IOC 容器是一個(gè)功能非常強(qiáng)大的工廠,不僅可以管理系統(tǒng)中的業(yè)務(wù)邏輯組件,還可以管理系統(tǒng)中的 數(shù)據(jù)源,也可以管理Hibernate 的 SessionFactory 實(shí)例。一旦我們將 SessionFactory 配置成一個(gè)普通的Bean,當(dāng) Spring 容器啟動(dòng)時(shí),系統(tǒng)將自動(dòng)創(chuàng)建 SessionFactory Bean。因?yàn)?Spring的 IOC 容器將 SessionFactory 納入了容器的管理之中,而且系統(tǒng)的 DAO 組件也在容器的管理之中。因此, Spring 的 IOC 容器還可以將 SessionFactory 實(shí)例注入到每個(gè)需要持久化操作的組件中,從而以松耦合的方式來管理 Hibernate 的SessionFactory,避免了直接在 DAO 容器中主動(dòng)獲取 SessionFactory 實(shí)例。但在開發(fā)過程中發(fā)現(xiàn)這樣開發(fā)效率不高,每次對文件做了修改都得重新部署工程,同時(shí)重啟服務(wù)器,所以開發(fā)過程中引入了 Hibernate 的配置文件 對 Hibernate 的 SessionFactory 進(jìn)行管理。 sessionfactory ! 顯示 Hibernate持久化操作所生成的 SQL語句 property name=show_sqltrue/property property name=runnew/property ! 設(shè)置數(shù)據(jù)庫 url property name=jdbc:oracle:thin:@localhost:1521:XE/property ! 設(shè)置數(shù)據(jù)庫用戶名 property name=ljc/property 31 信息科學(xué)與技術(shù)學(xué)院學(xué)士學(xué)位論文 ! 設(shè)置數(shù)據(jù)庫密碼 property name=liaojiangchen/property ! 設(shè)置數(shù)據(jù)庫驅(qū)動(dòng) property name=/property ! 設(shè)置數(shù)據(jù)庫語言 property name=dialect/property /sessionfactory 在 中的配置 bean id=sessionFactory class=an property name=dataSource ref=dataSource / property name=mappingResources list !—設(shè)置對應(yīng)的映射文件 valueedu/jju/entity/map//value valueedu/jju/entity/map//value valueedu/jju/entity/map//value /list /property ?? /bean PO 層的實(shí)現(xiàn) PO 層即為域模型層,主要是各個(gè)實(shí)體類的實(shí)現(xiàn)。 目錄結(jié)構(gòu)如下: 32 信息科學(xué)與技術(shù)學(xué)院學(xué)士學(xué)位論文 圖 51 實(shí)體結(jié)構(gòu)目錄 各個(gè)實(shí)體類中只需設(shè)置類的屬性以及生成 set()、 get()方法, 以 Message 為例子列出關(guān)鍵代碼: public class Message implements { private static final long serialVersionUID = 6277499417241579886L。 //Message類的屬性 private String id。 private String sendId。 private String receiveId。 private String content。 private Date sendDate。 private boolean readed。 //給各個(gè)屬性生成 set()和 get()方法 public Message() { id = ()。 } public String getId() { return id。 } public void setId(String id) { = id。 33 信息科學(xué)與技術(shù)學(xué)院學(xué)士學(xué)位論文 } public Date getSendDate() { return sendDate。 } public void setSendDate(Date sendDate) { = sendDate。 } public boolean isReaded() { return readed。 } public void setReaded(boolean readed) { = readed。 } public String getContent() { return content。 } public void setContent(String content) { = content。 } ?? } Service 層實(shí)現(xiàn) Service 層 即業(yè)務(wù)邏輯層, 主要是針對系統(tǒng)中的具體功能的實(shí)現(xiàn),該層實(shí)現(xiàn)同樣通過面向接口編程實(shí)現(xiàn),其實(shí)現(xiàn) 主要類如圖 52。 34 信息科學(xué)與技術(shù)學(xué)院學(xué)士學(xué)位論文 圖 52業(yè)務(wù)層主要的類 在此以信息處理實(shí)例為例,其中 MessageService 的主要實(shí)現(xiàn)代碼, 以查找聊天記錄方法舉例: public ListMessage getAllMsg(String sendId, String receiveId) { StringBuilder hql = new StringBuilder( SELECT message FROM Message message WHERE (=39。)。 (sendId).append(39。 AND )。 (=39。)。 (receiveId).append(39。) )。 (or (=39。)。 (receiveId).append(39。 AND )。 (=39。)。 (sendId).append(39。))。 ListMessage list = (())。 return list。 } } DAO 實(shí)現(xiàn) DAO 層的 主要任務(wù)就是實(shí)現(xiàn)對實(shí)體對象的 CRUD 操作,該層實(shí)現(xiàn)面向接口的編程,提高系統(tǒng)的可復(fù)用性。 35 信息科學(xué)與技術(shù)學(xué)院學(xué)士學(xué)位論文 主要方法實(shí)現(xiàn)代碼 : /**插入一個(gè)實(shí)體 */ public void insert(final T entity)。 /** 更新一個(gè)實(shí)體 */ public void update(final T entity)。 /**如果實(shí)體存在,更新一個(gè)實(shí)體,如果實(shí)體不存在,插入一個(gè)實(shí)體 */ public void saveOrUpdate(final T entity)。 /**刪除某個(gè)實(shí)體 */ public void delete(final T entity)。 /** 根據(jù) ID 得到某個(gè)實(shí)體,采用 load 方式,如果不存在,會拋出異常 */ public T get(final PK id)。 /** 根據(jù) ID 得到某個(gè)實(shí)體 ,采用 g
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1