私はgwtpの初心者で、製品のリストを表示するアプリケーションを構築したいと考えています.クリックすると、選択した製品の詳細が表示されます.セキュリティ対策のため、リクエストで製品の ID を渡したくありません。ID をセッションに保存することを考えましたが、RPC の応答時間が長いため、アプリケーションのパフォーマンスに影響するかどうかはわかりません。
これに関するヘルプまたは説明をいただければ幸いです。
私はgwtpの初心者で、製品のリストを表示するアプリケーションを構築したいと考えています.クリックすると、選択した製品の詳細が表示されます.セキュリティ対策のため、リクエストで製品の ID を渡したくありません。ID をセッションに保存することを考えましたが、RPC の応答時間が長いため、アプリケーションのパフォーマンスに影響するかどうかはわかりません。
これに関するヘルプまたは説明をいただければ幸いです。
GWTのCookieサポートの使用を検討することもできます。適切に実装すれば、彼らが最後に何をしていたかを常に正確に知ることができ、彼らをそこに戻すことが容易になります。Cookieは明らかにクライアント側であるため、RPCよりも常に高速になります。
いくつかのアドバイスがありますが、私もGWTPにかなり慣れていないことに注意してください....
安全
通信は SSL/HTTPS 経由で行う必要があります。サーブレット コンテナー ( web.xml )を使用してアプリ全体に配置し、アプリの GWT 以外の部分とシームレスに統合できるようにしました。
「id」を url に入れることに問題はありません。PlaceManager.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);
}
...
私のアプリには、リスト項目が選択されていないときにデフォルトで表示される「空のフォーム」プレゼンターがあります。これにより、リストと親プレゼンターが「場所」になることを防ぎます (トークンが必要です)。プレゼンター階層のリーフ プレゼンターのみが「場所」になる必要があります。