WEB开发技术框架利器之一 -- JFinal使用笔记

  1. 介绍

JFinal是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。 在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率!

JFinal采用微内核全方位扩展架构,全方位是指其扩展方式在空间上的表现形式。JFinal由Handler、Interceptor、Controller、Render、Plugin五大部分组成。

JFinal架构十分简单,顶层是一个责任链模式变种,ActionHandler 内部结构也十分简单,是一个Command模式变种。

  1. 优势

1、MVC架构,设计精巧,使用简单

2、遵循COC原则,零配置,无xml

3、独创Db + Record模式,灵活便利

4、ActiveRecord支持,使数据库开发极致快速

5、自动加载修改后的java文件,开发过程中无需重启web server

6、AOP支持,拦截器配置灵活,功能强大

7、Plugin体系结构,扩展性强

8、多视图支持,支持FreeMarker、JSP、Velocity

9、强大的Validator后端校验功能

10、功能齐全,拥有struts2的绝大部分功能

  1. 流程

从一次新增操作请求来看:

1. 首先是客户端点击新增按钮,提交一个新增请求,请求中会带上服务端处理地址url 2. 所有请求都会被JFinalFilter拦截,然后调用Handler进行详细处理

3.Handler是一个链条形式的调用,包括0-n个自定义Handler,以及最后一个

ActionHandler,依次执行,当然可以自定义跳出。

4. 进入ActionHandler后,首先会根据请求的target从缓存的ActionMapping中映射获取

到具体操作对应的Action对象,这个对象里面封装了方法名、方法上面的拦截器,方法所在的Controller,controller上面的拦截器等。然后根据Action以及Controller实例构造出ActionInvocation。

5. 接下来通过ActionInvocation的invoke进行具体处理,这是一个明显的Command模式

的实现。首先是拦截器的调用,拦截器调用中会重新回调ActionInvocation的invoke,当拦截器调用完毕后,会调用当前操作的method

6. 当进入具体controller的新增方法时,调用基类的getModel(Systemparam.class);这个

方法会从request中解析出所需要的数据,通过反射设置给具体的Model实体类,最终

通过ActiveRecord来进行数据存储 7. 最后是页面渲染rerender

  1. 开发配置过程
  1. 配置web.xml拦截器
<filter>
<filter-name>jfinal</filter-name>
<filter-class>com.jfinal.core.JFinalFilter</filter-class>
<init-param>
<param-name>configClass</param-name>
<param-value>com.tener.web.WebConfig</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>jfinal</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

2.实现configure配置方法(com.tener.web.WebConfig)

package com.tener.web;
import com.jfinal.config.Constants;
import com.jfinal.config.Handlers;
import com.jfinal.config.Interceptors;
import com.jfinal.config.JFinalConfig;
import com.jfinal.config.Plugins;
import com.jfinal.config.Routes;
import com.tener.web.service.HelloController;
public class WebConfig extends JFinalConfig {
 @Override
 public void configConstant(Constants arg0) {
  arg0.setDevMode(true);
  
 }
 @Override
 public void configHandler(Handlers arg0) {
  
 }
 @Override
 public void configInterceptor(Interceptors arg0) {
  
 }
 @Override
 public void configPlugin(Plugins arg0) {
  
 }
 @Override
 public void configRoute(Routes arg0) {
  arg0.add("/hello", HelloController.class);
 }
}

实现在routes中注册的controller(HelloController)

