为什么同时访问Servlet会出异常呀? 因为Servlet是线程模式的,要注意同步;数据库操作也要注意同步。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这样做有点多余了,Servlet本身是基于线程的,如果你的应用服务器用的是Weblogin6.0以上的话,你可建立数据库连接沲,在Servlet中通过t3服务去取到Connection,然后操作数据库,对于不同的用户Servlet会用不同的线程去处理的. 你如果用应用服务器(Weblogic、WebSphere等)的数据库连接沲,已经处理了同步啦! 还有一种情况就是可能数据库的问题比如Oracle的试用版限定了用户数所以做好用户在执行完的时候实现垃圾收集 正因为servlet是线程模式的,所以才会出现问题。线程是什么,线程不是一个存储区域,线程没有自己的存储区域,这些区域是进程拥有的,是你在程序里面指定的。具体到servlet,一般情况下,每个servlet只会创建一个实例,假如servlet定义了类变量,这些变量都只有一个拷贝。当大家都访问这个实例的方法的时候--这个大家,就是指不同地方来的请求的线程了--哪个类变量的拷贝就会被折腾来折腾去,很容易颠出一身病。SingleThreadModel是一种解决方案,但是这种方案从名字看上去就不是一种好的解决办法。比较好的是把类变量放到doXXX里面去,这样这些变量会在每个线程进入doXXX的时候创建,互相就不会干扰了。 谢谢你 alou()你说得很有道理下次再给分吧...... jspSmartUpload下载中文名的文件,求指教 页面首次运行是加载数据 jsp页面中如何加入https连接 jsp页面中参数的传递 弱问个事务的问题 大哥们!!帮帮忙啊!我不知道到底哪里出错了?在线等您!!! myeclipse快捷键 菜问:HttpServletRequest.getQueryString()的作用是什么? 请问用servlet如何实现棋盘游戏? JSP 实现用户账号密码初始化 求助!怎么把Weblogic6.1启动是密码输入这个步骤去掉呀??? 关于 jBoss & tomcat的问题
用的是Weblogin6.0以上的话,你可建立数据库连接沲,在Servlet中通过t3
服务去取到Connection,然后操作数据库,对于不同的用户Servlet会用
不同的线程去处理的.
比如Oracle的试用版限定了用户数
所以做好用户在执行完的时候实现垃圾收集
线程是什么,线程不是一个存储区域,线程没有自己的存储区域,这些区域是进程拥有的,是你在程序里面指定的。
具体到servlet,一般情况下,每个servlet只会创建一个实例,假如servlet定义了类变量,这些变量都只有一个拷贝。当大家都访问这个实例的方法的时候--这个大家,就是指不同地方来的请求的线程了--哪个类变量的拷贝就会被折腾来折腾去,很容易颠出一身病。
SingleThreadModel是一种解决方案,但是这种方案从名字看上去就不是一种好的解决办法。比较好的是把类变量放到doXXX里面去,这样这些变量会在每个线程进入doXXX的时候创建,互相就不会干扰了。
你说得很有道理
下次再给分吧......