大家都知道servlet是单实例,那么filter中如果定义成员变量,会不会出现像servlet一样的结果呢.
解决方案 »
- 远程读取网页代码出现java.net.SocketException: Permission denied: connect
- 为什么GBK无法解决,UTF-8反而解决了
- JSP开发的网页可以下载,但是下载的文件出错!!
- eWebEditor编辑器在Linux下显示乱码,兄弟姐妹们近来帮忙啊
- 在tomcat里如何配置server.xml
- <a href="showdoc.jsp?id=<%=j2se_rs.getObject("id")%>"><%=j2se_rs.getObject("title")%></a>这样写不行
- applet数据库访问出问题了。。。。急啊!
- 大家有没有谁用过Tapestry的,用过的有感触的来交流一下。
- 怎样在jsp网业中保存住我的checkbox的选项.
- 我是东东树的妹妹,我有问题要问大家.关于access数据库的存放路径问题?
- severlet如何获得jsp页面中form传递的参数
- 谁有jquery+json树来着?发一个上来吧
this.filterConfig = null;
} public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
this.chain = chain;
this.req = (HttpServletRequest) request;
this.res = ((HttpServletResponse) response);如果这样写,一定会出问题咯?
servlet肯定是单事例.在服务器启动的时候或者调用的时候创建一次.
还有1000个人请求一个对象不行吗?调用跟同步是不一样的.c语言的双重检查机制没看过把.
除非你把对象同步了.那么要排队.就这样还专家?
由于服务器内部对所有过滤器生成过滤链,并在服务启动的时候构建,所以只有一个事例.上面的写法一定会有多线程的并发问题.但是用线程安全的集合容器就可以避免成员变量被并发覆盖.但是调用的时候的并发依然存在.因为java无法在多线程的情况下无法确定哪个线程先调用方法.关于调用的并发可以参考<<java模式>>双重检查机制一章.但是这样的并发实在是太少,所以除了struts的action是单例之外,其他的前台框架,如spring都将并发忽略了