HttpSessionListener中是否可以使用面部上下文?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HttpSessionListener中是否可以使用面部上下文?相关的知识,希望对你有一定的参考价值。
我试图在我的应用程序中从HttpSessionListener运行下面的代码。但是我看到会话id.Session的不同输出。当我启动我的jsf应用程序时默认触发Init Listener。
@Override
public void sessionCreated(HttpSessionEvent se) {
FacesContext fc=FacesContext.getCurrentInstance();
System.out.println("session id01-->"+se.getSession().getId());
HttpSession session= ((HttpServletRequest) fc.getExternalContext().getRequest()).getSession(false);
System.out.println("httpSessionId-->" + (session!=null?session.getId():""));
}
第一个sysout打印会话ID。第二个是打印null。
为什么face context会将会话返回为null,即使会话已创建?
此致, - 当然Adusumalli。
答案
由于fc.getExternalContext()
不会抛出NPE,因此可以使用FacesContext。为什么来自ServletContext
的会话(即外部上下文,而不是JSF的东西)为null是一个不同的问题。它可能还没有完成
以上是关于HttpSessionListener中是否可以使用面部上下文?的主要内容,如果未能解决你的问题,请参考以下文章
JavaWeb(十八):HttpSessionListener接口
SpringBoot中HttpSessionListener的简单使用
SpringBoot中HttpSessionListener的简单使用
Session监听类HttpSessionListener介绍及在listener里取得request