关闭JSP时调用操作

Eca*_*ion 4 java jsp

我是java网络世界的新手,所以如果我说一些愚蠢的话,请原谅我.

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

有没有人知道怎么做?

提前致谢.

Bal*_*usC 7

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

你不想依赖它.而是挂钩会话到期.您可以借助于HttpSessionListener或者HttpSessionBindingListener当它涉及会话的(现有)属性时执行此操作.

例如

public class CleanupSession implements HttpSessionListener {

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

    // ...
}
Run Code Online (Sandbox Code Playgroud)

(注册web.xml为a <listener>)

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

public void User implements HttpSessionBindingListener {

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

    // ...
}
Run Code Online (Sandbox Code Playgroud)