1

誰かがGWTRequestFactoryを使用したセッション処理についての簡単な例を教えてもらえますか?とてもシンプルかもしれませんが、わかりません。

どこかで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");
}}

ログイン後は問題ありませんが、別のリクエストの後、セッションは空になります。

だから私は何が欠けていますか?それともそれはより良い方法ですか?

4

2 に答える 2

6

または、単に使用することもできますRequestFactoryServlet.getThreadLocalRequest()

于 2011-11-12T15:08:37.867 に答える
1

ああ、それは今働いています。私はプログラムのどこかでばかげた間違いをしました。上記のコードは正常に機能しています。

于 2011-10-03T12:59:48.563 に答える