请澄清有关Java Servlets的几点

时间:2010-05-07 16:25:06

标签: java tomcat servlets

假设我使用Tomcat作为Web容器。

在web-app / WEBAPPNAME

中找到所有servlet之后,这是真的吗?

是init(IALIZED),然后每个会话都会看到Servlet属性的每次更改。

因此,会话1将Servlet1的属性userName从“user1”更改为“user2”

会话1已关闭。

会话2开始。它会将“user2”视为Servlet1.userName属性的唯一值??

所有后续会话都会看到Servlet字段的任何更改?

servlet单身人士,不是吗?

2 个答案:

答案 0 :(得分:3)

  

所有后续会话都会看到Servlet字段的任何更改?

实际上是的。这就是为什么强烈建议不要将数据直接存储在servlet中,因为servlet不是线程安全的。相反,数据应存储在servlet上下文,会话或请求上下文中。

  

servlet单身人士,不是吗?

是的,在同一个servlet容器中每个配置的servlet都有一个实例的意义上。

答案 1 :(得分:2)

是的,只要您没有使用SingleThreadModel,在这种情况下可以是Servlet的多个实例。见e。 G。 http://docstore.mik.ua/orelly/java-ent/servlet/ch03_04.htm

无论如何,我不会依赖于此。以某种方式编写servlet会更好,他们不依赖于它。