怎么在外部获取当前的request和response

JFinal怎么在非controller类中获取当前请求的request和response

之前在springboot项目里是使用RequestContextHolder.getRequestAttributes()写一个工具类来获取

这个在jfinal中怎么实现呢

目前是使用的全局拦截器,在拦截器中拿到request和response然后存到ThreadLocal里,然后在其他地方使用

评论区

JFinal

2020-11-10 17:07

写一个拦截器,用一个 ThreadLocal 传递, spring boot 本质上也是在 RequestContextHolder 通过 ThreadLocal 传递的

大致代码如下:
public class RequestContextHolder implemetns Interceptor {
static ThreadLocal《Request》 TL = new ThreadLocal();
public void intercept(Invocation inv) {
TL.set(inv.getController().getRequest());
inv.invoke();
}

public static Request getRequest() {
return inv.getRequest();
}
}

然后配置为全局拦截器:
configHandler(Handlers me) {
me.add(new RequestContextHolder());
}

用的时候这样:
RequestContextHolder.getRequest().getAttribute(...);

小李子a

2020-11-10 17:10

opal

2020-11-11 14:47

public static Request getRequest() {
return TL.get();
}

热门反馈

扫码入社