Java 从servlet/jsp自动生成的会话,尽管存在条件:<;%@页面会话=";假";%&燃气轮机;

Java 从servlet/jsp自动生成的会话,尽管存在条件:<;%@页面会话=";假";%&燃气轮机;,java,jsp,http,session,servlets,Java,Jsp,Http,Session,Servlets,我在应用程序的web.xml中指定了1分钟的会话超时: <session-config> <session-timeout>1</session-timeout> </session-config> 即使在当前会话到期时,它仍然会自动生成新会话。 我在应用程序中编写了一条调试语句,用于检查缺陷: System.out.println("session id : " + httpSession.getId()); 如果页面在会话过期后

我在应用程序的web.xml中指定了1分钟的会话超时:

 <session-config>
    <session-timeout>1</session-timeout>
 </session-config>
即使在当前会话到期时,它仍然会自动生成新会话。 我在应用程序中编写了一条调试语句,用于检查缺陷:

System.out.println("session id : " + httpSession.getId());
如果页面在会话过期后重新加载,上述语句将打印一个新的会话id

我想要的是,一旦会话过期,我的iframe中的相应页面应该显示会话过期的消息,并且必须强制用户重新登录

但它所做的是,当我重新点击链接时,它会打开一个全新的会话的相同网页

我还放置了一个HttpSessionListener,它为我做一些清洁工作

public class InsightHttpSessionListener implements HttpSessionListener {

@Override
public void sessionCreated(HttpSessionEvent arg0) {

}

@Override
public void sessionDestroyed(HttpSessionEvent arg0) {
    InsightDbConn insightDbConn = InsightDbConn.getInstance();

    HttpSession httpSession = arg0.getSession();

    insightDbConn.getFeatureIds().clear();
    System.out.println("feature ids list clear");
}

我真的不知道出了什么问题。请解释我将缺陷留下的位置,会话将自行再生。

如果我错了,请有人纠正我,但iFrame不是很古老吗?是的。但这并不能解决我的问题信息不够:请显示web.xml、servlet和您的请求,以检查。@Vishal显示servlet您第一次创建会话的位置以及如何从该servlet(dispatcher或sendRedirect)导航?您使用的是哪台服务器?例如,Weblogic在Weblogic.xml中有会话设置。我将编写一个检查有效会话的过滤器,而不是将作业委托给单个servlet。如果您发现过滤器中也出现了相同的问题,您就知道容器正在创建会话。如果不是,罪魁祸首就是你的代码,你只需要做痛苦的调试过程
System.out.println("session id : " + httpSession.getId());
public class InsightHttpSessionListener implements HttpSessionListener {

@Override
public void sessionCreated(HttpSessionEvent arg0) {

}

@Override
public void sessionDestroyed(HttpSessionEvent arg0) {
    InsightDbConn insightDbConn = InsightDbConn.getInstance();

    HttpSession httpSession = arg0.getSession();

    insightDbConn.getFeatureIds().clear();
    System.out.println("feature ids list clear");
}