2011-01-24 115 views
2

问题和我的想法仅仅是模糊的,因为我仍处于设计阶段。我只是想知道一些事情,以便在问题上以及如何/在哪里着手解决问题。根据子域名/域名更改索引页面

问题部分:

还有用struts-2 JSP/servlet的建立一个Web应用程序,与URL mywebapp.com。 要求是每个客户端都可以使用他们的子域来访问这个mywebapp.com,比如webapp.abc.com,myapp.xyz.com,等。我必须根据域名进行过滤,为他们定制一个登录页面。我已将他们的域名保存在数据库中以映射其需要在自定义登录页面上显示的详细信息。

我以为他们会给他们的子域注册表的IP地址mywebapp.com所以它会登陆mywebapp.com,,但从这里,我如何过滤域/子域的自定义登录页面?

任何可能的方式开始这将不胜感激。

回答

2

我会建议使用过滤器。使用过滤器,您可以独立于控制器处理对应用程序的任何请求。例如,如果您想根据子域重定向到不同的页面,则您的过滤器可以管理此过滤器,既可以作为在控制器调用之前处理的过滤器,也可以作为控制器调用之后的过滤器。

UPDATE:没有对Struts 2的拦截更多的文档,它可以起到类似的目的:如果从数组的末尾开始http://java.dzone.com/articles/struts2-tutorial-part-57

String domain = ""; 
String subdomain = ""; 

String url = request.getRequestURL(); 
String[] parts = url.split("."); 

// subdomain.domain.com 0, 1, 2 
// subdomain1.subdomain2.domain.com 0, 1, 2, 3 
domain = (parts.length - 2 > -1) ? parts[1] : parts[]; 

for(int i = parts.length - 1; i >= 0; i--) { 
    if(i == parts.length - 2) { 
     domain = parts[i]; 
    } 
    if(i == parts.length - 3) { 
     subdomain = parts[i]; 
    } 
} 

,你知道,第二个到最后是总是第二级域名(SLD)和第三级域名是第三级子域名所在的位置。

+0

感谢您的回答。是的,我确实考虑过拦截器,但即使在关于过滤域名的书籍中也找不到任何示例。如果您碰巧知道您能否给出一个代码片段或任何类似示例的链接。 – rain 2011-01-26 05:43:34