关闭JSP时调用操作

时间:2010-08-04 20:30:13

标签: java jsp

我是java网络世界的新手,如果我说些蠢话,请原谅我。

我正在使用struts 2,当jsp关闭时,我需要删除一个文件(位于服务器上)。

有没有人知道怎么做?

提前致谢。

2 个答案:

答案 0 :(得分:7)

window.onunload建议很好,但无法保证ajax请求能够到达服务器。据我所知,只有某些具有某些配置的IE版本才能成功发送ajax请求。 Firefox和其他人不会这样做。然后我不讨论用户已禁用JS的情况。

你不想依赖它。而是挂钩会话到期。您可以在HttpSessionListenerHttpSessionBindingListener的帮助下,当它涉及会话的(现有)属性时执行此操作。

E.g。

public class CleanupSession implements HttpSessionListener {

    @Override
    public void sessionDestroyed(HttpSessionEvent event) {
        new File(somePath).delete();
    }

    // ...
}

(在web.xml注册为<listener>

或者,如果是“登录用户”示例(存储在会话范围中):

public void User implements HttpSessionBindingListener {

    @Override
    public void valueUnbound(HttpSessionBindingEvent event) {
        new File(somePath).delete();
    }

    // ...
}

答案 1 :(得分:2)

window.onunload上使用ajax调用删除文件的操作。