我使用的开发Web应用程序JSP和Servlets(:集装箱Tomcat7,数据库:Oracle10)
JSP
Servlets
Tomcat7
Oracle10
我已经开发了一些Web应用程序一样Profile,Reports,Leads。然后,我开发了一个Login应用程序。在这种应用中,我存储 USERID 在Session一些更多的会话属性。
Profile
Reports
Leads
Login
Session
用户登录后,将显示一个菜单,其中包含指向其他应用程序的链接,例如与Profile应用程序的链接。
因此,当Session用户登录后访问时:
Profiles
null
代码段以检查会话 (Login 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")
crossContext="true"
然后,我发现了其他选择,例如制作EAR所有应用程序然后进行部署,但是不幸的EAR是,它不支持Tomcat7。
EAR
我是Web环境的新手,所以如果之前有人从事过此工作,请告诉我可以选择什么?
提前致谢
更新1
现在,我决定使用EAR,其中将打包所有WAR文件,然后尝试在它们之间共享会话。由于Tomcat不支持,EAR所以我已经安装了Oracle Glassfish,然后创建Enterprise Application Project了包含两个Application 1. Login和的文件,2. Profiles然后创建了EAR文件,并将其部署在上Glassfish。所以我想在这两个应用程序(在Glassfish上)之间共享会话,所以如果有人对此有任何想法,请告诉我。(链接到任何教程也将不胜感激)
WAR
Oracle Glassfish
Enterprise Application Project
1. Login
2. Profiles
Glassfish
我在商店中看到的方法是将登录凭据填充到加密的cookie中,并在需要用户数据的应用程序之前安装代理(java过滤器,web服务器mods等)来解密cookie并传递沿数据传输到下游应用程序。如果要在应用程序之间共享登录信息,请不要将其存储在HTTP会话中。