我想使用“httpsession”保存的几个特定会话无效。是否可以使所选会话无效并使其余会话保持活动状态?
答案 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?