我目前運行具有以下屬性的應用程序:支持沒有餅乾會議在Tomcat中
-
基於Java
- 與Spring和Acegi的
- 運行在Tomcat 5
我需要的能力支持用戶會話沒有餅乾。有人能請我指出正確的方向嗎?
謝謝。
我目前運行具有以下屬性的應用程序:支持沒有餅乾會議在Tomcat中
我需要的能力支持用戶會話沒有餅乾。有人能請我指出正確的方向嗎?
謝謝。
完全回答這個問題是所有響應的組合,所以我要總結一下:
沒有必要設置cookies =「假」在context.xml文件。理想的功能是讓tomcat使用它的基於url的會話標識,如果用戶不支持cookies,默認情況下會使用它。
當用戶沒有啓用cookie時,tomcat將通過請求的url中的「JSESSIONID」參數標識會話。一對夫婦的樣本網址如下 http://www.myurl.com;jsessionid=123456AFGT3
http://www.myurl.com;jsessionid=123456AFGT3?param1=value¶m2=value2
通知會話ID是多麼的不URL查詢字符串的一部分(這是一個J2EE標準)
爲了保證JSESSIONID參數被添加到您的所有要求網址,你不能有簡單的網址引用。例如,在JSTL中,您必須使用< c:url>。如果有必要,servlet引擎會自動將jsessionid附加到url。這裏有一個例子:
<% - 這是不好的: - %> < A HREF = 「page.html中」>鏈接</A>
<% - 這是件好事: - %> < a href =「< c:url value ='page。HTML「/> 」>鏈接</A>
如果我使用ajax調用,該怎麼做? (不是href鏈接) – maximus 2016-06-17 12:45:27
您可以通過IP地址追蹤,但代理服務器(和NAT?)可能把你弄得一團糟。
您可以強制所有URL將會話作爲參數,將所有表單作爲隱藏字段。也許生成URL的自定義標籤可以幫助在這裏,但我沒有做了很多工作,標籤庫。
你需要考慮安全性 - 人們可能會發郵件聯繫給別人使用它的會話ID,所以你會希望有一個IP地址檢查每個進入檢查地址的會話匹配。
我建議不要使用IP地址跟蹤VPN。這個答案是舊的,所以我不會downvote,但我強烈建議反對這個爲未來的回答lookers。 – azdragon2 2016-03-11 00:27:04
請參閱http://tomcat.apache.org/tomcat-5.5-doc/config/context.html。
在文件META-INF/context.xml中,
<?xml version='1.0' encoding='UTF-8'?>
<Context path='/myApplicationContext' cookies='false'>
<!-- other settings -->
</Context>
這似乎將JSESSIONID附加到應用程序的第一個請求上的URL。但是,如何確保它被附加到後續請求? – 2009-01-13 17:01:31
馬特b評論這應該工作的開箱(tomcat會嘗試餅乾,如果失敗回落對編碼會話該URL)。然而,如果你自己創建了一個「普通」鏈接,這將不起作用 - 總是使用像JSTL這樣的方法,所以tomcat可以將跟蹤參數添加到所有URL。
最好的辦法是使用URL重寫。所以,當你使用request.getSession()
,在container
將發送「 在HTTP響應爲Set-Cookie
」報頭session-id
以及session-id
附加到URL
(但必須使用response.encodeURL(session_info)
URL重寫)。
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html");
PrintWriter pw=resp.getWriter();
HttpSession session=req.getSession();
pw.println("<html><body>");
pw.println("<a href=\""+resp.encodeURL("/session_info")+"\">Click</a>");
pw.println("</body></html>");
}
不應該這項工作出在Tomcat的盒子?servlet容器應該設置一個請求參數JSESSIONID在第一次使用會議,一個d如果客戶端沒有發回一個響應信號,表明它接受cookie,容器應該繼續使用這個參數......我想。 – 2009-01-12 19:56:31