2018-12-26 21:35

setCookie(String name, String value, int maxAgeInSeconds)

maxAgeInSeconds 的含义为:
-1: clear cookie when close browser. 0: clear cookie immediately. n>0 : max age in n seconds.

你的需求是关闭浏览器就删除,配置成 -1 即可

2018-12-26 21:33

me.setBaseUploadPath(...) 与 me.setBaseDownloadPath(...) 这两个方法的参数如果使用了绝对路径,就会去指向项目之外的一个绝对路径

如果你的这些路径不是绝对路径,不要以 "/" 打头, 也不要以 "D:/" 这种盘符打头,会被认为是绝对路径

如果不是绝对路径,正确的配置方式为:
me.setBaseUploadPath("upload")
me.setBaseDownloadPath("download")

当然,上述两个配置是 jfinal 配置的默认值,可以删掉配置一样是这个值

知道了前面的 basePath,再回到问题本身就容易解决了,renderFile(file) 的规则是:
String finalFile = baseDownloadPath + file;

具体为啥出错,单步调试一下 FileRender 中的 render 方法一分钟内解决

2018-12-26 21:26

http://www.jfinal.com/share/281

2018-12-26 21:17

controller 中提供了丰富的 setCookie(...) 一系列的方法, 方法上有说明文档,控制一下 maxAge 参数即可

2018-12-26 19:25

通过 getPara() 取数据

通过什么方式取数据,完全取决于客户端发送方式,例如,你用 curl 发送的方式可能是问号挂参或者是 form 表单模拟,这种全是用 getPara()

2018-12-26 19:23

@zhangshiqiang 那个是很老的版本了,新版本中的 HttpKit.readDate 会保留 \n, 但是 \r 是会扔掉的,对于 json 来说有 \n 就够了,linux、windows 下通用

2018-12-26 17:55

@zhangshiqiang CPI 这个改进证明分享的同时自己也能受益

2018-12-26 17:54

getRawData() 这个方法可以反复调用,所以 if (request.getAttribute("_obj") != null) 这个判断可以省去了

2018-12-26 17:53

ServletInputStream 读数据这一段,建议一个小改进:
String str = inv.getController().getRawData();

感谢分享

2018-12-26 17:51

例如你说的,没到 10 分钟提示就变成了 “用户名或密码错误”,这个一调试就出来了, 看程序走了哪个分支,但是你去猜原因的话是很难的

2018-12-26 17:50

这个只能单步调试定位原因

由于你这个问题十分明显,所以一次调试就可以知道原因了

2018-12-26 17:44

@zhangshiqiang @q76267454 这类隐藏功能,在 jfinal 中到处都是。 多看看源码,能玩出很多创新来

2018-12-26 17:32

ClassNotFound , 缺少依赖而已,java 基础

2018-12-26 17:28

@yuer_2018 出现下面这个错误:
Not Found
Powered by Jetty:// 9.4.12.v20180830

表明 jfinal 没有启动成功,通常是 web.xml 中的配置不对或者启动就有问题的情况

换 jfinal undertow 没错的,爽多了,jfinal.com 切到 jfinal undertow 一段时间了,cpub 内存占用的表现比 tomcat 要好,运行十分平稳

更重要是部署快

2018-12-26 17:24

这么快就出来分享了,超赞

有两个改进建议,对于 _init_() _clear_() 的调用,jfinal 早就准备好了工具类:
CPI._init_(....);
CPI._clear_();

省去反射调用, 性能会更好