我是java网络世界的新手,如果我说些蠢话,请原谅我。
我正在使用struts 2,当jsp关闭时,我需要删除一个文件(位于服务器上)。
有没有人知道怎么做?
提前致谢。
答案 0 :(得分:7)
window.onunload
建议很好,但无法保证ajax请求能够到达服务器。据我所知,只有某些具有某些配置的IE版本才能成功发送ajax请求。 Firefox和其他人不会这样做。然后我不讨论用户已禁用JS的情况。
你不想依赖它。而是挂钩会话到期。您可以在HttpSessionListener
或HttpSessionBindingListener
的帮助下,当它涉及会话的(现有)属性时执行此操作。
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调用删除文件的操作。