Tomcat虚拟主机和通配符dns匹配

我创建了一个应用程序,它需要接受通配符dns并使用该通配符值向数据库请求。 我试图为自己模拟一个虚拟环境来实现我想要的东西:

1)在我的Linux操作系统中,我更改了/ etc / hosts并添加以下行:

127.0.0.1 test-domain.com 127.0.0.1 mehdi.test-domain.com 

2)我更改了我的tomcat server.xml文件,如下所示:

  www.test-domain.com    *.test-domain.com   

3)我将项目war文件’Root.war’部署到$ {TOMCAT} / webapps / ROOT文件夹中

现在,当我请求“ www.test-domain.com ”时,我看到了网页主页,我想在输入这个url“ mehdi.test-domain.com ”时,我从url中获取mehdi并对其执行操作向我的用户显示mehdi页面。

问题1:如何在应用程序中获取通配符值?

问题2:我们是否有可能让tomcat在运行时将请求URL转换为其他内容并将其传递给应用程序(我需要通配符值ex:mehdi)?

http://mehdi.test-domain.com转到http://test-domain.com/mehdi

问题3:是否可以只有第二个<主机名= …定义并删除第一个? 我怎么能在我的应用程序中处理它?

Q1:使用request.getServerName()

Q2:你可以使用UrlRewritefilter或类似的

问题3:不支持AFAIK通配符,因此您将需要单个主机名=“localhost”来接收所有请求另请参阅如何在Tomcat和Java上托管随机或通配符子域