我们计划部署我们的GWT模块http://code.google.com/webtoolkit/doc/1.6/DevGuideServerCommunication.html#DevGuideRPCDeployment在"使用Tomcat与Apache HTTPD和代理"一节中
基本上,我们配置Apache/PHP服务器将请求传递给匹配URL部分的Tomcat/GWT服务器。果然奏效了。现在我们要将当前登录用户的信息从Apache/PHP传递到GWT模块。
我最初的想法是从PHP页面加载GWT模块(通过包含它的nocache.js),并包含GWT模块可以读取的登录令牌。但是我不确定读取DOM值并将其视为登录令牌是否安全。
有什么最好的办法吗?谢谢你。依我之见,使用从apache/php传递到gwt项目的登录令牌无疑是最好的主意。要传递这个令牌,有三种可能:
第一个:您可以使用cookie传递令牌。将令牌写入cookie并在gwt上下文中再次读取:
import com.google.gwt.user.client.Cookies;
Collection<String> cookies = Cookies.getCookieNames();
在GWT- showcase中可以找到一个处理GWT cookie的示例。
第二个:您可以使用HTTP GET传递它,而不是将令牌写入cookie,并在gwt上下文中再次读取它:
// returns whole query string
public static String getQueryString() {
return Window.Location.getQueryString();
}
// returns specific parameter
public static String getQueryString(String name) {
return Window.Location.getParameter(name);
}
这个方法是-恕我直言-你永远不应该选择的!
第三个:除了HTTP GET,你还可以使用HTTP POST。将HTTP POST发送到服务器。因此,您必须使用一个简单的servlet在服务器端处理请求。这可以作为单例实现,因此可以从gwt -server-上下文中读取。这种方法有点复杂,而且需要做很多工作,因为您必须将信息传回GWT-client-context。
哪个版本最适合你,取决于你项目的细节。通常我会说,Cookie-Version是最好的。