我想实现一个速度工具,它提供了一种方法,以便找出用户登录或不登录的天气。我使用VelocityLayoutServlet来为每个请求呈现模板。
我的velocity-tools.xml如下所示:
<tools>
<toolbox scope="request">
<tool key="user" class="UserTool"/>
</toolbox>
</tools>
我的工具类:
public class UserTool{
// How do I get this object?
private HttpServletRequest request;
public boolean isLoggedIn(){
return !request.getUserPrincipal().getName().isEmpty();
}
}
如何在工具中获取HttpServletRequest
对象?
仅供参考:我使用容器管理身份验证。
答案 0 :(得分:1)
这有两个缺陷:
Servlet
应该已将请求添加到上下文中:$request.remoteUser
。范围request
不表示HTTP请求。它只是说明在每个渲染请求上都会重新创建这个工具。