代码之家  ›  专栏  ›  技术社区  ›  Ecarrion

关闭JSP时调用操作

  •  4
  • Ecarrion  · 技术社区  · 16 年前

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

    有人知道怎么做吗?

    2 回复  |  直到 10 年前
        1
  •  7
  •   BalusC    16 年前

    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();
        }
    
        // ...
    }
    
        2
  •  2
  •   Bozho    16 年前