关于java的监听问题(不是servlet的监听):如何监听一个方法已经执行完成?

起因:项目用j2ee做,业务数据量很大,后台将查询出的数据拼成excel(此过程很耗时间),将excel打zip包传给前台。

用户执行了查询操作,但是这个操作要40分钟后才能执行完毕,并且用户不希望一直在页面前等待,而且有可能关闭浏览器,所以用户再次打开浏览器时无法知道上次操作是否完成,所以我想:

写一个监听类,来监听我 “查询方法” ,用户再次执行查询方法后,我的监听类会根据“后台将查询出的数据拼成excel(此过程很耗时间)”是否完成,来返回给用户一个说明信息,让用户大致知道自己执行操作的进度。

项目用的是struts1.2,本来我想在我的查询类里面添加一个公共静态变量,然后查询方法执行的结尾来改变这个静态变量的值,之后我有一个线程来监视这个变量,一旦这个变量的值改变,则说明我的查询方法执行结束了,可是对于struts1.2来说,当然,我很多高级功能都还不会用,struts1.2的页面每出发一个request请求到后台的action时好像就要 new Action ,也就是说,Action 里面的 查询 方法可能又被再一次执行了。

希望大家给个提示。
非常感谢。

就算你new Action
你的类静态变量也不会受其影响