如何使特定会话无效?

时间:2013-08-27 07:11:27

标签: jsp servlets

我想使用“httpsession”保存的几个特定会话无效。是否可以使所选会话无效并使其余会话保持活动状态?

4 个答案:

答案 0 :(得分:2)

是的,只需致电HttpSession.invalidate()HttpSession.logout()(Servlet 3.0)。

答案 1 :(得分:1)

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

1 - session.invalidate();

2 - session.removeAttribute( “XYZ”);

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

答案 2 :(得分: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。

答案 3 :(得分:-1)

'EJP'的解决方案适用于当前会话。但是如果您想要使任何会话无效(基于指定的JSESSIONID),这里的答案是:How to invalidate selected session programmatically?