2012-02-21 4 views
0

以下は、データベースからデータを取得するためのスニペットです。しかしボタンをクリックすると、データを見るためにボタンが表示されますが、ブラウザは何も表示しません。(ブラウザは次のページを表示しませんが、同じページを見ています)私は問題が何であるか分からない。ブラウザはデータを探し続けますが、それをフェッチしません。

スニペットデータをフェッチ:

public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException { 
    try { 
     Context context = new InitialContext(); 
     DataSource dataSource = (DataSource)context.lookup("java:comp/env/jdbc/MyDatasource"); 
     Connection connection = dataSource.getConnection(); 
     String sqlStatement = "SELECT * FROM INFORMATION"; 
     PreparedStatement statement = connection.prepareStatement(sqlStatement); 
     ResultSet set = statement.executeQuery(); 
     PrintWriter writer = response.getWriter(); 
     response.setContentType("text/plain"); 
     while(set.next()) { 
      writer.println(set.getString(1) + " " + set.getString(2) + " " + set.getString(3)); 
      writer.println(System.getProperty("line.separator")); 
     } 

    }catch(Exception exc) { 

    } 

HTMLコード:

<form method="get" action="GetFromDatabase.do"> <br /> 
<input type="submit" value="List All Members" /> 

+0

を? xxx.doが解決されていますか? (つまり、クエリ全体をコメントアウトしてsystem.out( "hello")を実行すると、標準出力に出力されますか?ログをチェックして詳細を表示します – Alfabravo

+1

投げられた例外を無視しています。 – rossum

+0

@ Alfabravoはい、私が質問をコメントアウトすると、こんにちは、印刷されます –

答えて

0

あなたがチェックするために、物事のカップル、

  1. 例外を抑制する代わりに、少なくともスタックトレースを出力してください。

    キャッチ(例外EXC){

    exc.printStackTrace(); 
    

    }私たちは本当の問題を見つけることができる任意の例外がある場合

  1. どのような応答を送信しますか?私はあなたが本当にテキスト/ HTMLに反対するとして、プレーンテキストとして応答を送信しますか

    response.setContentType("text/plain"); 
    

を見ることができます。

0

あなたは実装する必要があります。データソースが定義されて

writer.flush(); 
+1

完全に不要です。コンテナはすでにそれを行います。問題のwebappを使用していない限り、何か問題が起こった場合、何が失敗しているかを正確に知らせる例外があります。正しく実装されていない 'flushBuffer()'メソッドを持っているカスタム 'HttpServletResponseWrapper'を使用しています。あるいは' false'メソッドで 'ServletOutputStream'や' PrintWriter'を返します。 – BalusC

関連する問題