저는 자바 웹 세상을 처음 접합니다. 그래서 내가 바보 같은 말을하면 용서하십시오.JSP를 닫을 때 액션을 호출하십시오.
저는 struts 2와 함께 작업 중이며 jsp가 닫힐 때 파일 (서버에 위치)을 삭제해야합니다.
신체가 이것을하는 방법을 알고 있습니까?
미리 감사드립니다.
저는 자바 웹 세상을 처음 접합니다. 그래서 내가 바보 같은 말을하면 용서하십시오.JSP를 닫을 때 액션을 호출하십시오.
저는 struts 2와 함께 작업 중이며 jsp가 닫힐 때 파일 (서버에 위치)을 삭제해야합니다.
신체가 이것을하는 방법을 알고 있습니까?
미리 감사드립니다.
window.onunload
제안 사항은 좋지만 AJAX 요청이 서버에 도착한다는 보장은 없습니다. 아는 한, 특정 구성의 특정 IE 버전 만 ajax 요청을 성공적으로 전송합니다. Firefox와 다른 사람들은 그렇게하지 않을 것입니다. 그리고 나서 사용자가 JS를 사용할 수없는 경우에 대해서는 이야기하지 않습니다.
당신은 그것에 의지하고 싶지 않습니다. 오히려 세션 만료에 연결하십시오. HttpSessionListener
또는 HttpSessionBindingListener
의 도움으로 세션의 (기존) 속성과 관련된 작업을 수행 할 수 있습니다.
예.
public class CleanupSession implements HttpSessionListener {
@Override
public void sessionDestroyed(HttpSessionEvent event) {
new File(somePath).delete();
}
// ...
}
(세션 범위에 저장되어있는)에 "로그인 한 사용자"예의 경우
(a <listener>
로 web.xml
에 등록) 또는 :
public void User implements HttpSessionBindingListener {
@Override
public void valueUnbound(HttpSessionBindingEvent event) {
new File(somePath).delete();
}
// ...
}
window.onunload
에서 ajax를 사용하여 파일을 삭제하는 작업을 호출합니다.
미안 아직 투표 할 수 없지만 감사합니다. 시도해 보겠습니다. – Ecarrion
반갑습니다. 브라우저 창/탭이 닫히면 세션은 즉시 삭제되지 않습니다. 그 후 30 분 동안 지속됩니다. 그러나 적어도 파일을 삭제하는 가장 확실한 방법입니다. – BalusC
삭제해야하는 파일은 사용자에 따라 다르며 새 클래스를 정의해야하므로 메소드에 어떤 파일을 삭제할지 알리는 데 문제가 있습니다. – Ecarrion