Session 在struts2或j2ee应用程序中创建您自己的会话id

Session 在struts2或j2ee应用程序中创建您自己的会话id,session,struts2,sessionid,Session,Struts2,Sessionid,我有一个使用Struts2 jsp和java的应用程序。sessionid由容器创建。我想创建自己的会话id并设置为该特定会话…只想覆盖。我还创建了一个筛选器。会话id。有什么线索吗 差不多 session.setSessionId() 谢谢..您可以使用,它可以实现并截获调用以设置您自己的sessionId 编辑: 刚刚意识到CookieInterceptor不允许你设置cookie,所以我做了类似的事情 在我的操作的execute方法中,我这样做了: public String execut

我有一个使用Struts2 jsp和java的应用程序。sessionid由容器创建。我想创建自己的会话id并设置为该特定会话…只想覆盖。我还创建了一个筛选器。会话id。有什么线索吗

差不多

session.setSessionId()

谢谢..

您可以使用,它可以实现并截获调用以设置您自己的sessionId

编辑:

刚刚意识到CookieInterceptor不允许你设置cookie,所以我做了类似的事情

在我的
操作的execute方法中,我这样做了:

public String execute() {
        String jSessionId = null;
        for (Cookie c : httpServletRequest.getCookies()) {
            if (c.getName().equals("JSESSIONID"))
                jSessionId = c.getValue();
        }
        System.out.println("Value Found In Request = " + jSessionId);
        jSessionId = "TestingOverrideOfJSessionId";
        Cookie myCookie = new Cookie("JSESSIONID", jSessionId);
        myCookie.setMaxAge(60 * 60 * 24 * 365); // Make the cookie last a year
        httpServletResponse.addCookie(myCookie);

        return SUCCESS;
    }
结果


请您提供一些代码片段好吗?顺便说一句,会话id是由容器而不是cookies生成的……我现在没有时间,但我会在家里检查这个。谢谢……还有一件事,我们如何在打开的另一个选项卡中检测到相同的url,以便我可以第一个进行会话。这很棘手,你必须将会话id存储在某个地方,因此,如果用户打开另一个选项卡并打开相同的url,您将获得jSession id,请检查此id是否已在使用中,如果是,则注销其他会话。但您不能盲目地执行此操作,您需要查看用户正在尝试调用哪个操作,而不是所有可以执行此操作的操作。这本身就是一个很大的功能,您的用例是什么?你想做什么,为什么?