2011-08-17 12 views
3

こんにちは私は自分のアプリケーション開発にGWTPを使用しています。アプリケーションでは、私はそのセッションインスタンスにいくつかのデータを置くためにサイドセッションのインスタンスをサーバーにする必要があります。 ActionSupportクラスを拡張したActionクラスがあるGWTの例をいくつか見てきました。 あり、我々は以下のサーバー側のセッションinstance.Likeを持つことができ、それを通しての例では、いくつかの方法である:GWTPのサーバーサイドセッション管理

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

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

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

は、しかし、私はGWTPで同様のものを得ていないのです。私を助けてください。前もって感謝します。

+0

我々は、引数のこのコンストラクタを自由に、まだ参照が要求に取得することができます任意の方法、応答が、セッションなど... – Bhavesh

答えて

4

最後に私は私を助けている何かを得ました。私はここでこれを共有しています。

private Provider<HttpServletRequest> requestProvider; 
private ServletContext servletContext; 


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

ここは私のアクションハンドラクラスです。私はセッションを使用できます。

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

こんにちはサンジャイ、私はあなたと同じ問題に直面しています。あなたの答えで 'servletContext.setAttribute'を使うと、' HttpSession'ではなく 'ServletContext'にユーザ情報を入れていますか?サーブレットコンテキストは「Webアプリケーション」ごとにこのデータを手動で削除する必要があります。ユーザーがログアウトしない場合はどうなりますか? –

+1

ユーザーがログアウトしない場合は、ユーザーが5分以上アクティブでない場合に備えてタイマーまたは自動ログアウトを行いました。その時点で、取得したすべての情報を削除するように電話をかけます...これがurクエリーに応答することを願っています。 –

1

サーバー側でSpringまたはGuiceを使用している場合は、リクエスト/レスポンスをアクションに挿入できます。 DispatchServletModuleはGuiceのServletModuleとマップがハンドラクラスに URLを要求する拡張

:あなたはGWTPのDispatchServletModuleを使用しているかのようにたとえば、あなたがGuiceののServletModuleの機能を使用することができます。

ここGuice wikiからの例です:

@RequestScoped 
class SomeNonServletPojo { 

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

} 

私はGWTPはシングルトンスコープでハンドラをバインドするかどうかわかりません。シングルトンでバインドする場合は、代わりにProviderをインジェクトする必要があります。

関連する問題