2016-09-29 26 views
0

在令牌「jspInit」上顯示一些語法錯誤,AnnotationName應該在該令牌之後顯示,而語法錯誤在令牌「jspDestroy」上顯示,AnnotationName應該在此令牌之後。我在jspInit()和jspDestroy()處得到錯誤

<% connection con; 
    public void jspInit() { 
    try{ 
     Class.forName("Oracle.jdbc.driver.OracleDriver"); 
     con= DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","tiger"); 
     } 
    catch(SQLException sqle){ 
    sqle.printStackTrace(); 
    } 
    } 
    public void jspDestroy() { 
     try{ 
     con.close(); 
     } 
     catch(SQLException sqle){ 
     sqle.printStackTrace(); 
     } 

    } 
%> 

回答

0

的方法(在你的情況jspInit()jspDestroy())具有在聲明塊中定義,而不是在一個scriptlet。即<%!而不只是<%

<%! connection con; 
    public void jspInit() { 
    // ... 
    } 
%> 
1

首先,我不建議在JSP頁面中編寫java代碼。

您需要使用聲明語法(<%! ... %>):不scriptlet而

<%! 
     public String yourMethod() { 
      // 
     } 
    %> 

你的代碼應該是這樣的

<%! 
    Connection con; 
    public void jspInit() { 

     try{ 
      Class.forName("Oracle.jdbc.driver.OracleDriver"); 
      con= DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","tiger"); 
     } 
     catch(SQLException sqle){ 
      sqle.printStackTrace(); 
     } catch (ClassNotFoundException e) { 
      e.printStackTrace(); 
     } 
    } 

    public void jspDestroy() { 
     try{ 
      con.close(); 
     } 
     catch(SQLException sqle){ 
      sqle.printStackTrace(); 
     } 

    } 
%>