2

我有一个 Spring MVC 应用程序(版本 3.0.5.RELEASE),我有这个mvc-config.xml

<mvc:view-controller path="/" view-name="welcome"/>

所以对“/”的请求被转发到欢迎视图welcome.jsp

这意味着在我的情况下,调用 URLhttp://myproject-test.mydomain.com/将转发到welcome.jsp. 很好,但我必须扩展它。除了 URL http://myproject-test.mydomain.com/,我还有 URL http://myproject-anothertest.mydomain.com/。有了这个 URL,整个应用程序应该是一样的,除了欢迎页面。

调用http://myproject-anothertest.mydomain.com/,我想有welcome-test.jsp页面而不是welcome.jsp

那么,我该怎么做呢?我必须知道用户从哪个子域(myproject-test 或 myproject-anothertest)调用该站点,然后向他显示welcome.jsp 或welcome-test.jsp。

有谁知道如何做到这一点?

提前谢谢你和最好的问候,蒂姆。

4

1 回答 1

1

标签<mvc:view-controller>映射到ParameterizableViewController

您可以从其父类AbstractController继承您自己的控制器类,并使用request方法中的参数handleRequestInternal来推断正在使用哪个主机名来访问您的页面,然后使用适当的视图。

HTTP 请求标头Host包含(如果使用 HTTP/1.1)用于访问您的页面的“虚拟”服务器名称。较旧的 HTTP/1.0 协议没有 Host 标头,并且一些代理将流量映射到 HTTP/1.0,在这种情况下,您将无法区分使用不同名称的流量。

在 JSP 中,您可以使用<%=request.getServerName()%>来访问 Host 标头值。请参阅getServerName的文档。

于 2011-03-10T14:02:10.160 回答