我在jspInit()和jspDestroy()上得到了一个错误

时间:2016-09-29 10:00:14

标签: eclipse jsp

在令牌" 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();
       }   

  }
%>

2 个答案:

答案 0 :(得分: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();
        }

    }
%>

答案 1 :(得分:0)

方法(您的案例中为jspInit()jspDestroy())必须在声明块中定义,而不是在scriptlet中定义。即<%!而非<%

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