Jsp 如何使特定会话无效?

Jsp 如何使特定会话无效?,jsp,servlets,Jsp,Servlets,我想使我使用“httpsession”保存的几个特定会话无效。是否可以使所选会话无效并使其余会话保持活动状态?是的,只需调用httpsession.invalidate()或httpsession.logout()(Servlet 3.0)。是的,只需调用httpsession.invalidate()或HttpSession.logout()(Servlet 3.0)。“EJP”解决方案非常适合当前会话。但是,如果您想使任何会话(基于指定的JSESSIONID)无效,下面是答案:“EJP”解决

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

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

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

“EJP”解决方案非常适合当前会话。但是,如果您想使任何会话(基于指定的JSESSIONID)无效,下面是答案:

“EJP”解决方案非常适合当前会话。但是,如果您想使任何会话无效(基于指定的JSESSIONID),下面是答案:

我已经编写了一个方法,可以使用给定的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。

我编写了一个方法,该方法使用给定的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。

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

1——session.invalidate()

2--会话.removeAttribute(“xyz”)


要使特定会话无效,我们使用第二个选项而不是xyz,您可以在其中放置任何会话名称

在servlet/jsp中有两种方法使会话无效

1——session.invalidate()

2--会话.removeAttribute(“xyz”)


要使特定会话无效,我们使用第二个选项而不是xyz。您可以在其中输入任何会话名称

我认为这是使特定会话无效的最好方法,但不能完全无效

session.invalidate();


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

session.invalidate();


您所选择的会话是什么意思?假设客户机具有名称、年龄和数字属性。假设我在会话中将这些属性保存为setsession(“名称”,名称)、setsession(“年龄”,年龄)、setsession(“数字”,数字)。那么,如何仅使名称会话无效,并使其余会话保持活动状态?您所说的选定会话是什么意思?假设客户机具有名称、年龄和编号属性。假设我已在会话中将这些属性保存为setsession(“name”,name)、setsession(“age”,age)、setsession(“number”,number)。那么,如何仅使名称会话无效,并使其余会话保持活动状态?您能告诉我如何执行吗?一两个月前我也有同样的问题。所以问题是:如何使不同会话中具有选定id(即“xyz”)的会话无效。获取会话,如链接中所示,然后调用我回答中提到的API之一。您能告诉我如何执行吗?一两个月前我也有同样的问题。因此,问题是:如何使不同会话中具有选定id(即“xyz”)的会话无效。获取会话,如链接中所示,然后调用我的答案中提到的API之一。您的答案特定于JBoss,而问题中没有提到JBoss-1您的答案是针对JBoss的,问题中没有提到JBoss-1它不会使相关客户端的所有会话无效吗?@chaodee不会,它会使您调用它的会话无效。当您想使整个会话无效时,它很有用。但假设我想从会话中删除特定的会话或变量,而不是什么。如果您有比session.removeAttribute(“xyz”)更好的方法,请不要解释。但请记住,我只想从会话而不是整个会话中删除变量。它不会使相关客户端的所有会话无效吗?@chaodee不,它会使您调用它的会话无效。当您想使整个会话无效时,它很有用。但假设我想从会话中删除特定的会话或变量,而不是什么。如果您有比session.removeAttribute(“xyz”)更好的方法,请不要解释。但请记住,我只想从会话中删除变量,而不是整个会话。(2)是胡说八道。会话的属性不是会话。(2)是无意义的。会话的属性不是会话。