GWTP中的服务器端会话管理



您好,我正在使用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中没有得到类似的东西。请帮帮我。

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

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());

如果你在服务器端使用Spring或Guice,你可以将请求/响应注入到你的Action中。例如,如果你正在使用GWTP的DispatchServletModule,你可以使用Guice的ServletModule的特性:

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

下面是一个来自Guice wiki的例子:

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

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

相关内容

  • 没有找到相关文章

最新更新