JFinal框架應(yīng)用與實(shí)踐.ppt_第1頁
JFinal框架應(yīng)用與實(shí)踐.ppt_第2頁
JFinal框架應(yīng)用與實(shí)踐.ppt_第3頁
JFinal框架應(yīng)用與實(shí)踐.ppt_第4頁
JFinal框架應(yīng)用與實(shí)踐.ppt_第5頁
已閱讀5頁,還剩60頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、JFinal框架應(yīng)用與實(shí)踐,目錄頁,第二章 核心技術(shù) (架構(gòu)、原理),第三章 項(xiàng)目實(shí)戰(zhàn),第一章 認(rèn)識JFinal,第四章 常見問題,第一章 認(rèn)識JFinal,What is JFinal?,第一章 認(rèn)識JFinal,JFinal是基于Java 語言的極速 web 開發(fā)框架,其核心設(shè)計(jì)目標(biāo)是開發(fā)迅速、代碼量少、學(xué)習(xí)簡單、功能強(qiáng)大、輕量級、易擴(kuò)展、Restful。在擁有Java語言所有優(yōu)勢的同時(shí)再擁有ruby、Python、PHP等動態(tài)語言的開發(fā)效率。(為您節(jié)省更多的時(shí)間去陪戀人、家人和朋友o()o),JFinal特點(diǎn)(一),第一章 認(rèn)識JFinal,大道至簡,微內(nèi)核全方位擴(kuò)展架構(gòu),JFinal特

2、點(diǎn)(二),第一章 認(rèn)識JFinal,第一章 認(rèn)識JFinal,1,2,3,4,什么樣的人適合這門課程,第一章 認(rèn)識JFinal,JFinal能做什么類型的項(xiàng)目,WEB項(xiàng)目 - 使用jsp+servlet都能開發(fā),更何況. - 對Servlet的極薄封裝,理論上來說Servet能做到的就可以做到 JFinal ORM 部分可以單獨(dú)拿出來用于非web項(xiàng)目 移動設(shè)備項(xiàng)目 - JFinal ActiveRecordPlugin用于android的sqlite 綜上所述,JFinal最擅長的應(yīng)用場景是Web項(xiàng)目,Web之外ActiveRecord應(yīng)用最為常見,開發(fā)什么項(xiàng)目不僅框架選型決定,還涉及到個(gè)人對

3、項(xiàng)目和技術(shù)的駕馭能力,更簡潔,更輕松,更極速,開發(fā)項(xiàng)目重在業(yè)務(wù)邏輯,框架只是提供工具而已 做同一個(gè)類型的項(xiàng)目,不同技術(shù)系的開發(fā)者只會選擇自己熟悉的框架而已,第一章 認(rèn)識JFinal,第一章 認(rèn)識JFinal,學(xué)會了Jfinal,我們能做什么?,第二章 核心技術(shù),第二章 核心技術(shù),第二章 核心技術(shù),邏輯架構(gòu),運(yùn)作原理 1.首先是客戶端點(diǎn)擊新增按鈕,提交一個(gè)新增請求,請求中會帶上服務(wù)端處理地址url 2.所有請求都會被JFinalFilter攔截,然后調(diào)用Handler進(jìn)行詳細(xì)處理 3.Handler是一個(gè)鏈條形式的調(diào)用,包括0-n個(gè)自定義Handler,以及最后一個(gè)ActionHandler,依

4、次執(zhí)行,當(dāng)然可以自定義跳出。 4.進(jìn)入ActionHandler后,首先會根據(jù)請求的target從緩存的ActionMapping中映射獲取到具體操作對應(yīng)的Action對象,這個(gè)對象里面封裝了方法名、方法上面的攔截器,方法所在的Controller,controller上面的攔截器等。然后根據(jù)Action以及Controller實(shí)例構(gòu)造出ActionInvocation。 5.接下來通過ActionInvocation的invoke進(jìn)行具體處理,這是一個(gè)明顯的Command模式的實(shí)現(xiàn)。首先是攔截器的調(diào)用,攔截器調(diào)用中會重新回調(diào)ActionInvocation的invoke,當(dāng)攔截器調(diào)用完畢后,

