servlet的具体实现机制不是很了解,不过可以确定的是,在servlet的doGet和doPost外定义的变量,是常驻内存的,下次启动这个servlet,只是启动了这个servlet里的doGet或者doPost方法,而对变量没有重新进行初始化。
比如,在servlet中有这样一个变量:
private Hashtable btTable = new Hashtable();
每次用户提交一次执行BookTundish的请求,在前台界面生成这个用户的ID,一并传给servlet,在servlet中做如下操作:
BookTundish bookTundish = new BookTundish();
btTable.put(taskID, bookTundish);
把新建的后台类bookTundish和用户ID存入btTable中,则在前台轮询该任务的进度的时候,可以指定ID查询,而不会与其他人提交的同样的任务产生冲突了
BookTundish bookTundish = btTable.get(taskID);
String exceptionString = bookTundish.getException();