我有一个应用程序运行在谷歌应用程序引擎上的domainX。这允许用户输入数据、存储数据和显示数据。
我也希望这个应用程序在DomainY上运行。我想使用2个应用程序的域名来生成DataStoreService的密钥,这样数据就不会在2个域名之间共享。
如何获取域名?我知道我可以使用HttpServletRequest来获取我的某个servlet的DoPost方法上的url,但是我如何获得该域呢?我还需要得到一个没有HttpServletRequest的RemoteServiceServlet上的域名,以获得网址。
谢谢
发布于 2013-03-05 18:17:35
您可以引入一个映射到/*
的特殊过滤器,它将从HTTP请求中获取当前域,并将其存储到请求存储中以供以后重用。
我建议使用getServerName()
(它是Host
头),而不是URL。
例如:
class RememberDomain implements Filter {
doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
DomainHolder.getInstance().setDomain(request.getServerName());
chain.doFilter(request, response);
}
... init and destroy
}
class DomainHolder {
//store domain here
pricate ThreadLocal<String> domain = new ThreadLocal<String>();
DomainHolder getInstance() { ... sigleton ... }
... get/set domain name
}
https://stackoverflow.com/questions/15220706
复制相似问题