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

正文內(nèi)容

j2ee的ssh框架的搭建和性能優(yōu)化本科畢業(yè)論文(編輯修改稿)

2025-07-16 14:13 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 儲(chǔ)源的代理,并負(fù)責(zé)創(chuàng)建Session 對(duì)象。這里用到了工廠模式。需要注意的是 SessionFactory 并不是輕量級(jí)的,因?yàn)橐话闱闆r下,一個(gè)項(xiàng)目通常只需要一個(gè) SessionFactory 就夠,當(dāng)需要操作多個(gè)數(shù)據(jù)庫(kù)時(shí),可以為每個(gè)數(shù)據(jù)庫(kù)指定一個(gè) SessionFactory。 接口 Configuration 接口負(fù)責(zé)配置并啟動(dòng) Hibernate,創(chuàng)建 SessionFactory 對(duì)象。在 Hibernate的啟動(dòng)的過(guò)程中,Configuration 類的實(shí)例首先定位映射文檔位置、讀取配置,然后創(chuàng)保定電力職業(yè)技術(shù)學(xué)院頂崗實(shí)習(xí)技術(shù)應(yīng)用(論文) 9 建 SessionFactory 對(duì)象。 接口 Transaction 接口 負(fù)責(zé)事務(wù)相關(guān)的操作。它是可選的,開(kāi)發(fā)人員也可以設(shè)計(jì)編寫(xiě)自己的底層事務(wù)處理代碼。 和 Criteria 接口 Query 和 Criteria 接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫(kù)查詢。它可以使用 HQL 語(yǔ)言或 SQL 語(yǔ)句兩種表達(dá)方式。 SSH 整合框架SSH 在 J2EE 項(xiàng)目中表示了 3 種框架。那么怎 樣將三者結(jié)合起來(lái)形成一個(gè)框架呢? 集成 SSH 框架集成 SSH 框架的系統(tǒng)從職責(zé)上分為四層:表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層和域模塊層。其中使用 Struts 作為系 統(tǒng)的整體基礎(chǔ)架構(gòu),負(fù)責(zé) MVC 的分離,在 Struts 框架的模型部分,利用 Hibernate 框架對(duì)持久層提供支持, 業(yè)務(wù)層用 Spring 支持。具體做法是:用面向?qū)ο蟮姆治龇椒ǜ鶕?jù)需求提出一些模型,將這些模型實(shí)現(xiàn)為基本的 Java 對(duì)象,然后編寫(xiě)基本的 DAO 接口,并 給出 Hibernate 的 DAO 實(shí)現(xiàn),采用 Hibernate 架構(gòu)實(shí)現(xiàn)的 DAO 類來(lái)實(shí)現(xiàn) Java 類與數(shù)據(jù)庫(kù)之間的轉(zhuǎn)換和訪問(wèn),最后由 Spring 完成業(yè)務(wù)邏輯。   系統(tǒng)的基本業(yè)務(wù)流程是: 在表示層中,首先通過(guò) JSP 頁(yè)面實(shí)現(xiàn)交互界面,負(fù)責(zé)傳送請(qǐng)求(Request)和接收響 應(yīng)(Response) ,然后 Struts 根據(jù)配置文件()將 ActionServlet 接收到的 Request 委派給相應(yīng)的 Action 處理。在業(yè)務(wù)層中,管理服務(wù)組件的 Spring IoC 容器負(fù)責(zé)向 Action 提供業(yè)務(wù)模型(Model)組件和該組件的協(xié)作對(duì)象數(shù)據(jù)處理(DAO) 組件完成 業(yè)務(wù)邏輯,并提供事 務(wù)處 理、緩沖池等容器組件以提升系統(tǒng)保定電力職業(yè)技術(shù)學(xué)院頂崗實(shí)習(xí)技術(shù)應(yīng)用(論文) 10 性能和保證數(shù)據(jù)的完整性。而在持久層中, 則依賴于 Hibernate 的對(duì)象化映射和數(shù)據(jù)庫(kù)交互,處理 DAO 組件請(qǐng) 求的數(shù)據(jù),并返回處理結(jié)果?! 〔捎蒙鲜鲩_(kāi)發(fā)模型,不僅實(shí)現(xiàn)了視圖、控制器與模型的徹底分離,而且 還實(shí)現(xiàn)了業(yè)務(wù)邏輯層與持久層的分離。這樣無(wú)論前端如何變化,模型層只需很少的改動(dòng),并且數(shù)據(jù)庫(kù)的變化也不會(huì)對(duì)前端有所影響,大大提高了系統(tǒng)的可復(fù)用性。而且由于不同層之間耦合度小,有利于團(tuán)隊(duì)成員并行工作,大大提高了開(kāi)發(fā)效率。4. 基于 SSH 框架的 Web 應(yīng)用系統(tǒng)的實(shí)現(xiàn)  下面將通過(guò)一個(gè)實(shí)際的系統(tǒng)來(lái)展示如何進(jìn)行基于 SSH 框架的 Web 應(yīng)用開(kāi)發(fā)。該系統(tǒng)是為某通信公司運(yùn)營(yíng)部開(kāi)發(fā)的一個(gè)問(wèn)答式系統(tǒng),功能類似于百度知道和新浪愛(ài)問(wèn)。由于系統(tǒng)的模塊較多,下面就以一個(gè)用戶管理模塊為例來(lái)說(shuō)明系統(tǒng)的開(kāi)發(fā)實(shí)現(xiàn)過(guò)程,并將按照數(shù)據(jù)持久層、業(yè)務(wù)邏輯層、表示層的順 序說(shuō)明系統(tǒng)構(gòu)建過(guò)程。 數(shù)據(jù)持久層  數(shù)據(jù)持久層由 Java 對(duì) 象持久化類和數(shù)據(jù)訪問(wèn)對(duì)象(DAO) 組成。每個(gè)數(shù)據(jù)庫(kù)表都對(duì)應(yīng)著一個(gè)持久化對(duì)象,這樣就給予了開(kāi)發(fā)者使用 OO 思想設(shè)計(jì)和開(kāi)發(fā)的便利,同時(shí)也屏蔽了具體的數(shù)據(jù)庫(kù)和具體的數(shù)據(jù)表、字段,消除了對(duì)數(shù)據(jù)庫(kù)操作的硬編碼在重用性上的弊端。用戶信息表的部分結(jié)構(gòu)如表 1 所   Hibernate 通過(guò)映射(Mapping)文件將對(duì)象(Object) 與關(guān)系型數(shù)據(jù)(Relational) 相關(guān)聯(lián),因此需要編寫(xiě)和數(shù)據(jù)庫(kù)表相對(duì)應(yīng)的 Java 持久化類以及 對(duì)應(yīng)的映射文件。有了 Java 持久化類后就可以在此基礎(chǔ)上實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)類。在 Spring 框架中,數(shù)據(jù)訪問(wèn)類可以從輔保定電力職業(yè)技術(shù)學(xué)院頂崗實(shí)習(xí)技術(shù)應(yīng)用(論文) 11 助類 HibernateDaoSupport 繼承, 這極大地方便了 Hibernate 框架在 Spring 中的使用,相應(yīng)的部分代碼如下: public class UserDao extends HibernateDaoSupport { public int add(User user) { return (().save(user).toString())。 } public List findAll() { return ().loadAll()。 } } 具體的 Hibernate 數(shù)據(jù)源、session 工廠、事 務(wù)管理、 緩沖連接池等功能都由業(yè)務(wù)層的Spring 容器提供?! ?業(yè)務(wù)邏輯層  業(yè)務(wù)邏輯層由 Spring 框架支持,提供了處理業(yè)務(wù)邏輯的服務(wù)組件。開(kāi)發(fā)者需要對(duì)業(yè)務(wù)對(duì)象建模,抽象出業(yè)務(wù)模型并封裝在 Model 組件中。由于數(shù)據(jù)持久層實(shí)現(xiàn)了 Java持久化類并且封裝了數(shù)據(jù)訪問(wèn)對(duì)象(DAO),因此可以在 Model 組件中方便地調(diào)用DAO 組件來(lái)存取數(shù)據(jù)。Spring 的 IoC 容器負(fù)責(zé)統(tǒng)一管理 Model 組件和 DAO 組件以及 Spring 所提供的事務(wù)處理、 緩沖連接池等服務(wù)組 件。  在用戶管理模塊中,通過(guò)業(yè)務(wù)建模創(chuàng)建了用戶模型 UserService 類,封裝了對(duì)用戶的權(quán)限管理以及積分管理等功能。UserService 類通過(guò)調(diào)用數(shù)據(jù)訪問(wèn)類 UserDao 實(shí)現(xiàn)對(duì)用戶數(shù)據(jù)的操作。這些組件的關(guān)系將通過(guò)配置 Spring 框架的 聯(lián)系起來(lái),配置文件的主要內(nèi)容如下: beans xmlns=xmlns:xsi=xmlns:context=xmlns:aop=保定電力職業(yè)技術(shù)學(xué)院頂崗實(shí)習(xí)技術(shù)應(yīng)用(論文) 12 xmlns:tx=xsi:schemaLocation= bean id=dataSourceclass= destroymethod=closeproperty name=driverClassNamevalue=/propertyproperty name=urlvalue=jdbc:/propertyproperty name=username value=root/propertyproperty name=password value=root/property/beanbean id=sessionFactoryclass=property name=dataSource ref=dataSource /property name=namingStrategy ref=namingStrategy /property name=annotatedClassesLocationslist! 行政區(qū)域?qū)嶓w類 value/value value/uniwin/model/*.class/value/list/propertyproperty name=excludedClassesRegexPatternslistvalue![CDATA[^[\w\.]+Test[\w]+$]]/value/list/propertyproperty name=hibernatePropertiespropsprop key=${}/propprop key=/propprop key=true/propprop key=${}/propprop key=${}/prop/props/property保定電力職業(yè)技術(shù)學(xué)院頂崗實(shí)習(xí)技術(shù)應(yīng)用(論文) 13 /beanbean id=namingStrategy class= //beans 表示層 表示層結(jié)合 JSP 和 Struts 的 TagLib 庫(kù)處理顯示功能,利用 ActionServlet 將請(qǐng)求(*.do)映射到相 應(yīng)的 Action,并由 Action 調(diào)用業(yè)務(wù)邏輯的服務(wù)組件,然后根據(jù)處理結(jié)果跳轉(zhuǎn)到 Forword 對(duì)象指定的響應(yīng)頁(yè)面。 業(yè)務(wù)流程的部署由 完成。下面以一個(gè)顯示所有用戶信息的請(qǐng)求()為例來(lái)說(shuō)明配置文件的使用。 基于 J2EE 的 Web 應(yīng)用以其層次性、平臺(tái)無(wú)關(guān)性的優(yōu)勢(shì)已經(jīng)逐漸成為了電子商務(wù)、電子政務(wù)主要的解決方案。本文針對(duì)傳統(tǒng)的 J2EE Web 應(yīng)用開(kāi)發(fā)的弊端,介紹了一種利用輕量級(jí)框架來(lái)快速搭建 Web 應(yīng)用的解決方案,并且通過(guò)其在實(shí)際項(xiàng)目中的應(yīng)用,證明了采用此方案可以幫助開(kāi)發(fā)人員在短時(shí)間內(nèi)建立結(jié)構(gòu)清晰、可重用性好、維護(hù)擴(kuò)展方便的 Web 應(yīng)用程序。 5 SSH 性能的優(yōu)化 Struts 優(yōu)化 logging 和開(kāi)發(fā)模式關(guān)閉 logging 和開(kāi)發(fā)模式(devMode), devMode 是在 中設(shè)置的, 關(guān)閉logging 需要修改 文件,加入以下參數(shù) 保定電力職業(yè)技術(shù)學(xué)院頂崗實(shí)習(xí)技術(shù)應(yīng)用(論文) 14 servletinitparamparamnamedebug/paramnameparamvalue0/paramvalue/initparaminitparamparamnamedetail/paramnameparamvalue0/paramvalue/initparam/servlet. 攔截器除非需要,否則不要使用攔截器(interceptor). 如果一個(gè) Action 不需要全棧的攔截器的話,就使用 basicStack 攔截器或移除不需要的攔截器。 正確設(shè)置頁(yè)面的 CacheControl 和 Expires 使用正確的 HTTP 頭(緩存控制和過(guò)期時(shí)間) 當(dāng)返回一個(gè) html 頁(yè)面的時(shí)候,要保 證 html 頁(yè)面包含正確的 header,使得瀏覽器可以知道怎樣緩存該 html 頁(yè)面。 . Ajax theme(Dojo)或者 Calendar 標(biāo)簽 struts2 提供的 Ajax theme(Dojo)或者 Calendar 標(biāo)簽 默認(rèn)情況下保存在 包里面, 把這些 js 文件或者 css 文件拷出來(lái)放到另外一個(gè)服務(wù)器上可以提高性能。 當(dāng)使用 AJAX theme(Dojo)或日歷 tag 時(shí),從 Struts2 的 jar 包復(fù)制靜態(tài)內(nèi)容到 服務(wù)器。 因?yàn)? 服務(wù)器會(huì)對(duì)這些靜態(tài)文件的請(qǐng)求進(jìn)行優(yōu)化. freemark 載入模板保定電力職業(yè)技術(shù)學(xué)院頂崗實(shí)習(xí)技術(shù)應(yīng)用(論文) 15 如果使用 freemarker 的話,在 WEBINF 下的 classes 文件夾下創(chuàng)建一個(gè) 并且加入template_update_delay=60000, 這個(gè)值是 freemarker 多久從硬盤(pán)重新載入模板,默認(rèn)情況下是 500ms, 因?yàn)闆](méi)有必要檢查是不是需要重新載入模板文件,所以最好把它設(shè)置為一個(gè)很大的數(shù)字。 模板緩存啟用 Freemarker 模板緩存, 這是 為 true, 默認(rèn)情況下這個(gè)是 false 的。. 模板路徑當(dāng)覆蓋一個(gè) theme 時(shí),copy 所有重要的模板到 theme 目錄 當(dāng) template 在當(dāng)前目 錄不能發(fā)現(xiàn)時(shí),會(huì)有性能開(kāi) 銷(xiāo) 。因 為在返回父模板前,struts2 必須在當(dāng)前目錄進(jìn)行 theme 檢查. 晚先時(shí)候,這個(gè)缺陷將要通過(guò)一個(gè) template 緩存解決。 . session在你需要的時(shí)候才創(chuàng)建 session 除非需要,Struts2 不會(huì)創(chuàng)建 sessions(比如,在你的攔截器 stack 中有 createSession 攔截器)。注意當(dāng)使用 SiteMesh 時(shí), 一個(gè) session 將總是被創(chuàng)建(看看 /?messageID=5688 的描述). 當(dāng)使用 FreeMarker 時(shí),盡量使用等價(jià)的 FreeMarker 元素,代替 JSP 的標(biāo)簽。 Freemarker 支持 list 迭代 , 顯示屬性,包含其他模版 , macro39。s FreeMarker 元素代替 struts2 的 tags 會(huì)有小的性能提升。 (例如:s:property value=foo/將要被 ${foo}代替).1 ,freemarker 升級(jí)為 保定電力職業(yè)技術(shù)學(xué)院頂崗實(shí)習(xí)技術(shù)應(yīng)用(論文)
點(diǎn)擊復(fù)制文檔內(nèi)容
化學(xué)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1