gwt appengine - страница возврата сервиса пользователя - PullRequest
0 голосов
/ 06 декабря 2010

У меня есть вся домашняя страница 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 или где бы я ни был).

1 Ответ

0 голосов
/ 14 декабря 2010

Точка A: request.getRequestURI(); метод. Этот метод всегда возвращает URL сервлета, в котором обрабатывается текущий запрос.

Точка B: в userService.createLoginURL(thisURL) thisURL - это фактически URL-адрес, на который следует перенаправить пользователя после успешного входа в систему. В вашем случае thisURL указывает на ваш текущий путь сервлета, а не туда, куда вы хотите перенаправить пользователя (см. Пункт 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;

^ Обратите внимание на значение, устанавливаемое для thisURL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...