package com.tener.web.service;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.jfinal.core.Controller;
public class HelloController extends Controller {
 public void index(){
  renderText("Hello " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
 }
}

至此,JFinal的介绍以及简单配置开发。

以上记录描述难免出现错误措辞,望各位勘正,谢谢。

时间: 2024-10-29 19:05:34

WEB开发技术框架利器之一 -- JFinal使用笔记的相关文章

WEB开发技术框架利器之一 -- Beetl使用笔记

A.介绍 Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好. B.优势 对于web应用来说,必须通过controller才能渲染模板,beetl也可以写完模板后,在未完成controller情况下,直接渲染模板此方法既可以作为通常的全栈式开发人员使用,也可以用于前端人员单独开发模板用. Beetl容易与其他技术框架完成集成配置,默认提供了WebRender用于帮助web集成开发,所有内置的集成均基于此方法.

WEB开发技术框架利器之一 -- Spring MVC

A.介绍: Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的. Spring Web MVC也是服务到工作者模式的实现,但进行可优化.前端控制器是DispatcherServlet:应用控制器其实拆为处理器映射器(Handler Mapping)进行处理

Web开发技术发展历史

Web开发技术发展历史 来自:天码营 原文:http://www.tianmaying.com/tutorial/web-history Web的诞生 提到Web,不得不提一个词就是"互联网".Web是World Wide Web的简称,中文译为万维网."万维网"和我们经常说的"互联网"是两个联系极其紧密但却不尽相同的概念.今天"互联网"三个字已经承载了太多的内涵,提到互联网,我们通常想到的一种战略思维,或者是一种颠覆传统的商

Web开发与设计之Google兵器谱-Web开发与设计利器

Web开发与设计之Google兵器谱-Web开发与设计利器 博客分类: Java综合 WebGoogleAjaxChromeGWT 笔者是个Java爱好者也是用Java进行web开发的工作者.平时笔者最喜欢的浏览器就是Firefox,因为它能带个笔者很多IE所不具备的优秀调试功能,说心里话笔者一直觉得MS貌似很不重视浏览器.无论功能还是性能,IE在笔者心里基本都是垃圾...今天偶然看到一篇介绍利用Google提供的免费用具进行Web开发与设计的文章,十分经典摘过来和大家分享下: Google 的

转Web开发的发展史---Web开发技术的演变

转自:http://blog.csdn.net/zzzkk2009/article/details/9849431 在接下来的几个月时间里,我打算写一系列关于完整web开发的文章.这第一篇文章虽然有所粗略,但也能够充分概括了在之前15年或者更久的时间里web应用程序如何进行演变.并且最后我会囊括下这段时间内所写的相关技术. 在过去的美好日子里,我们使用的是简单的web页面(包括动态gif图片!).作为精美设计的典范,苹果有着这样的一个网站: 在那时,Web开发还比较简单,开发者经常会去操作web

谷歌 Web 开发技术变迁史与踩坑史

文章的作者 CJ 是 Google 八年的资深工程师,现回国创办了在线协作文档「一起写」,这篇文章也是他与 geek 范的同事们在「一起写」协作完成的.点击 NEXT 产品集「Google 开源项目」,完整查看文中提到的技术与开源项目. 过去十几年来, Web 开发技术从最初的纯 HTML 到 CGI.PHP / JSP / ASP.Ajax.Rails.Node.js,已经发展到了一个非常成熟的阶段.去年的 Google I/O,谷歌开发者中心推出了关于 Web 开发的最佳实践手册:而今年的

《Tomcat与Java Web开发技术详解》思维导图

越想构建上层建筑,就越觉得底层基础很重要.补课系列. 书是良心书,就是太基础了,正适合补课. [纯文字版] Tomcat与Java Web开发技术详解 Servlet Servlet的生命周期 初始化 1Servlet容器加载Servlet类 2Servlet容器创建ServletConfig,初始化配置信息 3Servlet容器创建Servlet对象 4Servlet容器调用Servlet对象的init(ServletConfig) 时机:首次被请求或配置了<load-on-startup>

原创简化Web开发的框架 - JSPTagEx

在博客蛰伏了一年多,该写点东西了:) JSPTagEx的初衷在于简化Web开发,利用maven管理,极少的第三方依赖,代码量也极少,首先让我们花一点时间了解一下它在简化Web开发方面的表现. 如果您对框架感兴趣,欢迎加入Q-Q群讨论:431040030(Q-Q群号,请注明:Java等备注),该框架将再完善下准备开源,欢迎给我们提需求和意见,一经采纳,分享源码:) Maven ArcheType 默认提供最常用的Java Maven ArcheType,根据不同业务场景,拉取原型项目,如J2EE应

2019年web前端开发技术框架有哪些

2019年八大Web开发趋势,如果你想要学习web前端技术,想要走web前端之路,那就从学好web前端,了解web前端开始吧! 对于知道web前端的人都知道,随着互联网的兴起,web前端框架层出不穷,H5开发模式也越来越流行,应之而来的就是web大前端时代.为了让更多的人了解web前端技术,我们特意分享了一些web技术,一起来看看吧! 每一年各种前端技术也应运而生,快速掌握最新的前端技术也是每一个开发者不可或缺的一门技能.如今也是新的一年的到来,去年,也就是2018年,大家也都知道,很多前端技术