![JFinal框架应用与实践【苍松书苑】_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-3/12/84aee85c-1a24-4933-a865-39c50b63acb7/84aee85c-1a24-4933-a865-39c50b63acb71.gif)
![JFinal框架应用与实践【苍松书苑】_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-3/12/84aee85c-1a24-4933-a865-39c50b63acb7/84aee85c-1a24-4933-a865-39c50b63acb72.gif)
![JFinal框架应用与实践【苍松书苑】_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-3/12/84aee85c-1a24-4933-a865-39c50b63acb7/84aee85c-1a24-4933-a865-39c50b63acb73.gif)
![JFinal框架应用与实践【苍松书苑】_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-3/12/84aee85c-1a24-4933-a865-39c50b63acb7/84aee85c-1a24-4933-a865-39c50b63acb74.gif)
![JFinal框架应用与实践【苍松书苑】_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-3/12/84aee85c-1a24-4933-a865-39c50b63acb7/84aee85c-1a24-4933-a865-39c50b63acb75.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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(Constants me,
7、第二章 核心技术,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 (Handlers me,第二章
8、 核心技术,2.Controller,MVC模式中的控制器,第二章 核心技术,2.Controller,getPara 系列方法,第二章 核心技术,2.Controller,getModel与getBean系列方法,getModel 用来接收页面表单域传递过来的 model 对象,表单域名称以”modelName.attrName” 方式命名。 除了 getModel 以外, 还提供了一个 getBean 方法用于支持传统的 Java Bean,第二章 核心技术,第二章 核心技术,2.Controller,setAttr方法和session操作方法,第二章 核心技术,2.Controller,
9、Render系列方法,第二章 核心技术,3.ActiveRecord,用于操作数据,将极大减少代码量,第二章 核心技术,3.ActiveRecord,JFinal 独创 Db + Record 模式,第二章 核心技术,3.ActiveRecord,声明式事务,第二章 核心技术,3.ActiveRecord,Cache缓存机制,第二章 核心技术,3.ActiveRecord,复合主键,第二章 核心技术,3.ActiveRecord,多数据源支持,3.ActiveRecord,多数据源支持,第二章 核心技术,4.AOP,面向切面编程,第二章 核心技术,4.AOP,Interceptor-拦截方法
10、添加切面,第二章 核心技术,第二章 核心技术,4.AOP,Interceptor-invocation参数妙用,4.AOP,Before-拦截器的注解配置,第二章 核心技术,第二章 核心技术,4.AOP,Before-全局拦截器和inject拦截器,JFinal 还支持全局拦截器以及 Inject 拦截器。全局拦截器需要在 YourJFinalConfig 进行配置, 以下是配置示例,4.AOP,Clear-清除拦截器,第二章 核心技术,4.AOP,Clear-无参 有参清楚,第二章 核心技术,4.AOP,Interceptor 的触发,第二章 核心技术,JFinal 中的 AOP 被划分为控
11、制层 AOP 以及业务层 AOP,严格来说业务层 AOP 并非仅限于在业务层使用,因为 JFinal AOP 可以应用于其它任何地方,第三章 项目实战,第三章 项目实战,1.Eclipse/MyEclipse或者IntelliJIDEA 2.JFinal的jar包 3.JDK1.7+ 4.Jetty Server(JFinal自带的一个服务器,搭建前准备,工欲善其事,必先利其器,Eclipse下载地址/downloads JDK下载地址http:/ JFinal下载地址 http:/ 当前最新的版本为jfinal-2.2-all.aip,5、JFina
12、l配置 类创建,6、Web.xml 配置,7、项目分包,8、启动服务器 调试,1、Web项目 创建,2、JFinal版本 选择,3、导入依赖包,4、创建数据库,开发环境 搭建流程,第三章 项目实战,第三章 项目实战,Web项目创建,注意: Target runtime 一定 要选择,第三章 项目实战,第三章 项目实战,Jfinal版本选择,当前官方最新是2.2版本,第三章 项目实战,导入依赖jar包,轻量,快捷,可拓展,第三章 项目实战,第三章 项目实战,创建数据库,选择oracle数据库,第三章 项目实战,Jfinal配置类创建,第三章 项目实战,Web.xml配置,主要是配置Jfinal过
13、滤器,第三章 项目实战,项目分包,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, 把这里的输出改为your_project
14、/WebRoot/WEB-INF/classes。 二、java build path面板中的Libraries中有部分库导入异常,检查出来修复就行,常见问题,2、如果更改JFinal的web.xml 拦截后缀名,jfinal /* “/*”不能正确处理“.html”这种后缀的动态请求,新增一个HtmSkipHandler文件 public classHtmSkipHandlerextends Handler public void handle(String target, HttpServletRequest request, HttpServletResponse response, b
15、oolean 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 configConstant(Constants me) me.set
16、Error404View(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://jfinal?characterEncoding=utf8 (3)假设是页面发送 GET 请求,中文字符须要 encoding, 除非在 tomcat 的 server.xml 中的 Connector 标记中加入了 URIEncoding=UTF-8 属性,常见问题,4、Jfinal中文乱码问题-2,4)假设是 jsp 页面:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度城市供水排水工程承包合同书范本
- 2025年度国际食品饮料代理销售合同
- 2025年度公路施工质量检测合同范本
- 2019-2025年中国劳动保护服行业市场调研分析及投资战略咨询报告
- 2025年度建筑废弃物综合利用合同范本-@-2
- 2025年度合同终止重签协议:环境治理与污染修复合同
- 2025年陶瓷生产成套设备项目投资可行性研究分析报告
- 2025年度餐饮行业广告招商代理全面合作协议
- 2025年度家电产品进出口贸易合同-@-2
- 2025年度租赁车辆保险及保养服务合同
- 政府资金项目(荣誉)申报奖励办法
- JJF 1069-2012 法定计量检定机构考核规范(培训讲稿)
- 最新如何进行隔代教育专业知识讲座课件
- 当前警察职务犯罪的特征、原因及防范,司法制度论文
- 计算机文化基础单元设计-windows
- 创建动物保护家园-完整精讲版课件
- 广东省保安服务监管信息系统用户手册(操作手册)
- DNA 亲子鉴定手册 模板
- DB33T 1233-2021 基坑工程地下连续墙技术规程
- 天津 建设工程委托监理合同(示范文本)
- 部编一年级语文下册教材分析
评论
0/150
提交评论