2

我们有一个 Web 应用程序,比如 mysite.com。

现在用户可以来创建类似 mysite.com/page/mypage 的页面。这里的“mypage”是他/她创建的页面的唯一标识符。因此,每当请求 mysite.com/page/mypage url 时,它都会点击我们的“pagerequestservlet”,它会给出请求的页面数据。

现在我想要的是,每当用户点击 mypage.mysite.com 时,我们也会给出相同的页面相关信息(我们在 mysite.com/page/mypage 上给出)。这意味着,我需要让我的所有 *.mysite.com 请求由“pagerequestservlet”(或类似的 servlet)处理。然后我可以解析请求 URL,识别标识符“mypage”并返回数据。

现在我的问题是,如何让我的所有 *.mysite.com 请求都由“pagerequestservlet”处理?我使用 GoDaddy 作为我的域名注册商。

4

1 回答 1

0

您必须设置您的 DNS 以允许此类通配符,我不知道 GoDaddy 是否支持这一点。

servlet 是“与 DNS 无关的”,通常它不需要知道任何关于其域名的信息。这样就可以在不同的环境甚至不同的上下文根(example.com/a 和 example.com/b)上部署相同的 servlet。

您仍然可以通过ServletRequest#getServerName()访问域名。您可以实现一个过滤器来处理子域部分并重定向到正确的页面。但请注意 - 如果您在集群环境中或在负载均衡器后面运行,则不会返回 mypage.example.com,而是将 servlet 部署到的主机的名称。

于 2014-01-05T16:33:52.933 回答