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