struts是线程安全,并不是指多线程,而是指单态,当多个用户访问一个请求的时候,服务器内存中只有一个与之对应的action类对象,execute方法加上了同步关键字,如果你在action里加上一个全局变量,那么,多个客户访问的时候,这个变量是共有的,即一个客户修改了他,下一个客户获得的变量是修改后的,你可以写个demo来测试,至于多线程只是服务器在相应客户端请求时对于session的处理,并不是指struts action Spring的MVC model类似于Struts。在多线程服务对象这点上,Spring的Controller类似于Struts Action,只有一个实例处理所有客户请求。 以上两点在今天才知道,惭愧啊。 如果在一个struts的Action或spring的Controller中使用了一个全局变量(类成员变量的话),当不同用户访问同一个action时,就会发生错误! 因为如上所述,服务器内存只有一个action类对象。恐怖啊! 唉,之前以为多线程的话就会在服务器为每个线程创建一个action对象呢~!!!! 狂晕
相关文章
- 关于整合hibernate4和spring3的相关注意事项
- 关于struts2种的action运行两次,或多次,或反复运行的bug
- 关于struts2中filter过滤后,转发到action中 URL地址的问题
- 关于mybatis的参数2个使用经验(类似于struts2的通配所有页面的action配置,xmlsq语句参数类型为基本类型时的快捷指定办法)
- 关于Spring MVC在Controller层中注入request的坑详解
- ASP.NET实现MVC中获取当前URL、controller及action的方法
- struts2 注解方式注册action中 namespace 的注意事项
- 关于struts2框架中Action与servlet API中解耦的个人理解
- 关于Spring 事务管理传播属性的配置及作用-嵌套事务
- 关于Spring在多线程下的个人疑问