2009-06-12 5 views
2

애플릿을 텍스트 파일에 작성하려고합니다. 내 인증서로 보안 문제를 극복했다고 생각하지만 텍스트 파일은 출력을받지 못합니다.서명 된 Java 애플릿을 텍스트 파일에 작성

내 애플릿은 tomrenn.com/fallball에서 볼 수 있으며 인증서를 신뢰하는지 확인해야합니다.

애플릿이 웹 호스팅 된 콘텐츠의 텍스트 파일에 쓸 수 있는지 확신 할 수 없으므로 가능한지 묻습니다. 그렇지 않은 경우 적어도 로컬 시스템에서이를 수행 할 수 있어야합니다. FileOutputStream을 사용했지만 선생님은 아주 기본적인 출력 방법을 권장했습니다.

public void writeToFile() 
{ 
    try { 
    java.io.File file = new java.io.File("highscores.txt"); 
    java.io.PrintWriter output = new java.io.PrintWriter(file); 
    output.print(name + " " +score); 
    output.close(); 
    } catch (IOException e) { 
    System.err.println ("Unable to write to file"); 
    System.exit(-1); 
    } 
} 

이것은 구현할 것이 아니며 출력을 얻는 지 확인하려는 것입니다. 내 질문을 검토해 주셔서 감사합니다!

답변

3

애플릿에서 서버의 파일 시스템에 직접 쓸 수 없습니다. 서 v가 자체 파일 시스템에 기록하도록 요구하는 서 v에 요청을 _ 행할 수 있지만, 애플릿에는 원 격 시스템의 파일 시스템에 쓸 수있는 f}이 없습니다. (물론 NFS가 마운트되어 있지 않다면) 그런 요청을하기 위해, 예를 들어 Apache HttpClient을 사용하여 HTTP 요청을 발행 할 수 있습니다. 이것은 당신이 찾고있는 것보다 더 무거울 수 있습니다. 클라이언트가 서버에 POST를 실행하여 "This is my high score"라고 말하고 서버가 높은 점수를 관리하게 할 수도 있습니다.

서명 된 애플릿에는 애플릿을 실행하는 사람의 로컬 파일 시스템에 쓸 수있는 모든 권한이 있습니다. "절대 경로"가 아닌 "현재 디렉토리"에 쓰는 경우, 애플릿이 실행중인 디렉토리를 확인하십시오. 그렇지 않으면 실제로 파일을 만들지 만 찾을 수 없습니다!

1

애플릿은 클라이언트에서 실행되므로 서버 디스크에 액세스 할 수 없습니다. 게시 한 코드가 클라이언트 로컬 디스크에 기록됩니다. 파일을 저장하려는 디렉토리를 지정하기 위해 변경하는 것이 좋습니다. 당신이 애플릿이 javax.jnlp.PersistenceService 사용할 수 6u10에서 로컬 컴퓨터에 데이터를 저장하려면 사용자 홈 디렉토리는

java.io.File file = new java.io.File(System.getProperty("user.home"), "highscores.txt"); 
2

위한 좋은 장소를 보일 수있을 것입니다. 안전한 "서명 된 애플릿"을 만드는 것은 어렵습니다. 누구에게도 추천하지 않습니다.

+0

@finnw 애플릿에 서명하면 튜토리얼을 따라 할 수 있습니다. "서명 된 애플릿"이 안전한지 확인하는 것은 다소 까다 롭습니다 (6 월 19 일 이후 가능). –

+0

@Tom Hawtin, 무슨 뜻인지 설명해주세요. – finnw

+0

@finnw 보안은 어렵습니다. 자동으로 발생하지는 않습니다. –

1

애플릿에만 서명하십시오. netbeans를 사용하면 쉽습니다.

  1. netbeans에서 프로젝트를 엽니 다.
  2. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하면 새 창이 열립니다.
  3. > 해당 창에서 application> webstart로 이동하십시오.
  4. check enable webstart.
  5. 서명시 사용자 정의 버튼을 누르고 "생성 된 키로 자체 서명"을 선택하십시오.
  6. "애플릿 설명자"를 선택하고 애플릿을 대상으로 지정하십시오.
  7. ok를 누릅니다.

  8. 프로젝트를 다시 빌드 프로젝트에 JNLP를 통해 애플릿을 실행하기 위해 DIST 디렉토리를

  9. 사용 "launch.html을"(지금은 모든 권한을 가진 인증서를 생성합니다 넷빈즈).

그게 전부입니다.

** 중고 netbeans 버전 = 7.0 ** 중고 JDK = 1.6 ** 인증서는 6 개월 후에 만료됩니다.

감사합니다.