Jsp线程安全的含义

时间:2014-02-07 07:30:41

标签: java jsp java-ee servlets

JSP默认是线程安全的,但是当我们说

时是什么意思
  

JSP是线程安全的

2 个答案:

答案 0 :(得分:2)

当jsp创建时,它将成为应用程序服务器中的servlet。所有逻辑都从jspService方法运行,你在jsp中拥有的所有引用或变量都成为局部变量,这就是为什么默认情况下jsp可以被认为是线程安全的。

选中此link以查看jsp生命周期。

最后,jsp中的所有代码都在_jspService方法中。 JSP的所有内容都在里面。

public void _jspService(HttpServletRequest request,
HttpServletResponse response)
throws java.io.IOException, ServletException {

答案 1 :(得分:1)

JSP一般不是线程安全的! JSP被编译成servlet,一个实例可用于提供多个请求,因此每个类字段(在请求执行期间修改)都被认为不是线程安全的。如何在JSP中声明类字段?使用JSP声明:

<%! private Object notThreadSafe = new Object(); %>

(顺便说一句,你甚至可以在JSP声明中声明方法)。

如果不使用这些JSP声明,JSP可以是线程安全的。正如Koitoer所提到的那样,其他所有内容(html / jsp标记,scriptlet代码<% /* some code*/ %>,jsp表达式<%= "some expression" %>,...)都被编译成jspService方法。