我正在開發使用JSP
& Servlets
Web應用程序共享會話
我已經開發了一些Web應用程序像Profile
,Reports
,Leads
(容器:Oracle10
:Tomcat7
,數據庫)。然後我開發了A Login
應用程序。在此應用程序中,我將USERID存儲在Session
中,並具有更多會話屬性。
用戶登錄後,他將顯示菜單,其中包含指向其他應用程序的鏈接,如指向Profile
應用程序的鏈接。
所以,當我的用戶登錄後訪問Session
在:
- 如果我嘗試訪問會話withing相同的應用程序(登錄)然後我得到會話使用所有必需的屬性
- 但是,當我嘗試從其他應用程序訪問會話像
Profiles
然後我得到會話null
代碼片段來檢查會話(在登錄Web應用程序Servlet過濾器)
HttpSession session = request.getSession(false);
if(session==null)
{
System.out.println("Session does not exist... Redirected to LOGIN Page.");
response.sendRedirect("/ApplicationName/Login.jsp");
}
我訪問的Profile
應用程序會話,以檢查用戶是否登錄或沒有。
然後我就搜查,我發現Session
不能從其他應用程序訪問出於安全考慮。(我還發現,它可以通過設置crossContext="true"
完成)
然後我發現了其他選項,如製作EAR
的所有應用程序,然後部署它,但不幸EAR
它不支持Tomcat7
。
我對網絡環境很陌生,所以如果任何人有過這方面的工作,那麼請讓我知道可以選擇什麼?
在此先感謝
UPDATE1
現在我已經決定使用EAR
,其中我將包所有WAR
文件,然後我會盡量在它們之間共享會話。因爲Tomcat不支持EAR
我已經安裝了Oracle Glassfish
,然後我創建了Enterprise Application Project
,其中包含兩個應用程序1. Login
和2. Profiles
,然後創建EAR
文件,並將其部署到Glassfish
。 所以我想分享這兩個應用程序之間的會話(在Glassfish上),所以如果任何人有任何想法,那麼請讓我知道。 (鏈接到任何教程也將不勝感激)
表示您想要在運行於同一Web服務器上的多個應用程序之間共享數據。這可以在Web服務器Catalina中進行一些操作。我不認爲會有另一種方法來做到這一點, –
@Nikhil是的,我想分享在同一個Web服務器上運行的幾個應用程序之間的數據(tomcat7) – Bhushan
http://stackoverflow.com/questions/9293350/domain- level-session-cookie-on-multiple-domains關鍵字:域級會話cookie –