我有一个Spring MVC应用程序(版本3.0.5.RELEASE),我在mvc-config.xml
中有这个:
<mvc:view-controller path="/" view-name="welcome"/>
因此,对“/”的请求将转发到欢迎视图welcome.jsp
。
这意味着,在我的情况下,调用网址http://myproject-test.mydomain.com/
会转发到welcome.jsp
。没关系,但我必须扩展它。除了网址http://myproject-test.mydomain.com/
,我还有网址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。
有谁知道如何做到这一点?
提前谢谢你&amp;最诚挚的问候,蒂姆。
答案 0 :(得分: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的文档。