0

我想使我使用“httpsession”保存的几个特定会话无效。是否可以使选定的会话无效并保持剩余的会话有效?

4

5 回答 5

2

是的,只需调用HttpSession.invalidate()HttpSession.logout()(Servlet 3.0)。

于 2013-08-27T07:35:57.703 回答
1

有两种方法可以使 servlet/jsp 中的会话无效

1--session.invalidate();

2--session.removeAttribute("xyz");

为了使特定会话无效,我们使用第二个选项而不是 xyz 您将任何会话名称放在那里

于 2014-07-15T06:53:10.407 回答
1

我认为这是使特定会话不完全无效的最佳方法

session.invalidate();

session.removeAttribute("username");
于 2015-05-03T15:47:31.993 回答
0

我编写了一个方法,该方法使用给定的 sessionID 使会话无效:

public void expireSessionWithId(String sessionID)
{  
     try { 
        MBeanServer server = java.lang.management.ManagementFactory.getPlatformMBeanServer();

        ObjectName objectName=new ObjectName("jboss.web:type=Manager,path=/test,host=default-host");

        // declare signature of the parameter
        String[] sig = { "java.lang.String"};
        // declare parameter
        Object[] opArgs1 = { sessionID };
        // call the method
        String value = (String) server.invoke(objectName, "expireSession",
                opArgs1, sig);

        System.out.println(value);
    } catch (MalformedObjectNameException e) {
        //handle the exception
    } catch (InstanceNotFoundException e) {
        //handle the exception
    } catch (ReflectionException e) {
        //handle the exception
    } catch (MBeanException e) {
        //handle the exception
    }

}

我正在研究 JBoss-7.1.1.Final。我的应用程序被称为“test”,因此上下文根为“/test”。您应该使用应用程序的名称创建 objectName。

于 2013-08-27T13:26:44.757 回答
-1

'EJP' 解决方案非常适合当前会话。但是,如果您想使任何会话无效(基于指定的 JSESSIONID),答案是:如何以编程方式使所选会话无效?

于 2013-08-27T08:26:06.267 回答