我想知道当子域是通配符时,是否可以使用Spring的@RequestMapping访问子域。
例如,我想编写一个在请求任意数量的子域时将被调用的方法,并且还能够获取该人请求的实际子域。
因此,如果他们访问sub1.example.com,它会点击一种方法,我可以映射" sub1"到String变量。
如果他们访问sub2.example.com,它会点击与前一个示例相同的方法,并且我也能够映射" sub2"到一个String变量。
这可能吗?
答案 0 :(得分:1)
我最终解决的是Spring MVC的这种方法:
@RequestMapping(value="/someUrl")
public String someControllerMethod(ModelMap model, HttpServletRequest request)
{
String subdomain = request.getServerName().split("\\.")[0];
log.info("subdomain is: " + subdomain);
// more code here
}
我只是确保将HttpServletRequest传递给该方法,然后从请求中提取子域。此代码的唯一问题是您的子域中不能有点(。)(否则它只会获取子域的第一部分)。
此解决方案适合我的需求。但如果您有更好的解决方案,请随意发布,如果更好,我会将其作为正确答案。