2012-02-14 3 views
1

저는 초급자입니다. 제품 목록을 표시하는 응용 프로그램을 만들고 싶습니다. 그러면 선택한 제품의 세부 정보가 표시됩니다. 제 질문은 페이지를 제품 세부 정보 페이지로 새로 고치는 방법입니다. 새로 고침 보안 조치를 존중하면서, 분명히 나는 ​​요청에 제품의 ID를 전달하고 싶지 않아요. 세션에 ID를 저장하는 방법에 대해 생각했지만 RPC의 응답 시간이 길면 응용 프로그램의 성능에 영향을 줄지는 모르겠습니다.gwtp에서 페이지 새로 고침을 허용하는 가장 좋은 방법은 무엇입니까?

이에 대한 도움이나 설명이 도움이 될 것입니다.

+0

정확히 무엇이 문제입니까? 목록에서 제품을 클릭 할 때 세부 정보 페이지를 표시하는 방법을 알고 싶습니까? 예를 들어 F5를 클릭하여 사용자가 브라우저를 새로 고칠 때 동일한 세부 정보 페이지를 표시하는 방법을 알고 싶습니까? –

+0

사용자가 브라우저를 새로 고침하고 보안 조치를 존중할 때 동일한 세부 정보 페이지를 표시하는 방법을 원합니다 (예 : 사용자가 속한 제품을 표시 할 수 없음). – user405458

답변

0

GWT의 Cookie Support을 사용하는 것이 좋습니다. 제대로 구현하면, 그들이 무엇을하고 있는지 정확히 알 수 있습니다. 쿠키는 분명히 클라이언트 쪽이므로 RPC보다 항상 빠릅니다.

+0

보안은 어떻습니까? 클라이언트가 쿠키를 변경 한 다음 페이지 세부 정보를 새로 고쳐서 속하지 않은 제품을 표시 할 수 있습니까 ?? – user405458

+2

@ user405458 ** 규칙 # 1 : 클라이언트로부터 얻은 것을 절대 신뢰하지 마십시오. ** 쿠키를 변경했다고 가정해야합니다. 무슨 일이 있어도 사용자가 요청한 것을 할 수있는 권한이 있는지 여부를 서버 측에서 확인해야합니다. 이 규칙은 클라이언트 자바 스크립트가 요구하는 모든 것에도 적용됩니다. 모든 사용자가 악의적 인 사용자라고 가정하고 모든 내용의 유효성을 검사하고 아무 것도 신뢰하지 않아야합니다. –

0

나는 .... 몇 가지 조언을하지만 난뿐만 아니라 GWTP 상당히 새로운 해요 인식

보안

통신은 SSL/HTTPS를 통해 개최한다. 서블릿 컨테이너 (web.xml)를 사용하여 내 앱 전체에 걸쳐 넣어서 내 앱의 GWT가 아닌 부분과 잘 맞도록 통합합니다.

'id'를 넣는 데는 문제가 없습니다. in a 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); 
} 
... 

내 애플에는 목록 항목이 선택되지 않은 경우 기본적으로 표시되는 '빈 양식'발표자가 있습니다. 이렇게하면 목록 및 부모 발표자가 'place'(token이 필요함)이되지 않습니다. 발표자 계층의 리프 발표자 만 '장소'여야합니다.

관련 문제