jfinal框架应用与实践

上传人:第*** 文档编号:61592200 上传时间:2018-12-05 格式:PPT 页数:65 大小:6.42MB
返回 下载 相关 举报
jfinal框架应用与实践_第1页
第1页 / 共65页
jfinal框架应用与实践_第2页
第2页 / 共65页
jfinal框架应用与实践_第3页
第3页 / 共65页
jfinal框架应用与实践_第4页
第4页 / 共65页
jfinal框架应用与实践_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《jfinal框架应用与实践》由会员分享,可在线阅读,更多相关《jfinal框架应用与实践(65页珍藏版)》请在金锄头文库上搜索。

1、JFinal框架应用与实践,目录页,第二章 核心技术 (架构、原理),第三章 项目实战,第一章 认识JFinal,第四章 常见问题,第一章 认识JFinal,What is JFinal?,第一章 认识JFinal,JFinal是基于Java 语言的极速 web 开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、Python、PHP等动态语言的开发效率。(为您节省更多的时间去陪恋人、家人和朋友o()o),JFinal特点(一),第一章 认识JFinal,大道至简,微内核全方位扩展架构,JFinal特

2、点(二),第一章 认识JFinal,第一章 认识JFinal,1,2,3,4,什么样的人适合这门课程,第一章 认识JFinal,JFinal能做什么类型的项目,WEB项目 - 使用jsp+servlet都能开发,更何况. - 对Servlet的极薄封装,理论上来说Servet能做到的就可以做到 JFinal ORM 部分可以单独拿出来用于非web项目 移动设备项目 - JFinal ActiveRecordPlugin用于android的sqlite 综上所述,JFinal最擅长的应用场景是Web项目,Web之外ActiveRecord应用最为常见,开发什么项目不仅框架选型决定,还涉及到个人对

3、项目和技术的驾驭能力,更简洁,更轻松,更极速,开发项目重在业务逻辑,框架只是提供工具而已 做同一个类型的项目,不同技术系的开发者只会选择自己熟悉的框架而已,第一章 认识JFinal,第一章 认识JFinal,学会了Jfinal,我们能做什么?,第二章 核心技术,第二章 核心技术,第二章 核心技术,逻辑架构,运作原理 1.首先是客户端点击新增按钮,提交一个新增请求,请求中会带上服务端处理地址url 2.所有请求都会被JFinalFilter拦截,然后调用Handler进行详细处理 3.Handler是一个链条形式的调用,包括0-n个自定义Handler,以及最后一个ActionHandler,依

4、次执行,当然可以自定义跳出。 4.进入ActionHandler后,首先会根据请求的target从缓存的ActionMapping中映射获取到具体操作对应的Action对象,这个对象里面封装了方法名、方法上面的拦截器,方法所在的Controller,controller上面的拦截器等。然后根据Action以及Controller实例构造出ActionInvocation。 5.接下来通过ActionInvocation的invoke进行具体处理,这是一个明显的Command模式的实现。首先是拦截器的调用,拦截器调用中会重新回调ActionInvocation的invoke,当拦截器调用完毕后,

5、会调用当前操作的method 6.当进入具体controller的新增方法时,调用基类的getModel(Systemparam.class);这个方法会从request中解析出所需要的数据,通过反射设置给具体的Model实体类,最终通过ActiveRecord来进行数据存储 7.最后是页面渲染rerender,第二章 核心技术,Aop:拦截器 Config:通用配置 Core:核心处理,主要是Controller的调度 Ext:扩展包 Handler:全局处理器 I18N:国际化 Json:json数据的一些常用操作 kit:一些工具类 Log:日志类 Plugin:插件处理 Render:

6、渲染处理,比如对于FreeMark的支持 Server:服务器 Token:令牌 Upload:文件上传处理 Validate:验证处理,主要是数据持久化时的验证,第二章 核心技术,包简介,第二章 核心技术,关注关键的核心类,JFinalConfig Controller ActiveRecord AOP EhCachePlugin Validator,Jfinal体积虽小,但“麻雀虽小五脏俱全”,而且功能体系还是很庞大的,第二章 核心技术,1.JFinalConfig,用于对整个web项目的整体配置,第二章 核心技术,1.JFinalConfig,configConstant(Constan

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

8、dlers me),第二章 核心技术,2.Controller,MVC模式中的控制器,第二章 核心技术,2.Controller,getPara 系列方法,第二章 核心技术,2.Controller,getModel与getBean系列方法,getModel 用来接收页面表单域传递过来的 model 对象,表单域名称以”modelName.attrName” 方式命名。 除了 getModel 以外, 还提供了一个 getBean 方法用于支持传统的 Java Bean。,第二章 核心技术,第二章 核心技术,2.Controller,setAttr方法和session操作方法,第二章 核心技术