5、會調(diào)用當(dāng)前操作的method 6.當(dāng)進(jìn)入具體controller的新增方法時(shí),調(diào)用基類的getModel(Systemparam.class);這個(gè)方法會從request中解析出所需要的數(shù)據(jù),通過反射設(shè)置給具體的Model實(shí)體類,最終通過ActiveRecord來進(jìn)行數(shù)據(jù)存儲 7.最后是頁面渲染rerender,第二章 核心技術(shù),Aop:攔截器 Config:通用配置 Core:核心處理,主要是Controller的調(diào)度 Ext:擴(kuò)展包 Handler:全局處理器 I18N:國際化 Json:json數(shù)據(jù)的一些常用操作 kit:一些工具類 Log:日志類 Plugin:插件處理 Render:

6、渲染處理,比如對于FreeMark的支持 Server:服務(wù)器 Token:令牌 Upload:文件上傳處理 Validate:驗(yàn)證處理,主要是數(shù)據(jù)持久化時(shí)的驗(yàn)證,第二章 核心技術(shù),包簡介,第二章 核心技術(shù),關(guān)注關(guān)鍵的核心類,JFinalConfig Controller ActiveRecord AOP EhCachePlugin Validator,Jfinal體積雖小,但“麻雀雖小五臟俱全”,而且功能體系還是很龐大的,第二章 核心技術(shù),1.JFinalConfig,用于對整個(gè)web項(xiàng)目的整體配置,第二章 核心技術(shù),1.JFinalConfig,configConstant(Constan

7、ts me),第二章 核心技術(shù),1.JFinalConfig,configRoute(Routes me),第二章 核心技術(shù),1.JFinalConfig,configRoute(Routes me),第二章 核心技術(shù),1.JFinalConfig,configRoute(Routes me),第二章 核心技術(shù),1.JFinalConfig,configPlugin (Plugins me),第二章 核心技術(shù),1.JFinalConfig,configInterceptor (Interceptors me),第二章 核心技術(shù),1.JFinalConfig,configHandler (Han

8、dlers me),第二章 核心技術(shù),2.Controller,MVC模式中的控制器,第二章 核心技術(shù),2.Controller,getPara 系列方法,第二章 核心技術(shù),2.Controller,getModel與getBean系列方法,getModel 用來接收頁面表單域傳遞過來的 model 對象,表單域名稱以”modelName.attrName” 方式命名。 除了 getModel 以外, 還提供了一個(gè) getBean 方法用于支持傳統(tǒng)的 Java Bean。,第二章 核心技術(shù),第二章 核心技術(shù),2.Controller,setAttr方法和session操作方法,第二章 核心技術(shù)

9、,2.Controller,Render系列方法,第二章 核心技術(shù),3.ActiveRecord,用于操作數(shù)據(jù),將極大減少代碼量,第二章 核心技術(shù),3.ActiveRecord,JFinal 獨(dú)創(chuàng) Db + Record 模式,第二章 核心技術(shù),3.ActiveRecord,聲明式事務(wù),第二章 核心技術(shù),3.ActiveRecord,Cache緩存機(jī)制,第二章 核心技術(shù),3.ActiveRecord,復(fù)合主鍵,第二章 核心技術(shù),3.ActiveRecord,多數(shù)據(jù)源支持,3.ActiveRecord,多數(shù)據(jù)源支持,第二章 核心技術(shù),4.AOP,面向切面編程,第二章 核心技術(shù),4.AOP,Int

10、erceptor-攔截方法 添加切面,第二章 核心技術(shù),第二章 核心技術(shù),4.AOP,Interceptor-invocation參數(shù)妙用,4.AOP,Before-攔截器的注解配置,第二章 核心技術(shù),第二章 核心技術(shù),4.AOP,Before-全局?jǐn)r截器和inject攔截器,JFinal 還支持全局?jǐn)r截器以及 Inject 攔截器。全局?jǐn)r截器需要在 YourJFinalConfig 進(jìn)行配置, 以下是配置示例:,4.AOP,Clear-清除攔截器,第二章 核心技術(shù),4.AOP,Clear-無參 有參清楚,第二章 核心技術(shù),4.AOP,Interceptor 的觸發(fā),第二章 核心技術(shù),JFin

