我想实现一个速度工具,它提供了一种方法来查明用户是否登录。我正在使用 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
对象?
仅供引用:我正在使用容器管理的身份验证。
最佳答案
这有两个缺陷:
- 如果请求是匿名的,您将收到 NullPointerException
- 您的工具是多余的,因为 Velocity 捆绑的
Servlet
应该已将请求添加到上下文中:$request.remoteUser
。
范围 request
不表示 HTTP 请求。它只是简单地说,这个工具会根据每个渲染请求重新创建。
关于java - 如何在速度工具中获取 HttpServletRequest?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36083516/