【问题标题】:gwt appengine - user service return pagegwt appengine - 用户服务返回页面
【发布时间】:2010-12-06 18:44:56
【问题描述】:

我有一个完整的 gwt 主页,它有一个登录按钮 (rpc)。

这是服务实现(就像示例一样):

UserService userService = UserServiceFactory.getUserService();
        HttpServletRequest request = this.getThreadLocalRequest();
    String message = "";
    String thisURL = request.getRequestURI();

    Principal principal = request.getUserPrincipal();
    if(principal == null){
        message = "<p>Please <a href=\"" + userService.createLoginURL(thisURL) + "\">sign in</a>.</p>";
    }
    else{
        message = "Hola " + principal.getName() + ". Puedes <a href=\"" + 
                    userService.createLogoutURL(thisURL)+ "\">sign out</a>.</p>";
    }
    return message;

我让 doGet 方法为空。

然后,当我登录/退出时,它会将我重定向到一个空白页面(到 myApp/myServlet),但我想回到我之前的页面(我的 gwt 主页或我所在的任何地方)。

【问题讨论】:

    标签: google-app-engine gwt service


    【解决方案1】:

    A 点:request.getRequestURI(); 方法。此方法将始终返回正在处理当前请求的 servlet 的 URL。

    点 B:在 userService.createLoginURL(thisURL) 中,thisURL 实际上是用户成功登录后应该重定向到的 URL。在您的情况下,thisURL 指向您当前的 servlet 路径,而不是您希望将用户重定向到的位置(参考 A 点)

    也就是说,如果您在成功登录后要重定向用户的页面是www.yourapp.com/home,那么您实际上需要做的是这样的:

    UserService userService = UserServiceFactory.getUserService();
            HttpServletRequest request = this.getThreadLocalRequest();
        String message = "";
        String thisURL = "http://www.yourapp.com/home";
    
        Principal principal = request.getUserPrincipal();
        if(principal == null){
            message = "<p>Please <a href=\"" + userService.createLoginURL(thisURL) + "\">sign in</a>.</p>";
        }
        else{
            message = "Hola " + principal.getName() + ". Puedes <a href=\"" + 
                        userService.createLogoutURL(thisURL)+ "\">sign out</a>.</p>";
        }
        return message;
    

    ^注意为这个URL设置的值。

    【讨论】:

    • 嗨,谢谢你的回答,我同时做了类似的事情,但问题是我需要返回我所在的页面,我的意思是如果我在第 1 页,我需要回到那里登录后,有没有办法做到这一点??
    • 我明白了。那么,您能否将当前页面 url(例如 foo.com/page1.html)作为参数传递给创建注销消息并返回给用户的 servlet?
    猜你喜欢
    • 2011-09-24
    • 2012-03-09
    • 1970-01-01
    • 2023-03-27
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    相关资源
    最近更新 更多