【发布时间】:2011-03-25 11:40:10
【问题描述】:
我是Java网络世界的新手,如果我说一些愚蠢的话,请原谅我。
我正在使用 struts 2,当 jsp 关闭时,我需要删除一个文件(位于服务器上)。
有没有人知道如何做到这一点?
提前致谢。
【问题讨论】:
我是Java网络世界的新手,如果我说一些愚蠢的话,请原谅我。
我正在使用 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();
}
// ...
}
(在web.xml注册为<listener>)
或者,如果是“登录用户”示例(存储在会话范围内):
public void User implements HttpSessionBindingListener {
@Override
public void valueUnbound(HttpSessionBindingEvent event) {
new File(somePath).delete();
}
// ...
}
【讨论】:
User 类的属性。 User 类当然应该代表登录用户。总而言之,您基本上需要在会话中直接存储对File (in) 的引用。
在 window.onunload 调用时,使用 ajax 删除文件的操作。
【讨论】: