我有一个在 domainX 上的 Google App Engine 上运行的应用程序。这允许用户输入、存储和显示数据。
我也想让这个应用在 DomainY 上运行。我想使用 2 个应用程序的域名为 DataStoreService 生成一个 key ,这样数据就不会在 2 个域名之间共享。
如何获取域名?我知道我可以使用 HttpServletRequest 来获取我的一个 servlet 的 DoPost 方法的 url,但是我如何获取域?我还需要在没有 HttpServletRequest 的 RemoteServiceServlet 上获取域以获取 url。
谢谢
最佳答案
你可以引入一个特殊的过滤器,映射到/*
,它将从HTTP请求中获取当前域,并将其存储到请求存储中以备后用。
我建议使用 getServerName()
(它是 Host
header ),而不是 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
}
关于java - 如何在 Google App Engine 上获取应用程序的域名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15220706/