Java ServletRequest中的会话变量
我需要通过过滤器访问会话变量。我甚至不知道这是否可能。实际上,问题在于Java ServletRequest中的会话变量,java,servlets,servlet-filters,Java,Servlets,Servlet Filters,我需要通过过滤器访问会话变量。我甚至不知道这是否可能。实际上,问题在于javax.Servlet.Filter实现中的doFilter方法类型是ServletRequest,而HttpServlet继承了类,doPost方法参数request是HttpServletRequest 我可以在筛选器中访问ServletRequest中的会话吗 我应该那样做吗 你能给我推荐什么吗 谢谢 当然可以ServletRequest允许您访问包含属性的会话。您可以随时在filter、servlet、jsp和会话
javax.Servlet.Filter
实现中的doFilter
方法类型是ServletRequest
,而HttpServlet继承了类,doPost方法参数request
是HttpServletRequest
谢谢 当然可以
ServletRequest
允许您访问包含属性的会话。您可以随时在filter、servlet、jsp和会话侦听器中查看、添加、删除和修改属性。这种技术非常有用,尤其适用于同一会话中不同组件之间的通信 只需将获得的数据转换为
另见:
HttpServletRequest-request=(HttpServletRequest)methodRequest
您可以将doFilter请求强制转换为HttpServletRequest
。没有getSession()
方法。否则OP一开始就不会问这个问题。我经常把ServletRequest
转换成HttpServletRequest
,所以我不想提及这一点。
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpSession session = request.getSession(false);
// ...
}