ServletRequest中的会话变量
我需要通过filter访问会话变量。 我甚至不知道是否有可能。 在实践中,问题是来自javax.Servlet.Filter
实现的doFilter
方法类型是ServletRequest
,而HttpServletinheritance了类,doPost方法参数request
是HttpServletRequest。
- 我可以在Filter中访问ServletRequest中的会话吗?
- 我应该这样做吗?
- 你能为我推荐什么?
谢谢!
只需将获得的ServletRequest
为HttpServletRequest
。
@Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpSession session = request.getSession(false); // ... }
也可以看看:
- 我们的servletfilter维基页面
你当然可以。 ServletRequest
允许您访问包含属性的会话。 您可以在filter,servlet,jsp,session listener中随时查看,添加,删除和修改属性。 这种技术非常有用,特别适用于同一会话中不同组件之间的通信。