2012-02-14 16 views
1

私はgwtpの初心者です。製品のリストを表示するアプリケーションを作成したいのですが、をクリックすると、選択した製品の詳細が表示されます。 私の質問はページを更新する方法です。セキュリティ対策を尊重しながらリフレッシュすることは、明らかに私は要求の中で製品のIDを渡すことを望んでいません。 セッションにIDを格納することを考えましたが、RPCの応答時間が長いためにアプリケーションのパフォーマンスに影響するかどうかはわかりません。gwtpでページを更新できるようにするにはどうすればよいですか?

これに関する助けや説明があれば幸いです。

+0

あなたの問題は何ですか?リストから製品をクリックしたときに詳細ページを表示する方法を知りたいのですか、ユーザーがブラウザを更新したときに同じ詳細ページを表示する方法を知りたいですか? –

+0

ユーザーがブラウザーをリフレッシュしてセキュリティー対策を尊重しているときに、例えば、ユーザーが所属していない製品を表示できない場合に、同じ詳細ページを表示する方法を知りたい。 – user405458

答えて

0

GWTのCookie Supportを使用することをおすすめします。適切に実装されていると、あなたはいつも正確に何をやっていたのか分かり、そこに戻すのは簡単になります。クッキーは明らかにクライアント側であるため、RPCよりも常に高速になります。

+0

セキュリティはどうですか? クライアントはCookieを変更し、ページの詳細を更新して、属していない製品を表示できますか? – user405458

+2

@ user405458 **ルール#1:あなたがクライアントから得たものは絶対信用しないでください。**あなたは彼らがクッキーを変更したと仮定するべきです。何があっても、ユーザーが求めていることを行うためのアクセス権があるかどうかをサーバー側で確認する必要があります。このルールは、クライアントのjavascriptが要求するものにも適用されます。すべてのユーザーが悪意のあるユーザーであり、すべてを検証し、何も信頼しないと想定する必要があります。 –

0

私はいくつかのアドバイスを持っているが、私は同様にGWTPにかなり新しいです注意してください....

セキュリティ

通信は、SSL/HTTPSを介して行われるべきです。サーブレットコンテナ(web.xml)を使って私のアプリケーション全体に渡して、私のアプリのGWT以外の部分と一見無関係に統合します。

「id」を入れても問題はありませんin a urlPlaceManager.revealPlace(PlaceRequest, boolean)と表示されないようにすることができます。

作曲ビュー

私は左右の編集フォーム上のエンティティのリストとの見解を持っています。リストが常に表示され、親プレゼンターによって明示的に「スロット」に配置されています

public class Users extends Presenter<Users.View, Users.Proxy> { 
@ContentSlot 
public static final GwtEvent.Type<RevealContentHandler<?>> LIST_SLOT = new GwtEvent.Type<RevealContentHandler<?>>(); 
@ContentSlot 
public static final GwtEvent.Type<RevealContentHandler<?>> FORM_SLOT = new GwtEvent.Type<RevealContentHandler<?>>(); 
@Inject 
private UserList userList; 

@Inject 
public Users(EventBus eventBus, View view, Proxy proxy) { 
    super(eventBus, view, proxy, Configuration.SLOT); 
} 

@Override 
protected void onReveal() { 
    super.onReveal(); 
    setInSlot(LIST_SLOT, userList); 
} 
... 

マイアプリには、リストの項目が選択されていない時にデフォルトで表示される「空フォームのプレゼンターを持っています。これにより、リストと親のプレゼンターが 'place'(tokenを必要とする)にならないようにします。プレゼンター階層のリーフプレゼンターだけが「プレース」でなければなりません。

関連する問題