Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Google app Engine上获取应用程序的域名_Java_Google App Engine - Fatal编程技术网

Java 如何在Google app Engine上获取应用程序的域名

Java 如何在Google app Engine上获取应用程序的域名,java,google-app-engine,Java,Google App Engine,我有一个应用程序在domainX上的Google应用程序引擎上运行。这允许用户输入、存储和显示数据 我也希望这个应用程序在域名上运行。我想使用这两个应用的域名为DataStoreService生成一个密钥,这样数据就不会在这两个域名之间共享 我如何获得域名?我知道我可以使用HttpServletRequest获取我的一个servlet的DoPost方法上的url,但是我如何获取域呢?我还需要在没有HttpServletRequest的RemoteServiceServlet上获取域以获取url

我有一个应用程序在domainX上的Google应用程序引擎上运行。这允许用户输入、存储和显示数据

我也希望这个应用程序在域名上运行。我想使用这两个应用的域名为DataStoreService生成一个密钥,这样数据就不会在这两个域名之间共享

我如何获得域名?我知道我可以使用HttpServletRequest获取我的一个servlet的DoPost方法上的url,但是我如何获取域呢?我还需要在没有HttpServletRequest的RemoteServiceServlet上获取域以获取url


谢谢

您可以引入一个映射到
/*
的特殊过滤器,该过滤器将从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
}
类记忆域实现过滤器{
doFilter(ServletRequest请求、ServletResponse响应、FilterChain链){
DomainHolder.getInstance().setDomain(request.getServerName());
链式过滤器(请求、响应);
}
…初始化并销毁
}
类别域名持有人{
//在这里存储域
pricate ThreadLocal domain=new ThreadLocal();
域持有者getInstance(){…sigleton…}
…获取/设置域名
}

使用
example.appspot.com
URL或特定于版本的URL(如
version.example.appspot.com
)直接访问如何处理?为什么不使用两个不同的应用程序,因为看起来您希望为不同的域使用不同的数据库。