需要在每次执行请求的之前设定一些值,在请求完以后清空,我采用的方法是添加一个过滤器,
根据当前线程把值放到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'
根据当前线程把值放到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'
解决方案 »
- 给出一个任意十进制的整数,转换成二进制输出。 用java编 急求
- 有关画图板的一些问题
- 一道java面试题
- 一个关于md5的问题
- 急,server用udp实现内网消息群发?
- 一道面试题
- 修改了applet后,再次编译后,用浏览器打开html文件,为什么修改后的不显示呢?
- 有关Checkbox的基础问题
- 用java,报表的问题怎么解决,有哪些常用的方案,请大家畅所欲言!
- MySql是不是只能用命令行才能建数据表?
- 请问requestDispatcher的forward方法如何传递参数。搜索了一下使用request.setAttribute()进行设置,好象不行, 详细代码内附。
- Foo是啥意思?
我修改了,可是还是一样,