2012-04-16 14 views
0

我有一個應用程序使用Struts2 jsp和java..sessionid是由container.I創建我想創建我自己的會話ID並設置爲該特定會話...只是想覆蓋。我也創建了一個過濾器。會議id.any線索在struts2或j2ee應用程序中創建自己的會話ID

session.setSessionId()

感謝..

+1

什麼是你的用例?你想做什麼,爲什麼? – 2012-04-16 15:05:55

回答

1

你可以做到這一點使用CookieInterceptor能夠實現CookiesAware然後攔截調用設置自己的的sessionId。

編輯:

剛剛意識到CookieInterceptor犯規讓你設置一個cookie,所以我做了這樣的事情

在我執行我的Action我這樣做的方法:

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; 
    } 

結果

SessionId Override

+0

你會給一些代碼片段嗎?順便說一下,會話ID是由Container生成的,而不是由Cookie生成的。請仔細閱讀 – user1126046 2012-04-16 09:06:09

+0

你在那裏?請給我一些代碼 – user1126046 2012-04-16 10:03:03

+0

我現在沒有時間了,但我會在家中檢查這一個。 – mprabhat 2012-04-16 10:11:59

相關問題