2017-06-19 100 views
0

假設有一個JSP包含以下內容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

你可能想看看'application scope'。來自http://www.java-samples.com/showtutorial.php?tutorialid=1009:「** Application Scope ** 具有應用程序範圍的對象可以從駐留在同一應用程序中的JSP頁面訪問,從而創建一個全局對所有頁面都可用的對象。「 – Alexander

回答

0

如上所述,不要在JSP中使用實例變量,而應依賴於範圍變量。

但這裏是一個例子,如何在JSP聲明實例變量:

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

任何內部<%!...%>塊將被寫成JSP編譯的類體。