使用struts2处理动态子域

时间:2015-05-25 09:12:40

标签: struts2

如何使用Struts2在我的应用程序服务器/容器上创建子域。

例如,如果我有一个名为john15的用户,我想在用户登录john15.abc.com的应用程序后动态创建子域abc.com

1 个答案:

答案 0 :(得分:0)

一般来说,你不能。有很多方法可以实现这一点,但是子域由应用程序服务器控制,因此对它们的任何编程控制都受到容器/应用程序服务器提供的限制,并且可能无法移植。

另一个解决方案(实现所需效果但不尝试使用struts2 /应用程序服务器交互)是使用struts2开发自定义url标记,用于构建所需的URL。然后使用重写URL的东西(像鱿鱼这样的软件,如:http://en.wikipedia.org/wiki/Proxy_server#Web_proxy_servers)。您可以将URL重写为struts更可接受的格式,可能作为url参数,或使其显示为可以解析的路径的一部分。

如果您必须这样做,我会建议代理服务器解决方案。实施网址以按照模板进行操作:

abc.com/user/additional_path_and_parameters

然后使用Web代理将user.abc.com/additional_path_and_parameters重写为上述内容。

最后在创建那个神奇的stuts2 url标签以及可能的动作标签的重新实现时:你可能想要重用现有的标签并让它实现生产和生产的标签。和"开发"模式。在开发过程中,标记的行为与现有的struts2 url标记完全相同,但在部署模式下,它会根据您的需要编写您的URL。这很重要,因为您不想浪费时间在开发机器上设置代理,这将是一件痛苦的事。