[英]How many concurrent request does the websphere application server process (WAS 8.0)?
[英]How does JSP process concurrent requests?
我想我的问题是,一个JSP被编译成一个可处理多个请求的servlet实例。 如何使其成为线程安全的?
Servlet是不可变的。 在方法调用之外不存在任何状态(该Servlet是无状态的),或者任何此类状态都将永远不会改变(因此每个线程看到的状态始终是相同的)。
编写线程安全的servlet非常简单: 永远不要使用实例变量。 使用方法局部变量。
只是不要将请求/会话特定的数据分配为全局/静态变量。 因此,只要您不使用scriptlet声明<%! %>
<%! %>
分配了请求/会话特定的数据,并且没有将请求/会话数据放入应用程序范围(即作为ServletContext
属性),那么您很安全。
尝试以下操作:<%@页面isThreadSafe =“ true”%>
JSP被编译成servlet。 所有JSP变量都是方法局部(堆栈)变量,因此它们是线程安全的。
如果您直接将线程不安全属性添加到Servlet类,它将不再是线程安全的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.