Jsp线程安全的含义

4
JSP默认是线程安全的,但是当我们说JSP是"thread-safe"时,这是什么意思呢?

https://dev59.com/61DTa4cB1Zd3GeqPFwug - Raúl
2个回答

2
当创建一个JSP时,它会在应用服务器中变成一个servlet。所有的逻辑都从jspService方法运行,你在JSP中拥有的所有引用或变量都变成了局部变量,这就是为什么JSP默认可以被认为是线程安全的原因。
点击此链接查看JSP生命周期。
最终,你在JSP中编写的所有代码都将位于_jspService方法中。你的JSP的所有内容都将在其中。
public void _jspService(HttpServletRequest request,
HttpServletResponse response)
throws java.io.IOException, ServletException {

1
一般情况下,JSP不是线程安全的! JSP被编译成servlet,并且一个实例可以用于服务多个请求,因此在请求执行期间修改的每个类字段都被认为是不线程安全的。您如何在JSP中声明类字段?使用JSP声明: <%!private Object notThreadSafe = new Object(); %> (顺便说一句,您甚至可以在JSP声明中声明方法)。
如果您不使用这些JSP声明,则JSP可以是线程安全的。其他所有内容(html / jsp标记,脚本代码<%/* some code*/%>,jsp表达式<%=“some expression”%>等)都将被编译为jspService方法,正如Koitoer所提到的那样。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接