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

正文內(nèi)容

最新基于java的博客網(wǎng)站設(shè)計(jì)與開發(fā)畢業(yè)論文-資料下載頁

2025-06-19 03:47本頁面
  

【正文】 gatingRequestProcessor直接將請(qǐng)求轉(zhuǎn)發(fā)到Spring 容器內(nèi)控制器配置為了Struts 與Spring 的整合, Struts 的Action 需要在兩個(gè)地方配置。1. 在strutsconfig且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)求交給它處理。 里配置一個(gè) bean id=actionTemplate abstract=true singleton=false property name=mgr ref=facadeManager / /bean這樣的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 。 采用Ajax加深用戶體驗(yàn)為了加深用戶體驗(yàn),本系統(tǒng)在處理請(qǐng)求時(shí)還應(yīng)用到Ajax 技術(shù)。,及觸發(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 、 方法(GET或POST)。主要是請(qǐng)求交給業(yè)務(wù)邏輯組件處理,再注冊(cè)服務(wù)器的回調(diào)函數(shù)。3. 向服務(wù)器分派異步的Http請(qǐng)求。4. 異步的Http請(qǐng)求發(fā)出后,游覽器不必等待服務(wù)器的響應(yīng),用戶還可以與頁面交互。5. Struts 的核心控制攔截請(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(ListPO)填充到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)一采用UTF8作為我的編碼方式。并且在ActionServlet將請(qǐng)求轉(zhuǎn)發(fā)的時(shí)候先將request的編碼統(tǒng)一設(shè)為UTF8,這樣還是不能將Actionform 的亂碼解決。ActionForm的編碼是ISO88591 為此我可以采用String類提供的構(gòu)造函數(shù)解決。比如ActionFom的String屬性str,我通過new String(().getByte(“ISO88591”),”UTF8”)可以將ActionForm轉(zhuǎn)為UTF8。開始裝MySql 時(shí)就要設(shè)定 數(shù)據(jù)庫建表時(shí)表所用到的編碼。同樣設(shè)為UTF8,開始我有些Form是采用Struts的DynaActionForm,這樣可以少寫個(gè)ActionForm類。但DynaActionForm的編碼不確定。最后我只能將DynaActionForm改為ActionForm的類。對(duì)于Struts 不能攔截的請(qǐng)求我們統(tǒng)一采用Actionform一樣的方式。 利用Validator驗(yàn)證失敗能返回到指定的頁面上去。action path=/regist scope=request name=registForm input=/ validate=true forward name=success path=//forward forward name=input path=//forward forward name=index path=//forward/action 的一個(gè)registAction 的配置文件。RegistForm 經(jīng)過Struts 失敗驗(yàn)證后Struts 不會(huì)將請(qǐng)求交給registAction處理直接轉(zhuǎn)到input定義下的/。而事實(shí)并不能轉(zhuǎn)發(fā),而是轉(zhuǎn)到一個(gè)空白頁面,由于驗(yàn)證成功可以轉(zhuǎn)發(fā),所以,其他一切都沒錯(cuò),只能是Action 的配置有錯(cuò)。將input=/ 改為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的文件屬性,()得到該文件2,怎么產(chǎn)生路徑名?為了不使圖片的名稱一樣我采用以時(shí)間和用戶名兩個(gè)參數(shù)隨機(jī)產(chǎn)生一個(gè)字符串作為圖片的路徑名。激將上傳圖片統(tǒng)一保存到一個(gè)特定的文件夾內(nèi)。最后在表單中必須有 enctype=“multipart/formdata”這樣可以讓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播放的頁面中是采用在頁面中嵌入embed src=%=mp3list% loop=true autostart=true src是一個(gè)mp3的播放列表。頁面刷新后jsp的servlet重新運(yùn)行。mp3重新播放,由于對(duì)播放器的API還不了解,現(xiàn)在還解決。mp3的播放資源只是嵌入到導(dǎo)航頁面()。只要導(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è)并不容易。通過摸索、翻閱并購(gòu)買了大量相關(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)心、幫助和支持的人們。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1