http://blog.csdn.net/elvis809...
这篇文章里说浏览器每刷新一次或者不同的浏览器浏览该页面,sum的值都会加1。
这就是线程不安全
我想到有状态和无状态的对象基本概念:
有状态对象(Stateful Bean),就是有实例变量的对象 ,可以保存数据,是非线程安全的。一般是prototype scope。
无状态对象(Stateless Bean),就是没有实例变量的对象,不能保存数据,是不变类,是线程安全的。一般是singleton scope。
那么问题来了,JSP生成的servlet是单例还是原型?
那个 sum 值是记录请求次数吗?JSP换个说法就是页面版的Servlet,JSP和Servlet根本就是一个东西,只是是不同的表现,看看生成JSP生成的Java代码就知道了。Servlet是无状态的,实例是应用容器创建
线程安全是指多个线程访问而不会冲突,单例是指对象实例只有一个,原型好像叫克隆更贴切,这都不适合servlet的使用场景