大家都知道Servlet体系结构是建立在Java多线程机制之上的,也是其的优点。但是多线程就会造成不安全。
具体请看:http://www.yesky.com/334/1951334.shtml
其中也提到了三种解决方法:
1、实现 SingleThreadModel 接口
2、同步对共享数据的操作
3、避免使用实例变量前两种会影响性能。一般不会采用。但是用最后一种,就是说不使用VO向业务层传递数据,直接使用参数的形
式,表单中的数据少的时候还可以,如果要是多的话是不是太不合适了?
大牛们是不是有更好的方法。
具体请看:http://www.yesky.com/334/1951334.shtml
其中也提到了三种解决方法:
1、实现 SingleThreadModel 接口
2、同步对共享数据的操作
3、避免使用实例变量前两种会影响性能。一般不会采用。但是用最后一种,就是说不使用VO向业务层传递数据,直接使用参数的形
式,表单中的数据少的时候还可以,如果要是多的话是不是太不合适了?
大牛们是不是有更好的方法。
解决方案 »
- JAVA 新手请问JDK 和JRE什么区别?
- 怎样才能dtd文件放到myeclipse创建的项目中
- jsp生成xml文件,最好能给一个能运行的程序。
- 用Jfreechart 通过Batik 生成SVG图 如何为SVG添加鼠标事件
- 谁知道2008年元旦放假是怎么安排的?
- 求推荐一个可以嵌入的第三方文本编辑器控件,能够实现语法高亮等功能
- hibernate,2个线程查询id=1的实体,查出来的2个是同一个内存上还是不同的
- Jbuilder9里配置Tomcat5.0问题
- 初次学习struts,就碰到困难,希望大家帮忙!
- webservice
- Servlet里面跳转JSP页面报错。大家帮忙看一下
- SSH 框架 运行时错误
在Servlet代码中,使用synchronized解决全局变量线程安全问题~
public class MyServlet extends HttpServlet{
private int count;
public void doGet(){......addCount()...}
private synchronized int addCount(){
return count++;
}
}
原则上,可以让Servlet实现SingleThreadModel接口,组织多线程访问,但是在java的api中SingleThreadModel是deprecated的.
实现了SingleThreadModel,系统将所有的请求排队,一次只将一个请求转发给单个Servlet的实例.楼主的问题挺有意思的
1、为什么要针对Servlet进行开发呢?
2、java代码的性能影响对生产造成的影响有多大?你要在数据的准确性与性能上做取舍
3、上面的文章本来就是针对开发过程中的总结。