Jakarta ee 根据子域/域名更改索引页
问题和我的想法只是含糊不清,因为我还在设计阶段。我只是想知道一些事情,以便在这个问题上领先一步,以及如何/在哪里着手解决它 问题部分: 有一个web应用程序是使用struts-2JSP/servlet构建的,URLJakarta ee 根据子域/域名更改索引页,jakarta-ee,struts,project-planning,Jakarta Ee,Struts,Project Planning,问题和我的想法只是含糊不清,因为我还在设计阶段。我只是想知道一些事情,以便在这个问题上领先一步,以及如何/在哪里着手解决它 问题部分: 有一个web应用程序是使用struts-2JSP/servlet构建的,URLmywebapp.com。 要求是每个客户都可以使用其子域访问此mywebapp.com,如webapp.abc.com、myapp.xyz.com、等。我必须根据域名进行筛选,为他们提供一个自定义的登录页面。我已将他们的域名保存在数据库中,以映射他们需要在自定义登录页面上显示的详细信
mywebapp.com
。
要求是每个客户都可以使用其子域访问此mywebapp.com
,如webapp.abc.com、
myapp.xyz.com、
等。我必须根据域名进行筛选,为他们提供一个自定义的登录页面。我已将他们的域名保存在数据库中,以映射他们需要在自定义登录页面上显示的详细信息
我的想法是,他们会将mywebapp.com
的IP地址提供给他们的子域注册表,这样它就会登录到mywebapp.com,
,但是从这里,我如何过滤域/子域以获得自定义的登录页面
任何可能的方法都将不胜感激。我建议使用过滤器。使用过滤器,您可以独立于控制器处理对应用程序的任何请求 例如,如果您希望基于子域重定向到不同的页面,则您的筛选器可以管理该页面,可以作为在控制器调用之前或控制器调用之后处理的筛选器 更新:有更多关于Struts 2拦截器的文档,可以用于类似的目的:
如果从数组的末尾开始,您知道倒数第二个始终是第二级域(SLD),倒数第三个始终是第三级子域所在的位置。谢谢您的回答。是的,我考虑过拦截器,但是在过滤域名的书中找不到任何例子。如果您碰巧知道,请提供一个代码片段或类似示例的任何链接。request.getRequestURL()将解决我在拦截器或筛选器中的问题。我将检查它,因为我还没有该设置。谢谢。@rain-我添加了一些代码来帮助您开始域/子域提取。我假设您可以根据子域/域值本身处理if分支:)
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];
}
}