JSP类实例成员

时间:2017-06-19 15:57:36

标签: java jsp singleton

假设存在具有以下内容的JSP

<%@ page import="com.example.MyClass" %>
<%
    MyClass myClass = new MyClass();
%>

它的翻译类似于

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

      // ...

      MyClass myClass = new MyClass();

有没有办法将myClass声明为已编译的JSP类实例成员,而不是实例方法的本地成员,以避免重复创建对象而不将MyClass重新设计为单例?

我想要像

这样的东西
private MyClass myClass = new MyClass();

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

    // ...

可以声明为静态成员吗​​?

1 个答案:

答案 0 :(得分:0)

如前所述,不要在JSP中使用实例变量,而是依赖于范围变量。

但是这里是一个如何在JSP中声明实例变量的例子:

<%!
private MyClass myClass = new MyClass();
%>

<%!...%>块内的任何内容都将被编写为JSP编译的类体。