Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 关闭JSP时调用操作_Java_Jsp - Fatal编程技术网

Java 关闭JSP时调用操作

Java 关闭JSP时调用操作,java,jsp,Java,Jsp,我是java web世界的新手,所以如果我说了一些愚蠢的话,请原谅我 我正在使用struts 2,当jsp关闭时,我需要删除一个文件(位于服务器上) 有人知道怎么做吗 提前感谢。在调用时,使用ajax,这是一个删除文件的操作。窗口。onunload建议很好,但不能保证ajax请求会击中服务器。据我回忆,只有具有特定配置的特定IE版本才能成功发送ajax请求。Firefox和其他浏览器不会这么做。然后,我不会谈论用户禁用JS的情况 你不想依赖它。而不是挂在会话到期上。您可以在会话的一个(现有)属性

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

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

有人知道怎么做吗


提前感谢。

在调用时,使用ajax,这是一个删除文件的操作。

窗口。onunload建议很好,但不能保证ajax请求会击中服务器。据我回忆,只有具有特定配置的特定IE版本才能成功发送ajax请求。Firefox和其他浏览器不会这么做。然后,我不会谈论用户禁用JS的情况

你不想依赖它。而不是挂在会话到期上。您可以在会话的一个(现有)属性的帮助下或可能在它涉及会话的一个(现有)属性时这样做

例如

(在
web.xml
中将其注册为

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


不客气。请记住,关闭浏览器窗口/选项卡时不会立即导出会话。默认情况下,它将持续30分钟。但这至少是确保文件被删除的最可靠的方法。我需要删除的文件取决于用户,而且由于我必须定义一个新类,我在告诉方法删除什么文件时遇到了问题。您可以将其作为
用户
类的属性。
User
类当然应该代表登录的用户。总之,您基本上需要在会话中直接存储对
文件的引用。
public class CleanupSession implements HttpSessionListener {

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

    // ...
}
public void User implements HttpSessionBindingListener {

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

    // ...
}