Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.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 GWT主页到登录页面到实际应用示例重定向问题_Java_Google App Engine_Gwt_Login - Fatal编程技术网

Java GWT主页到登录页面到实际应用示例重定向问题

Java GWT主页到登录页面到实际应用示例重定向问题,java,google-app-engine,gwt,login,Java,Google App Engine,Gwt,Login,我真的很难做到这一点——我已经检查了所有其他堆栈溢出页面,虽然这似乎是一个重复的问题,但除了可能使用多个模块之外,我在任何地方都找不到其他答案(尽管这似乎不正确) 我想做的就是让一组静态页面组成我主页的网站,登录页面(我计划使用RequestFactory从这里收回用户显示应用程序内容的权限-有人在另一篇文章中建议从“非GWT”页面执行此操作-这听起来不正确),然后,当用户成功登录时,他将被引导到实际应用程序,并根据其当前权限显示某些内容 现在,我已经用多个JSP实现了一些小测试项目,以使用Wi

我真的很难做到这一点——我已经检查了所有其他堆栈溢出页面,虽然这似乎是一个重复的问题,但除了可能使用多个模块之外,我在任何地方都找不到其他答案(尽管这似乎不正确)

我想做的就是让一组静态页面组成我主页的网站,登录页面(我计划使用RequestFactory从这里收回用户显示应用程序内容的权限-有人在另一篇文章中建议从“非GWT”页面执行此操作-这听起来不正确),然后,当用户成功登录时,他将被引导到实际应用程序,并根据其当前权限显示某些内容

现在,我已经用多个JSP实现了一些小测试项目,以使用Window.Location.replace(“…”)执行重定向,但是我不知道如何用我想要替换的内容填充特定页面

仅从1个GWT应用程序就可以在静态HTML文件(甚至我不在乎JSP)中拥有完整的网页、登录页面和实际的应用程序

如果是这样,你是怎么做到的

我使用RootLayoutPanel.get()来加载我的主应用程序-它如何知道实际使用哪个RootLayoutPanel-我花了数小时来解决这个问题,而且很多教程/问题的答案都没有提供关于如何实际实现任何东西的深度。很明显我错过了一些东西

我想做一些与showcase中的示例完全相同的事情:

如果你使用chrome并检查标签,每个页面上都会显示GWT2.4,所以这肯定不像我遇到的一个回答“不要使用GWT登录”。这似乎应该是一些简单的事情,我只是。。。我没有发现或老实说,我没有从任何例子中得到什么

这是接近我的项目的最后一步,任何在这方面的帮助将不胜感激


我将ApacheShiro与GAE一起使用,Objectify用于数据库和RequestFactory——只有一个主html页面,应用程序只是调用getRootLayoutPanel来加载应用程序。不确定这些是否有用


实现页面并不是问题所在,只是通过Google帐户或联合登录重定向到GAE登录,您需要将用户重定向到登录页面。由于运行GWT(通常只有一个页面),您有两个选择:

  • 执行常规重定向到登录页面-在这种情况下,浏览器将转到登录页面,您将失去GWT应用程序状态。登录后,您可以重定向回GWT应用程序。如上所述-GWT应用程序状态将丢失。这是最简单的方法

  • 在子窗口或iframe中打开登录页面。将目标URL设置为关闭窗口的页面(实际上,它必须安装目标页面调用的javascript父钩子)。登录完成后,目标页面调用JS钩子,通知父页面登录过程结束,关闭子窗口/iframe并继续。这更复杂,一些登录页面不喜欢iFrame(在OpenID登录的情况下),但它保留了您的GWT应用程序状态

  • 回答你的问题:


    是的,一个GWT项目中可能有多个页面(GWT页面/模块和静态文件)。当然,当你从一个页面导航到另一个页面时,你会失去应用程序状态。只要页面加载到浏览器中,GWT模块就处于“活动”状态。

    退出选项1-这听起来是否正确(这是我现在正在实现的-刚刚开始工作)。登录时,使用请求工厂来验证空用户-失败将重定向到主jsp-主jsp将有一个到登录jsp的链接-登录jsp将有一个HttpServlet来使用请求工厂进行登录-如果从servlet成功登录,它将重定向到主应用程序-这是完全符合逻辑还是我偏离了-我只是在我开始做这些之前想知道吗?谢谢你,你不需要自己的登录页面。主页上的登录链接应带您进入谷歌登录页面。Google登录url是由“UserService.createLoginUrl”生成的。我在GWT附带的MobileWebAppExample中看到您可以这样做,但这是唯一的问题。。我正在开发的应用程序需要接受任何用户,而不考虑gmail帐户-如果我使用UserService.createLoginUrl,这不是只允许用户使用他们的google帐户登录吗。。。另外,我认为我可能做了一些愚蠢的事情——我认为我可以在GWT内部完成所有jsp工作。。。我现在正在做