紧急求救,关于weblogic过滤器的小问题,谢谢!奖励500分
需要在每次执行请求的之前设定一些值,在请求完以后清空,我采用的方法是添加一个过滤器,
根据当前线程把值放到HASHMAP中,在结束以后根据当前线程清空,
现在遇到的问题是:我在过滤器执行前根据当前线程把值放到HASHMAP中,可是在过滤器执行后,没办法根据当前线程清空-----------
我在tomcat中不会出现这种情况,而在weblogic8.1出现
web.xml配置
<filter>
<filter-name>YearDataManageFilter</filter-name>
<filter-class>filters.YearDataManageFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>YearDataManageFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
过滤器中代码
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("Filter中的当前线程前1====》:"+Thread.currentThread());
//安装对象
YearAboutDataUtil inst = YearAboutDataUtil.getInstance();
inst.installYearRefValue(request);
System.out.println("the daliy-=----------------1 \\\\\\\\\\n");
//chain.doFilter(request, response);
System.out.println("Filter中的当前线程后2====》:"+Thread.currentThread());
//卸载对象
System.out.println("the daliy-=----------------2 \\\\\\\\\\n");
System.out.println("the dalily thread count:" + Thread.activeCount());
System.out.println("the dalily thread count:" + Thread.currentThread().getName());
System.out.println("the dalily thread count:" + Thread.currentThread().getContextClassLoader());
inst.removeHashMapKey();
}
输出结果为:
Filter中的当前线程前1====》:Thread[ExecuteThread: '12' for queue: 'default',5,Thread Group for Queue: 'default']
the daliy-=----------------1 \\\\\n
Filter中的当前线程前1====》:Thread[ExecuteThread: '12' for queue: 'default',5,Thread Group for Queue: 'default']
the daliy-=----------------1 \\\\\n
Filter中的当前线程前1====》:Thread[ExecuteThread: '12' for queue: 'default',5,Thread Group for Queue: 'default']
the daliy-=----------------1 \\\\\n
Filter中的当前线程前1====》:Thread[ExecuteThread: '12' for queue: 'default',5,Thread Group for Queue: 'default']
the daliy-=----------------1 \\\\\n
Filter中的当前线程后2====》:Thread[ExecuteThread: '12' for queue: 'default',5,Thread Group for Queue: 'default']
the daliy-=----------------2 \\\\\n
the dalily thread count:15
the dalily thread count:ExecuteThread: '12' for queue: 'default'
the dalily thread count:weblogic.utils.classloaders.ChangeAwareClassLoader@239525 finder: weblogic.utils.classloaders.MultiCl
3 annotation: nhad@nhad
Filter中的当前线程后2====》:Thread[ExecuteThread: '12' for queue: 'default',5,Thread Group for Queue: 'default']
the daliy-=----------------2 \\\\\n
the dalily thread count:15
the dalily thread count:ExecuteThread: '12' for queue: 'default'