2013-06-02 4 views
0

У меня есть метод входа в Servlet GWT RPC, который получает пользователя из контекста сеанса и, следовательно, определяет, если пользователь вошел в систему или нет. Я хочу перенести этот метод на фабричный подход запроса (чтобы получить прокси-объект вместо DTO).Контекст сеанса с запросом gwt factory

Но где я могу его поместить? Я не могу поместить его в Entity, потому что у меня нет контекста сеанса. Какой правильный подход здесь?

Мой метод RPC в настоящее время выглядит следующим образом:

@Override 
public UserDTO isLoggedIn() { 
    // TODO Auto-generated method stub 

    HttpSession session = getThreadLocalRequest().getSession(); 

    String userName = (String)session.getAttribute("userName"); 

    if(userName !=null){ 
     return new UserDTO(userName); 
    } 
    return null; 
} 

ответ

2

RequestFactory также предоставляет методы для доступа запроса и сервлетов контекст

HttpSession session = com.google.web.bindery.requestfactory.server.RequestFactoryServlet.getThreadLocalRequest().getSession(); 

Документацию можно найти здесь:

http://google-web-toolkit.googlecode.com/svn/javadoc/latest/com/google/web/bindery/requestfactory/server/RequestFactoryServlet.html#getThreadLocalRequest()

+0

Да, но я не получаю доступ к этому сервлету напрямую с клиентской стороны. Я просто взаимодействую с прокси-объектами, и они не знают о сервлете. – jan

+0

Точно, @jan - это код сервера. В RPC вы пишете сервлет, но повторно используете те же DTO как клиент, так и сервер, но в РФ у вас есть сущности на сервере и прокси на клиенте. На сервере (доступно только место для сеанса) вы можете вызвать метод, указанный выше. Нет данных сеанса, которые клиент может понять, так как весь сеанс живет на сервере. –

+0

Мне это известно, но я не уверен, как интегрировать метод в рабочий процесс запроса. – jan