2012-01-12 10 views
0

私はここで罰金 を動作するコードのSQLデータベースへのアクセスを簡単なJavaクラスを作成しました:は謎のSQLアクセス動作

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 

public class Query2 { 

public static void main (String[] args) { 
    try { 
     Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/riconoscimento?" 
         + "user=root&password=root"); 
     Statement stmt = conn.createStatement(); 
     ResultSet rs; 
     rs = stmt.executeQuery("SELECT * FROM utenti; "); 
     while (rs.next()) { 
      String passwordToRead = rs.getString("password"); 
      String usernameToRead = rs.getString("username"); 
      System.out.println(passwordToRead); 
      System.out.println(usernameToRead); 
     } 
     conn.close(); 
    } catch (Exception e) { 
     System.err.println("Database Access Error"); 
     System.err.println(e.getMessage()); 
    } 
} 
} 

JSPページ内の同じコードが動作しませんが、問題があります

<%@ page language ="java" import="java.sql.*" %> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>I dati inseriti per l'autenticazione sono:</title> 
</head> 
<body> 
    <h1> 
<% 
try { 
     Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/riconoscimento?" 
         + "user=root&password=root"); 
     Statement stmt = conn.createStatement(); 
     ResultSet rs; 
     rs = stmt.executeQuery("SELECT * FROM utenti; "); 
     while (rs.next()) { 
      String passwordToRead = rs.getString("password"); 
      String usernameToRead = rs.getString("username"); 
      out.println(passwordToRead); 
      out.println(usernameToRead); 
     } 
     conn.close(); 
    } catch (Exception e) { 
     System.err.println("Database Access Error"); 
     System.err.println(e.getMessage()); 
    } 
%> 
    </h1> 
</body> 
</html> 
+0

あなたは、すべてのウルのHTMLタグを開いていますか?のようなur jsp 自体は閉じられていません。 jspがコンパイルされていますが、出力は何ですか?が.jspページで、ここで本をコピーするのを忘れ –

+0

... が本当に – Franky

+0

増分展開HTTPを理解することはできません:// localhostを:HTTPの8080/WebApplication1と 完了増分分布を:// localhostを:8080/WebApplication1と 実行デプロイ: ブラウズ:http:// localhost:8080/WebApplication1/index.jsp ランディスプレイブラウザ: run: BUILD SUCCESSFUL(合計時間:4秒) – Franky

答えて

0
  1. outオブジェクト
  2. のフラッシュ()メソッドを使用してみてください:try-catchブロックが実行されていないと私はそれが 可能だかわからないことをここではコードです
  3. アプリケーションをデバッグするには、sql結果をロガーまたはSystem.outに入れることもできます。
  4. jspファイルがアプリケーションWebサーバーで処理されているかどうかを確認してください。 .html拡張子を使用する場合は、Webサーバーが.htmlページをHTMLとしてではなくJSPとして処理することを確認します)。この目的のためにコードスニペット
  5. の初めにいくつかのログを追加することができます。また、あなたがチェックすることができたHttpJspPageクラス(それは問題は構成であると思われる)
+0

isAutoFlush()が 'false'を返す場合は、最初のステップが必要です。実際には、このオプションが何らかの形ですべてのWebサーバー用にあらかじめ定義されているかどうかわかりません。このオプションは(jspに)外部で構成されているようです。 –

+0

try.println( "test")をtry catchから取り出して、画面上に表示しようとしました try catchで何が起こるかは実行されません – Franky

+0

ページソースを見たりブラウザのレンダリングだけを見ましたか?また、 'if(rs.next())'文の後ろにデバッグロギングをいくつか入れてください。 –

0

あなたはでステートメントを期待していますcatchはJSPページに出力されますか?その場合は、out.printlnを使用する必要があります。 System.err.printlnはサーバーエラーログに書き込みます。