如何在HttpSessionListener中获取HttpServletRequest?

Nic*_*dem 6 java session jsf request java-ee

如何从SessionListener访问请求标头?

我需要在创建当前会话时设置超时.超时需要根据HttpServletRequest中的标头而变化.我已经有一个SessionListener(实现HttpSessionListener)来记录新会话的创建和销毁,它似乎是设置超时的最合理的地方.

我尝试了以下内容,但它始终将ctx设置为null.

FacesContext ctx = FacesContext.getCurrentInstance();
Run Code Online (Sandbox Code Playgroud)

eri*_*son 9

HttpSessionListener因为它被调用时没有已请求,通知会议的破坏没有访问请求.

因此,一个Filter或者Servlet更好的地方来检查请求并指定会话超时.