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

正文內容

新豆網(wǎng)設計與實現(xiàn)(畢業(yè)論文)-資料下載頁

2025-06-23 04:16本頁面
  

【正文】 以自動的根據(jù) xml 完成對象關系映射,并持久化到數(shù)據(jù)庫的開源組件,是對 JDBC 的封裝,主要負責 java 對象的持久化.。對象持久化就是將內存中以對象形式存在的數(shù)據(jù)轉存到外部持久設備中;在適當?shù)臅r候可以方便的完整的將數(shù)據(jù)恢復到內存中(雙向的數(shù)據(jù)轉化)。進行對象持久化的原因是首先是從物理上(看基本現(xiàn)象的): 1)內存不能持久化保存數(shù)據(jù) 2)內存容量有限 業(yè)務上: 1)共享信息 (信息對于信息系統(tǒng)來說是先導性要素,內存是不共享的,受保護的,要把信息放在能夠共享的地方) 2)管理(信息的管理:安全、備份、權限)(信息的集中,方 便進行信息管理) 3)大規(guī)模的檢索 Hibernate的工作原理:封裝了JDBC,提供更簡單的抽象的API給業(yè)務層調用,保證業(yè)務層是面向對象的。7 頁面設計本系統(tǒng)的頁面采用SiteMesh框架技術,使得各個頁面之間的耦合度降低。在接下來的幾個章節(jié)里將會簡單介紹以下SiteMesh框架。 網(wǎng)站模板首頁 模板頁如圖71所示:圖 71 網(wǎng)站模板圖 上述模板圖,采用SiteMesh框架技術,head和foot的部分是不會發(fā)生改變的,被定義在裝飾器頁面中,中間會發(fā)生改變的部分,由其他頁面來定制。 SiteMesh簡介SiteMesh是一個非常優(yōu)秀的頁面裝飾器框架,它通過對所有的用戶請求進行過濾,并對服務器向客戶端響應衣進行過濾,從而給原始的服務器響應加入一定的裝飾,可以是header、footer等,然后將經過裝飾后的頁面送回給瀏覽者。對于被裝飾的頁面而言,它無需知道自身被誰裝飾,也無從知道自身被誰裝飾。SiteMesh通過配置文件來配置指定的裝飾器,用于過濾某些頁面,則該裝飾器會裝飾這些頁面,從而提供更好的頁面效果。 通過SiteMesh的頁面裝飾,可以提供更好的代碼復用,所有的頁面裝飾效果耦合在目標頁面中,無需使用include指令來顯式包含裝飾效果,目標頁面與裝飾頁面完全分離,提供更好的解耦。而且應用中所有的頁面都使用相同的裝飾頁面,整個Web應用會有更統(tǒng)一的風格,會提供更好的整體效果。 SiteMesh的工作原理是,它通過Filter來截取request和response,然后給原始的頁面加入一定的裝飾,然后把結果返回給客戶端。裝飾器被配置在配置文件中,由裝飾器配置來控制哪個裝飾器裝飾哪些頁面,通過這種方式,可以最大限度地實現(xiàn)頁面代碼的復用,并提供優(yōu)秀的解耦。 當一個請求到達服務器后,如果該請求需要SiteMesh裝飾,服務器先解釋被請求的資源,然后根據(jù)配置文件獲得用于該請求的對應裝飾器,接著用裝飾器裝飾被請求的資源,最后將被裝飾過的頁面給客戶端。 SiteMesh工作流程 具體工作流程如圖72所示:圖 72 SiteMesh的處理流程 SiteMesh配置文件格式 ?xml version=”” encoding=”GBK”? decorators defaultdir=”/decorators” !—在excludes元素下指定的頁面將不會由SiteMesh來裝飾224。 execludes pattern//pattern pattern/exclude/*/pattern /execludes!—創(chuàng)建一個名為main的裝飾器,,用于裝飾pattern下指定的所有URL頁面224。 decorator name=”main” page=”” pattern/*/pattern /decorator !—定義一個裝飾器,但該裝飾器默認情況下不裝飾任何頁面224。 decorator name=”panel” page=””/ /decorators 與Struts2整合應該注意的問題為了整合SiteMesh框架,讓該核心過濾器來過濾所有的用戶請求。但我們知道,Struts2的所有值是保存在Stack Context或者ValueStack中的,默認情況是,某個過濾器一旦訪問了該Stack Context或ValueStack后,里面對應的值將會被清除掉,如果先使用Struts2的FilterDispatcher來過濾用戶請求,則SiteMesh的過濾器將無法取得Stack Context或者ValueStack中的數(shù)據(jù)。為了解決這個問題,Struts2提供了ActionContextCleanUp類。在Struts2的架構中,標準的過濾器鏈(filterchain)一般以ActionContextCleanUp開始,后面跟著其他需要的過濾器,最后,由FilterDispatcher來處理請求,F(xiàn)ilterDispatcher通常是將請求傳遞給ActionMapper。ActionContextCleanUp會通知FilterDispatcher在正確的時間清除ActionContext中的請求數(shù)據(jù)。 為了讓SiteMesh過濾器和FilterDispatcher都可以訪問到Stack Context和ValueStack中的值,且FilterDispatcher可以在合適時機清除Stack Context和ValueStack 中的值,應該使用如下的過濾器順序:1) ActionContextClearUp過濾器2) SiteMesh核心過濾器3) FilterDispatcher過濾器使用SiteMesh最大的優(yōu)勢在于,提供了良好的解耦和統(tǒng)一的界面風格管理,所有頁面的風格裝飾與被裝飾頁面完成解耦,當我們需要不斷更換整個頁面的顯示風格時,完全無需修改應用中的顯示頁面,只需要修改系統(tǒng)的裝飾器頁面,就可以完成對整個應用里所有頁面的風格控制。8 程序部分代碼 登錄功能 登錄界面如圖81所示:圖 81 登錄頁面public String execute() throws Exception { User user = (username, password)。 if (user == null) { (validup, 用戶名或密碼不正確)。 return login。 } else { (, user)。 HttpServletResponse response = ()。 (response, user, expires)。 if (() == 1) { return SUCCESS。 } else { return validateEmail。 } } } 注冊流程1 注冊流程如圖82所示:圖 82 注冊流程1 function checkusername() { if (!(/^\w{6,16}$/.test($F(username)))) { $(checkusername). = red。 $(checkusername).innerHTML = 用戶名格式不正確,請輸入616位的字母、數(shù)字 或下劃線!。 flag[0] = false。 setSubmitView()。 } else { new ( ${}/authorize/vali!, { method : post, parameters : { username : $F(username)}, onSuccess : function(req) { var s = ()。 if () { $(checkusername). = green。 $(checkusername).innerHTML = 恭喜您,用戶名可以使用!。 flag[0] = true。 setSubmitView()。 } else { $(checkusername). = red。 $(checkusername).innerHTML = 對不起,用戶名已被占用,請重新輸入!。 flag[0] = false。 setSubmitView()。 } }, onLoading : function() { $(checkusername). = 9933CC。 $(checkusername).innerHTML = 正在檢查用戶名是否可用。 } })。 }}Ajax技術介紹: 客戶端采用Ajax技術來進行驗證,同時與服務器進行異步交互。它使用XMLHttpRequest對象與服務器進行端通信。首先,使用open方法創(chuàng)建一個請求,然后,使用send()方法發(fā)送一個請求,再次,使用onreadystatechange事件捕獲請求狀態(tài)變化,使用readyState屬性判斷請求狀態(tài)變化,使用status屬性判斷請求的結果,最后,使用responseText獲得返回的文本信息或者使用responseXML以XMLDocument對象方式獲得返回的結果。 注冊流程2 注冊流程2如圖83所示:圖 83 注冊流程2function checkseccode() { new ( ${ }/authorize/vali!, { method : post, parameters : { code : $F(seccode) }, onSuccess : function(req) { var s = ()。 if () { $(checkseccode). = green。 $(checkseccode).innerHTML = 驗證碼正確。 flag[4] = true。 loginFlag = true。 setSubmitView()。 } else { $(checkseccode). = red。 $(checkseccode).innerHTML = 驗證碼錯誤。 flag[4] = false。 loginFlag = false。 setSubmitView()。 } } })。 項目總結該項目是我和同學一塊來完成的,雖然做的東西比較少,但是我們體會到了在軟件設計前的設計的工作流程,比如說,對數(shù)據(jù)庫的分析,系統(tǒng)中要用到數(shù)據(jù)的處理,數(shù)據(jù)庫的詳細設計。這些使我們充分體會到了,一個軟件項目的開發(fā)絕不是簡單的編碼實現(xiàn)那么簡單,更重要的是開發(fā)前期的分析與系統(tǒng)的整體設計。這些工作只要做的充分了,對于后期的編碼實現(xiàn)有很重要的指導和幫助。若是沒有前期詳細的分析設計,那么要想開發(fā)一個大的系統(tǒng)只能是越做越亂,可能編碼階段會出現(xiàn)不可預料的軟件錯誤。為了鞏固我們培訓期間所學的一些框架技術的應用我們盡量采用學過的新的技術。雖然有些地方用一些設計模式可能顯得有點設計過度,為體現(xiàn)設計模式以及框架給后前開發(fā)和維護帶來的方便性,我們還是采用了經典的MVC設計模式,嚴格遵循面向接口編程。項目還存在一些缺陷,有一部分功能還沒有實現(xiàn),這是一個技術上的難點,我會在以后的日子里不斷學習,提高自己的水平。最基本的一些商品的展示、購買還有用戶的登錄注冊以及用戶對訂單的管理。從這次與同學合作完成一個項目中,我學到了以前很多不知道的知識,更重要的是學到了在實際的項目開發(fā)中怎么去與其他的同事來協(xié)調項目開發(fā)的流程。這次畢業(yè)設計使我體會到了實際開發(fā)中的團隊合作的重要性。 參考文獻 [1] 劉曉華, 《JSP應用開發(fā)詳解 第三版》, 中國水利水電出版社 [2] 方美琪, 《軟件開發(fā)工具》, 經濟科學出版社 [3] 甘仞初, 《信息系統(tǒng)開發(fā)》, 機械工業(yè)出版社 [4] 梯云, 《管理信息系統(tǒng)導論》, 機械工業(yè)出版社 2000,5 [5] 陶永雷等, 《實用軟件工程-第二版》 清華大學出版社 [6] 計雷, 《Eclipse應用開發(fā)完全手冊》 人民日報出版社 [7] 王嘉, 《Ajax經典案例開發(fā)大全》 清華大學出版社 [8] 郭軍, 《網(wǎng)絡管理與控制技術》, 人民郵電出版社 [9] 明日科技編著, 《Hibernate應用開發(fā)完全手冊》 人民日報出版社 [10] 王瑋, 《JavaBean組件程序設計》, 機械工業(yè)出版社 [11] 魏茂軍, 《Jsp案例開發(fā)》, 電子工業(yè)出版社 [12] 李健中, 《數(shù)據(jù)庫系統(tǒng)原理》, 電子工業(yè)出版社 [13] 石道元, 《管理信息系統(tǒng)》, 北京科學出版社 [14] 吳明暉, 《Struts+Hibernate開發(fā)Web應用》, 人民郵電大學出版社 [15] 李剛, 《Struts2權威指南》, 電子工業(yè)出版社 2008,6 [16] 程志艷, 《JSP實用簡明教程》, 清華大學出版社 [17] 阮文江, 《JavaScript程序設計基礎教程》, 人民郵電出版社 [18] 劉中兵, 《Java Web主流框架整合開發(fā)》, 電子工業(yè)出版社 [19] Ivor Horton, 《Beginning Java 2,JDK 5 Edition
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1