java - 如何在 Google App Engine 上获取应用程序的域名

标签 java google-app-engine

我有一个在 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/

相关文章:

java - 使用 System.loadLibrary 加载 Python C 扩展 DLL

java - 如何在 Java Junit 中测试异常

python - incr 如何处理过期时间?

java - Google App Engine 上的 Spring Boot REST 抛出 502

google-app-engine - 在 App Engine Memcache 上实现 get_multi

java - JTextArea 缩进设置

java - 为什么 zabbix 不显示从 java 代码接收到的值?

java - 尽管条件正确,但 if 条件永远不会执行

google-app-engine - 在 Google 日历中哪里可以找到 eventId?

java - Google App Engine + AWS S3 文件保护!