Запуск нескольких функций с использованием JSP - PullRequest
0 голосов
/ 27 декабря 2011

Я новичок в веб-программировании. Я пытаюсь подключить базу данных с помощью JSP с ODBC. Я уже написал код Java для этого. Теперь мне нужно запустить на сервере Tomcat. поэтому я выбираю JSP, чтобы выполнить эту работу. Но это показывает, что тип void недопустим и ошибки. Как запустить этот код с помощью JSP. какие мои ошибки. пожалуйста, помогите мне решить в этом. теперь это мой код

 <%@page import="java.sql.*"%>
 <%@page import="java.util.*" %>
 <%@page import="java.util.logging.Level"%>
 <%@page import="java.util.logging.Logger"%>

 <%! 
 int i=0,j=0,k=0;
 Connection conn=null;
 Connection connection=null;
 static int count=0;

    String Cname[]=null;
    String Title[]=null;
    Statement stmt1=null;
    ResultSet NumOfRows=null;
    Statement stmt2=null;
    ResultSet SpreadsheetValues=null;
    Statement stmt3=null;
    ResultSet rs3=null;
    int RowCount;
         //this static function required to connect excel database
  static
  {
    try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    } catch (ClassNotFoundException e) {
      e.printStackTrace();
    System.out.println("Exception in connecting to DB"+e.getMessage());
    }
  }

   // connect Sql database
    void ConnectSqlDB() {
  try{
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  Connection con = DriverManager.getConnection("jdbc:odbc:ServerDB","sa","sqladmin");
  System.out.println("MSSQL connected " +"<br>");
  }catch(Exception e){
  e.printStackTrace();
  System.out.println("Exception in connecting to DB"+e.getMessage());
  }
  }
  void ConnectExcelDB() throws SQLException{
     conn=DriverManager.getConnection("jdbc:odbc:spreadsheetdb","","");
 }
  void getRowcount() throws SQLException{
     stmt1=conn.createStatement();

     String Qs1="select count(*) from [Sheet1$]";
     NumOfRows=stmt1.executeQuery(Qs1);
     while(NumOfRows.next()){
     Rowcount=NumOfRows.getInt(1);
     }
     NumOfRows.close();
    }
     void getExcelValues() throws SQLException{
        stmt2=conn.createStatement();
        String Qs2="select * from [Sheet1$]";
        SpreadsheetValues=stmt2.executeQuery(Qs2);

        Cname=new String[Rowcount];
        Title=new String[Rowcount];
        while(SpreadsheetValues.next()){

    // Assigning Spread sheet values to String array

               Cname[j]=SpreadsheetValues.getString("Cname");
               Title[j]=SpreadsheetValues.getString("Title");
               j++;
         }
     }
          SpreadsheetValues.close();
          stmt2.close();
          conn.close();
          SpreadsheetValues=null;
          stmt2=null;
          conn=null;
 }
   %>
      <%=ConnectSqlDB()%>
      <%=ConnectExcelDB()%>
      <%=getRowcount()%>
      <%=getExcelValues()%>

Ответы [ 2 ]

1 голос
/ 27 декабря 2011

Когда вы используете метод в выражении JSP, ваш метод должен возвращать значение. Я вижу, что все ваши методы имеют тип возврата void, т.е. ничего не возвращают. Измените ваши методы, чтобы они возвращали соответствующее значение.

Примечание

Я понимаю, что вы в настоящее время изучаете JSP и т. Д., Но имейте в виду, что написание логики contorl / application в такой технологии представления, как JSP, - плохая практика. Попробуйте прочитать шаблон MVC .

0 голосов
/ 27 декабря 2011

Не используйте <%= %> (выражение) для вызова пустых методов, и вам следует избегать Java-кода в JSP (читайте SO thread ).

<%
  ConnectSqlDB();
  ConnectExcelDB();
  getRowcount();
  getExcelValues();
%>

<p>Total Records : <%=RowCount%>
<p>Array element at 0 index <%=name[0]%>

<%
 for(String v:name)
 {
   out.println("<br/>" + v);
 }
%> 
...