GWTP中的服务器端会话管理

时间:2011-08-17 04:56:11

标签: gwt gwt-platform

您好我正在使用GWTP进行应用程序开发。在应用程序中,我需要服务器端会话实例将一些数据放入该会话实例中。我看到了一些GWT的例子,其中有Action类,它扩展了ActionSupport类。 在示例中有一些方法可以让我们拥有服务器端会话实例。如下所示:

public HttpServletRequest getRequest() {
        return ServletActionContext.getRequest();
    }

public HttpServletResponse getResponse() {
    return ServletActionContext.getResponse();
}

public HttpSession getSession() {
    HttpSession session = getRequest().getSession();
    return session;
}

但我没有在GWTP中得到类似的东西。请帮帮我。在此先感谢。

2 个答案:

答案 0 :(得分:4)

最后我得到了一些帮助我的东西。我在这里分享。

private Provider<HttpServletRequest> requestProvider;
private ServletContext servletContext;


@Inject
public LoginCallerActionHandler(
        Provider<HttpServletRequest> requestProvider,
        ServletContext servletContext) {
    super();
    this.requestProvider = requestProvider;
    this.servletContext = servletContext;
}

这是我的动作处理程序类。我可以使用session。

servletContext.setAttribute(SessionKeys.LOGGEDIN_USER.toString(), returnObject.getLoggedInUser());

答案 1 :(得分:1)

如果您在服务器端使用Spring或Guice,则可以在Action中注入Request / Response。例如,如果您使用的是GWTP的DispatchServletModule,则可以使用Guice ServletModule的功能:

  

DispatchServletModule扩展了Guice ServletModule并映射了请求   处理程序类的URL。

以下是Guice wiki的示例:

@RequestScoped
class SomeNonServletPojo {

  @Inject
  SomeNonServletPojo(HttpServletRequest request, HttpServletResponse response, HttpSession session) {
    ...
  }

}

我不确定GWTP是否绑定Singleton范围内的处理程序。如果它确实以单例绑定它,你应该注入一个Provider。