文档章节

JFinal教程JfinalUIB 代码笔记 (2)--- jfinal中视图耗时计算

littleant
 littleant
发布于 2014/06/11 17:23
字数 266
阅读 2311
收藏 4

 重写Render和RenderFactory类,这里是Beetl的实现方式,如果是JSP,也是同样的方式继承JspRender和JspRenderFactory即可

/**
 * 继承BeetlRender,实现视图耗时的计算
 * @author 董华健
 */
public class MyBeetlRender extends BeetlRender {
 private static final long serialVersionUID = 508975754500775679L;
 private static Logger log = Logger.getLogger(MyBeetlRender.class);
 
 public static final String renderTimeKey = "renderTime";
 
 public MyBeetlRender(GroupTemplate gt, String view) {
  super(gt, view);
 }
 public void render() {
  log.debug("MyBeetlRender render start");
  long start = System.currentTimeMillis();
  super.render();
  long end = System.currentTimeMillis();
  long renderTime = end - start;
  request.setAttribute(MyBeetlRender.renderTimeKey, renderTime);
  log.debug("MyBeetlRender render end");
 }
}
/**
 * 继承BeetlRenderFactory,调用MyBeetlRender,实现视图耗时计算
 * @author 董华健
 */
public class MyBeetlRenderFactory extends BeetlRenderFactory {
 
 private static Logger log = Logger.getLogger(MyBeetlRenderFactory.class);
 public Render getRender(String view) {
  log.debug("MyBeetlRenderFactory start");
  BeetlRender render = new MyBeetlRender(groupTemplate, view);
  log.debug("MyBeetlRenderFactory end");
  return render;
 }
 public String getViewExtension() {
  return ".html";
 }
}

 在JFinalConfig中配置,在configConstant方法中加入

 me.setMainRenderFactory(new MyBeetlRenderFactory());

获取视图耗时,这个代码应该在

Interceptor的ai.invoke();之后

或者 

Handler中的nextHandler.handle(target, request, response, isHandled);之后

// 视图耗时
  long renderTime = 0;
  if(null != request.getAttribute(MyBeetlRender.renderTimeKey)){
   renderTime = (long) request.getAttribute(MyBeetlRender.renderTimeKey);
  }

© 著作权归作者所有

共有 人打赏支持
littleant

littleant

粉丝 274
博文 13
码字总数 10514
作品 1
武汉
高级程序员
加载中

评论(2)

littleant
littleant

引用来自“zonghua”的评论

private static Logger log = Logger.getLogger(MyBeetlRender.class);
logger一般都要这样子用吗?不能在父类调用?
恩,每个类log对象都是独立的,在做日志按包过滤的时候跟这个应该是有关联的
啦啦啦拉拉
啦啦啦拉拉
private static Logger log = Logger.getLogger(MyBeetlRender.class);
logger一般都要这样子用吗?不能在父类调用?
基于JFinal实现的权限管理系统 JFinalUIB

项目用到了众多的开源组件,还有一些是网络分享的学习示例代码片段,感谢他们!!! JFinal高级学习交流QQ群:309647612 代码库地址:http://git.oschina.net/dongcb678/JfinalUIB.git 项目背景...

littleant
2014/06/03
0
35
JFina教程JfinalUIB 代码笔记 (3)--- jfinal Controller参数封装

通常我们使用jfinal开发都会写自己的BaseController来做一些公共全局变量的声明,或者用来实现一些公共方法,JfinalUIB也不例外。 参数的封装主要是在ParamPkgInterceptor类中实现,采用的是...

littleant
2014/06/12
0
5
最近在做的一件事件编写JFinal教程《Jfinal极速开发实战》

从8月1号开始,整整一个月,初稿完成,朋友帮我第一次文字校对完成,现在正在根据波总的意见修改一些jfinal的设计原则说明 Jfinal、JfinalUIB学习交流QQ群:309647612 已经完成,前四章免费阅...

littleant
2015/08/20
0
12
jweb——修改自jfinaluib的java管理系统开发基础框架

项目地址: https://git.oschina.net/xjtweb/jweb.git 几点说明: 一、本工程修改自jfinaluib项目。 二、运行 a、设置jvm参数jweb.home指向工程的工作目录(目录内容参照本文件的同级目录的hom...

xiejuntao
2015/05/22
0
0
JFinal教程JfinalUIB 代码笔记 (5)--- 增加sql打印格式化和参数值输出

先上图看效果 sql格式化 用hibernate的都知道他的sql格式化打印还是很不错的,直接摘取过来用用了,改了个类名叫ToolSqlFormatter 下面是修改jfinal sql输出的地方 参数输出,修改jfinal Di...

littleant
2014/08/28
0
3

没有更多内容

加载失败,请刷新页面

加载更多

大数据学习脑图以及入门教程!

近些年,大数据的火热可谓是技术人都知道啊,很多人呢,也想学习大数据相关,所以,这里分享几个大数据脑图,希望可以让你清楚明白从哪里入门大数据,知道该学习以及掌握哪些知识点; 大数据...

董黎明
18分钟前
0
0
聊聊redis的监控工具

序 本文主要研究一下redis的监控工具 redis-stat redis-stat是一个比较有名的redis指标可视化的监控工具,采用ruby开发,基于redis的info命令来统计,不影响redis性能。 docker运行 docker r...

go4it
21分钟前
0
0
TypeScript基础入门之高级类型的索引类型(Index types)

转发 TypeScript基础入门之高级类型的索引类型(Index types) 高级类型 索引类型(Index types) 使用索引类型,编译器就能够检查使用了动态属性名的代码。 例如,一个常见的JavaScript模式是从...

durban
38分钟前
0
0
利用碎片化时间Get Linux系统

起初,我做着一份与IT毫无关系的工作,每月领着可怜的工资,一直想改变现状,但无从下手,也就是大家熟知的迷茫。我相信,每一个人都会或多或少的经历过迷茫,迷茫每一个选择,迷茫工作或者生...

Linux就该这么学
今天
1
0
图像显示深入学习一:Activity启动过程

一个月左右写了图像显示深入学习之文章开篇文章表明了自己近期的计划,前半年重新学习了opengl es,c++以及Linux的一些知识,觉得是时候开始看图像这一块的源码了,边看边补缺补漏吧。 作为该...

JerryLin123
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部