2019-08-30 09:42
日志里面会有这类信息
不建议将这类信息响应到客户端,攻击者可以利用这个功能有针对性攻击,在出异常时响应 500 页面、404 页面即可
如果一定要显示这类异常,做一个全局拦截器即可,大致代码:
try {
inv.invoke();
} catch( Exception e) {
inv.getController().setAttr("errorMsg", e.getMessage());
inv.getController().render("error.html");
}
如果你是希望将错误输出为 json ,可以这样:
inv.getController().renderJson("errorMsg", e.getMessage());
2019-08-29 16:32
jfinal 性能是 spring + mybatis 的 4.56 倍,这里是测试项目链接:
https://gitee.com/jfinal/jfinal-performance
jfinal 模板引擎性能是 freemarker 的 4.27 倍,是 velocity 的 3.42,不仅速度快而且内存占用更小,这里是测试项目链接:
https://gitee.com/jfinal/enjoy-performance
jfinal 4.4 又优化了 enjoy 模板引擎的性能,再次提升了 13% 的性能
比 jfinal 性能低得多的 spring 已被广泛应用,所以,完全不必关心 jfinal 的性能
2019-08-29 14:48
@MarlonBrando jar包放到Tomcat的lib文件夹下不是一个好办法
这种方式能解决,已经证明了是 jar 包的问题,排查一下很好解决
2019-08-29 12:09
@lori 如果希望用 fastjson 转换,需要配置:
me.setJsonFactory(new FastJsonFactory());
设置断点,看看转换流程走的是哪个类,这类问题很好查
出现 attrs 这个不太正常,一定要查出原因来,记得搞定后回来分享一下
2019-08-28 17:04
@jfinal初识 我还是直接说结果吧,你的这个需求不可能实现,原因如下:
1:batch 批量的基本出发点是: 一条 sql + 多组数据 一起提交到数据库进行操作
2:也就是说,一条 sql 要能被多组数据 "共用"
3:如果不能共用,那就是多条 sql + 多组数据,这种情况就不是 batch 操作了,而是与 for 循环一条一条 sql 去执行没有区别
4:也就是说, batch 操作要么是一条 sql 搞定所有数据,要么就不是 batch 操作
具体到你的需求,其中的那么 sql 大致是:
insert into (...) values ( ?, ?, ? )
假定上面的 sql 是三个问号占位符,假定你的数据前一万条都正好是三个参数,而第 10001 条数据只有两个参数,假定少了一个 name 字段的参数值
此时,JDBC 约定的同一条 sql 适用于多组数据,这个基本点就不成立了
说到底,是 JDBC 不支持,不是 jfinal 不支持
JDBC 要是真去支持,那就不是 batch 了