11、al 中的 AOP 被劃分為控制層 AOP 以及業(yè)務(wù)層 AOP,嚴(yán)格來說業(yè)務(wù)層 AOP 并非僅限于在業(yè)務(wù)層使用,因?yàn)?JFinal AOP 可以應(yīng)用于其它任何地方。,第三章 項(xiàng)目實(shí)戰(zhàn),第三章 項(xiàng)目實(shí)戰(zhàn),1.Eclipse/MyEclipse或者IntelliJIDEA 2.JFinal的jar包 3.JDK1.7+ 4.Jetty Server(JFinal自帶的一個(gè)服務(wù)器),搭建前準(zhǔn)備,工欲善其事,必先利其器,Eclipse下載地址/downloads JDK下載地址 JFinal下載地址 當(dāng)前最新的版本為jfinal-2.2-all.aip,5、J

12、Final配置 類創(chuàng)建,6、Web.xml 配置,7、項(xiàng)目分包,8、啟動服務(wù)器 調(diào)試,1、Web項(xiàng)目 創(chuàng)建,2、JFinal版本 選擇,3、導(dǎo)入依賴包,4、創(chuàng)建數(shù)據(jù)庫,開發(fā)環(huán)境 搭建流程,第三章 項(xiàng)目實(shí)戰(zhàn),第三章 項(xiàng)目實(shí)戰(zhàn),Web項(xiàng)目創(chuàng)建,注意: Target runtime 一定 要選擇,第三章 項(xiàng)目實(shí)戰(zhàn),第三章 項(xiàng)目實(shí)戰(zhàn),Jfinal版本選擇,當(dāng)前官方最新是2.2版本,第三章 項(xiàng)目實(shí)戰(zhàn),導(dǎo)入依賴jar包,輕量,快捷,可拓展,第三章 項(xiàng)目實(shí)戰(zhàn),第三章 項(xiàng)目實(shí)戰(zhàn),創(chuàng)建數(shù)據(jù)庫,選擇oracle數(shù)據(jù)庫,第三章 項(xiàng)目實(shí)戰(zhàn),Jfinal配置類創(chuàng)建,第三章 項(xiàng)目實(shí)戰(zhàn),Web.xml配置,主要是配置Jfi

13、nal過濾器,第三章 項(xiàng)目實(shí)戰(zhàn),項(xiàng)目分包,Jfinal MVC架構(gòu):跟普遍的mvc架構(gòu)一樣,第三章 項(xiàng)目實(shí)戰(zhàn),啟動服務(wù)調(diào)試,jetty-server-8.1.8.jar拷入。 直接RunAs啟動即可:看看Jfinal的環(huán)境是否搭建成功:以下是成功的范例,第三章 項(xiàng)目實(shí)戰(zhàn),項(xiàng)目實(shí)操,預(yù)估耗時(shí)1525分鐘,第四章 常見問題,常見問題,1、Can not create instance of class: demo.DemoConfig,一、應(yīng)該是你的路徑有問題, 打開你項(xiàng)目的java build path面板, 然后找到default output folder, 把這里的輸出改為your_pro

14、ject/WebRoot/WEB-INF/classes。 二、java build path面板中的Libraries中有部分庫導(dǎo)入異常,檢查出來修復(fù)就行。,常見問題,2、如果更改JFinal的web.xml 攔截后綴名, jfinal /* “/*”不能正確處理“.html”這種后綴的動態(tài)請求。,新增一個(gè)HtmSkipHandler文件 public classHtmSkipHandlerextends Handler public void handle(String target, HttpServletRequest request, HttpServletResponse resp

15、onse, boolean isHandled) int index = target.lastIndexOf(.htm); if (index != -1) target = target.substring(0, index); nextHandler.handle(target, request, response, isHandled); 在JfinalConfig文件中的configHandler新增me.add(new HtmSkipHandler();,常見問題,3、JFinal設(shè)置404和500等頁面,public void configConstant(Constants m

16、e) me.setError404View(TEMPLATE_PATH+/error/404.html); me.setError500View(TEMPLATE_PATH+/error/500.html); ,常見問題,4、Jfinal中文亂碼問題-1,(1)Config配置: YourJFinalConfig.configConstant(Constants me) me.setEncoding(utf-8); (2)數(shù)據(jù)庫連接配置: jdbcUrl = jdbc:mysql://jfinal?characterEncoding=utf8 (3)假設(shè)是頁面發(fā)送 GET 請求,中文字符須要 encoding, 除非在 tomcat 的 server.xml 中的 Connector 標(biāo)記中加入了 URIEncoding=UTF-8 屬性,常見問題,4、Jfinal中文亂碼問題-2,(4)假設(shè)是 jsp 頁面: (

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論