【问题标题】:Session handling in GWT RequestFactoryGWT RequestFactory 中的会话处理
【发布时间】:2023-04-08 20:28:01
【问题描述】:

谁能给我看一个关于使用 GWT RequestFactory 进行会话处理的简单示例。 也许很简单,但我想不通。

我在某处读到我应该使用 ThreadLocal。嗯,我做到了。这是我的代码:

public class EC_RequestFactoryServlet extends RequestFactoryServlet {
private static final ThreadLocal < HttpServletRequest > uniqueReq =
    new ThreadLocal < HttpServletRequest > () {
        @Override protected HttpServletRequest initialValue() {
            return null;
        }
};

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException
{
    uniqueReq.set(req);
    super.doPost(req, res);
}

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
{
    uniqueReq.set(req);
    super.doGet(req, res);
}}

这会保存会话:

public class Authentication {
public static void SetLoggedInUserToSession(User user) {
    EC_RequestFactoryServlet.getThreadLocalRequest()
            .getSession().setAttribute("LOGGED_IN_USER", user);
}

public static User GetLoggedInUserFromSession(){
    return (User)EC_RequestFactoryServlet.getThreadLocalRequest()
            .getSession().getAttribute("LOGGED_IN_USER");
}}

登录后是可以的,但是再请求一次之后,会话是空的。

那么我错过了什么?还是有更好的方法?

【问题讨论】:

    标签: session gwt requestfactory


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      哦,它现在可以工作了。我在程序的其他地方犯了一个愚蠢的错误。上面的代码运行良好。

      【讨论】: