您好我正在使用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中得到类似的东西。请帮帮我。在此先感谢。
答案 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。