当前位置: 代码迷 >> Java Web开发 >> Servlet 成员变量有关问题,望大神特来指教
  详细解决方案

Servlet 成员变量有关问题,望大神特来指教

热度:65   发布时间:2016-04-16 22:00:25.0
Servlet 成员变量问题,望大神特来指教
Servlet 成员字段可能允许一个用户查看其他用户的数据, servlet中的成员字段是  spring 注入进来的,  是否 可以通过 设置scorp=prototype,解决这个安全问题
------解决方案--------------------
servlet在整个生命周期中只会被初始化一次,所以一般不会在servlet中使用成员变量的,没人敢用,spring注入的也不行吧,这好像是servlet的生命周期决定的,struts之所以可以那样是因为在struts的生命周期中,每次请求都会实例化一个新Action。

------解决方案--------------------
servlet不要有成员变量了,这违背了servlet是无状态的设计原则,会导致线程安全问题
------解决方案--------------------
spring 默认scope 是单例模式
这样只会创建一个Action对象
每次访问都是同一个Action对象,数据不安全
struts2 是要求 每次次访问 都对应不同的Action
 scope="prototype" 可以保证 当有请求的时候 都创建一个Action对象

从百度知道里找到的,不知道能不能解决你的问题。
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

servlet不要有成员变量了,这违背了servlet是无状态的设计原则,会导致线程安全问题


是啊, 但现在公司的这个项目 已经这样写了, 也需要这样写,看怎么解决这个不安全的问题

同步,加锁

性能消耗太大,不支持并发,  我就看 我说的那个办法 能否解决, 

我觉得用处不大,你可以在高并发的情况下测试下!
  相关解决方案