我有jsf 2.0 web应用程序(带有ejb),它将为多个域提供服务。我需要根据用户来自的域名加载数据。所以我必须得到域,调用ejb服务并在用户会话中保存数据。此外,当用户访问domainA.com然后更改为domainB.com时,我应该创建新会话。
如何做到这一点?托管bean中的Servlet,过滤器,阶段监听器,post构造? 或者可以创建多个网络应用程序,每个域一个?
答案 0 :(得分:-1)
如果您要使用完全限定的域而不是子域,我建议您使用每个域的单独部署,这可以解决您创建会话的问题,并且应该不难。您可以从servlet或其他有权访问Request对象的组件中获取域名,来自与请求本身相关的信息:
// Get client's hostname
String hostname = req.getRemoteHost(); // hostname
此方法
返回发送请求的客户端的主机名。如果名字 未知,返回一个空字符串。完全限定的域名 (例如,“xyzws.com”)发出请求的客户端。 IP地址 如果无法确定,则退回。