首页 > Web开发 > 详细

JFinal 源码解析-MVC部分

时间:2019-04-19 19:10:11      阅读:162      评论:0      收藏:0      [点我收藏+]

首先从请求入口看起,应用初始化时加载web.xml的JFinalFilter,和configClass
技术分享图片

从这段配置可以看出jfinal和spring mvc入口类似,通过一个实现Servlet Filter的过滤器来拦截所有请求。

接下来看看JFinalFilter的源码,可以看出首次请求触发Filter的初始化动作时,通过init方法加载了应用上下文路径、插件、编码、路由配置:
技术分享图片

接下来就是请求的处理:
技术分享图片

handler用了责任链模式,将Global添加的handler放在前面,ActionHandler在最后:

技术分享图片

技术分享图片

技术分享图片

技术分享图片

在JFInalFilter的doFilter方法中,对handler.handle的调用会逐步走完这条责任链,ActionHandler最后执行,继续看看ActionHandler的代码:

技术分享图片

到这里已经按uri拿到了Action进而拿到Controller,执行完url对应的controller方法,根据render结果决定页面跳转还是json渲染,此处render策略靠策略模式实现。

技术分享图片

当应用停止时,执行destory方法,通知jvm可以回收handler,停止插件,执行afterStopJfinal方法,生命周期结束了

JFinal 源码解析-MVC部分

原文:https://www.cnblogs.com/powerjiajun/p/10737623.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!