9、,2.Controller,Render系列方法,第二章 核心技术,3.ActiveRecord,用于操作数据,将极大减少代码量,第二章 核心技术,3.ActiveRecord,JFinal 独创 Db + Record 模式,第二章 核心技术,3.ActiveRecord,声明式事务,第二章 核心技术,3.ActiveRecord,Cache缓存机制,第二章 核心技术,3.ActiveRecord,复合主键,第二章 核心技术,3.ActiveRecord,多数据源支持,3.ActiveRecord,多数据源支持,第二章 核心技术,4.AOP,面向切面编程,第二章 核心技术,4.AOP,Int

10、erceptor-拦截方法 添加切面,第二章 核心技术,第二章 核心技术,4.AOP,Interceptor-invocation参数妙用,4.AOP,Before-拦截器的注解配置,第二章 核心技术,第二章 核心技术,4.AOP,Before-全局拦截器和inject拦截器,JFinal 还支持全局拦截器以及 Inject 拦截器。全局拦截器需要在 YourJFinalConfig 进行配置, 以下是配置示例:,4.AOP,Clear-清除拦截器,第二章 核心技术,4.AOP,Clear-无参 有参清楚,第二章 核心技术,4.AOP,Interceptor 的触发,第二章 核心技术,JFin

11、al 中的 AOP 被划分为控制层 AOP 以及业务层 AOP,严格来说业务层 AOP 并非仅限于在业务层使用,因为 JFinal AOP 可以应用于其它任何地方。,第三章 项目实战,第三章 项目实战,1.Eclipse/MyEclipse或者IntelliJIDEA 2.JFinal的jar包 3.JDK1.7+ 4.Jetty Server(JFinal自带的一个服务器),搭建前准备,工欲善其事,必先利其器,Eclipse下载地址http:/www.eclipse.org/downloads JDK下载地址http:/ JFinal下载地址 http:/ 当前最新的版本为jfinal-2.

12、2-all.aip,5、JFinal配置 类创建,6、Web.xml 配置,7、项目分包,8、启动服务器 调试,1、Web项目 创建,2、JFinal版本 选择,3、导入依赖包,4、创建数据库,开发环境 搭建流程,第三章 项目实战,第三章 项目实战,Web项目创建,注意: Target runtime 一定 要选择,第三章 项目实战,第三章 项目实战,Jfinal版本选择,当前官方最新是2.2版本,第三章 项目实战,导入依赖jar包,轻量,快捷,可拓展,第三章 项目实战,第三章 项目实战,创建数据库,选择oracle数据库,第三章 项目实战,Jfinal配置类创建,第三章 项目实战,Web.x

13、ml配置,主要是配置Jfinal过滤器,第三章 项目实战,项目分包,Jfinal MVC架构:跟普遍的mvc架构一样,第三章 项目实战,启动服务调试,jetty-server-8.1.8.jar拷入。 直接RunAs启动即可:看看Jfinal的环境是否搭建成功:以下是成功的范例,第三章 项目实战,项目实操,预估耗时1525分钟,第四章 常见问题,常见问题,1、Can not create instance of class: demo.DemoConfig,一、应该是你的路径有问题, 打开你项目的java build path面板, 然后找到default output folder, 把这里

14、的输出改为your_project/WebRoot/WEB-INF/classes。 二、java build path面板中的Libraries中有部分库导入异常,检查出来修复就行。,常见问题,2、如果更改JFinal的web.xml 拦截后缀名, jfinal /* “/*”不能正确处理“.html”这种后缀的动态请求。,新增一个HtmSkipHandler文件 public class HtmSkipHandler extends Handler public void handle(String target, HttpServletRequest request, HttpServl

15、etResponse response, 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设置404和500等页面,public void configCon

16、stant(Constants me) 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)数据库连接配置: jdbcUrl = jdbc:mysql:/127.0.0.1/jfinal?characterEncoding=utf8 (3)假设是页面发送 GET 请求,中文字符须要 encoding, 除非在 tomcat 的 server.xml 中的 Connector 标记中加

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号