多个站点与Java应用程序引擎
-
21-08-2019 - |
题
我试图创建一系列所有运行作为一个应用程序的网站,但有不同的设计(来定位他们)。
我的想法是不同的域名映射到一个站点。 E.g:www.mysite1.com映射到www.mysite.appspot.com/mysite1和www.mysite2.com映射到www.mysite.appspot.com/mysite2
我猜必须有一个网址模式或东西通过一个servlet从web.xml中的网站的名称?我想网址,如www.mysite.appspot.com/mysite1/forumpost/3/能够通过同一个servlet作为www.mysite.appspot.com/mysite2/forumpost/3/处理。 理想情况下,我想通过站点名称作为参数传递给这个servlet。
当然是有人已经做过,或这样做的一些标准的方式吗?我已经得到了有关解析URL对网站采取的名字给它一个模糊的想法,但我很新的servlets等,并认为有人也许能揭示这种情况的一些情况。
谢谢!
解决方案
您不能映射自己的appspot.com应用程序(例如,foo.mysite.appspot.com)的子域,但你可以直接映射任意域您的应用程序,如www.mysite1.com和www.mysite2 .COM - 只需添加它们都作为别名到您的谷歌Apps帐户,然后将它们映射到您的App Engine应用程序。一旦你做完这些,你只需要检查主机头的内容在您的应用程序将请求路由到适当的处理程序(或以其他方式改变你返回内容)。
其他提示
尝试使用javax.servlet.Filter
和转发到基于HTTP请求报头“Accept-Language
”的语言特定页面(我认为这是一个)。你可以在那得到一个呼叫javax.servlet.HttpServletRequest.getHeader(String)
。
这样,你的网站有一个单一的URL和分离到特定语言的网页是内部处理。