2011-09-09 5 views
1

사용자가 파일을 만들고 수정할 수있게 해주는 webapp를 프로그래밍해야합니다.현재 편집 된 파일 목록 저장

해당 파일은 서버에 저장됩니다. 이 앱에는 주로 두 페이지가 있습니다. 첫 번째 페이지는 사용자가 볼 수있는 파일을 나열합니다. 사용자가이 목록의 항목 중 하나를 클릭하면 두 번째 페이지로 이동하여 파일을 편집 할 수 있습니다.

내 문제는 간단합니다. 두 번째 페이지의 다른 사용자가 현재 수정하고있는 파일의 첫 페이지 (모든 파일 목록)에는 볼 수 없습니다. Struts 1을 사용하는 Java EE에 응용 프로그램이 있습니다 (이에 대해서는 결정하지 않았습니다).

예를 들어, 현재 열어 놓은 모든 파일을 등록 할 수있는 정적 목록 사용을 고려했습니다. 나는 사용자가 파일을 클릭하고 편집 할 때 파일을 목록에 넣을 것이다. 이상적인 세계에서 사용자가 작업을 저장하거나 목록으로 돌아 가면 목록에서 파일을 제거합니다. 그러나 :

  1. 이 스레드 안전 사용자가 단지 브라우저를 종료하면 어떻게
  2. 되지 않는 이유는 무엇입니까?

이 문제를 해결하기 위해 어떤 방법으로 진행하겠습니까?

+0

Struts 1을 아직 사용하지 않기로 결정했다면 Struts 1을 사용하지 마십시오. 그런 오래된 기술을 고의로 선택할 이유가 없습니다. Struts 2, Spring-MVC, Grails를 사용하십시오. –

+0

내가 선택의 여지가 있다면, 물론 더 새로운 기술을 도입했을 것이다. 불행히도, 나는이 일을해야만합니다. (그리고 개선하고자하는 소프트웨어의 절반은 COBOL-to-Java 자동 생성 클래스로 구성됩니다 ...) – Raveline

답변

3

스레드 안전성이이 시나리오에 쉽게 추가됩니다. 더 중요한 문제는 파일을 편집하는 사용자가 사라지거나, 브라우저를 닫고, 집안을 불 태우거나, 불을 피우면 파일을 자동으로 잠금 해제해야한다는 것입니다. 정기적으로 브라우저에서 보낸 일종의 새로 고침 명령과 함께 파일 자동 릴리스가이 문제를 해결할 수 있습니다.

+0

"스레드 안전성이 해당 시나리오에 쉽게 추가됩니다"- 간단한 동기화로? 새로 고침 명령의 아이디어는 좋지만 비동기 자바 스크립트를 사용해야한다는 의미는 아닙니다. (어리석은 그대로, 나는 사용할 수 없습니다 ...). – Raveline

+0

예, 목록의 액세스를 동기화하고 여러 사용자가 동시에 파일을 편집하지 못하도록 파일을 추가하기 전에 목록에 파일이 있는지 확인해야합니다. 사용자가 밀리 초 전에 다른 사용자가 편집을 시작한 파일을 편집하려고 시도한 경우 파일을 클릭했을 때 사용할 수 있었던 경우에도 해당 사용자에게 오류 메시지를 표시해야합니다. – Bombe

0

okey 데이터베이스에 테이블을 유지하면 현재 열려있는 파일이 편집을 위해 포함되고 두 번째 페이지에서 자바 스크립트를 사용하여 사용자가 페이지를 편집하는 경우 추적을 계속할 수 있습니다. 파일을 제거하고 첫 페이지로 사용자를 리디렉션하는 서버에 대한 호출이 도움이되기를 바랍니다.