• ベストアンサー

【JSPがブラウザで表示されません】

こんばんわ。 教えて頂きたいのですが、以下のjspを記述しましたが番号・名前・電話番号の項目表示のみで肝心のテーブル内容が表示されません。 何が原因かわからず困っています。 教えて下さい!お願い致します。 <%@page contentType="text/html; charset=Shift_JIS" pageEncoding="Shift_JIS"%> <%@page import="java.sql.*"%> <%! // サーブレットのinitメソッドに相当 public void jspInit() { try { // JDBCドライバをロード Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); } catch (Exception e) { e.printStackTrace(); } } %> <html> <head><title>テーブル_JSP版</title></head> <body> <P>データベース一覧</P> <table border='1'><tr><th>番号</th><th>名前</th><th>電話番号</th></tr> <% // データベースへのアクセス開始 Connection con = null; Statement stmt = null; ResultSet rs = null; try { // データベースに接続するConnectionオブジェクトの取得 con = DriverManager.getConnection("jdbc:sqlserver://localhost;DatabaseName=Name","ID","PW"); // データベース操作を行うためのStatementオブジェクトの取得 stmt = con.createStatement(); // SQL()を実行して、結果を得る rs = stmt.executeQuery( "SELECT 番号, 名前, 電話番号 FROM Table"); // 得られた結果をレコードごとに表示 while (rs.next()) { %> <tr> <%-- レコードのCUSTOMER_NUMフィールドを表示 --%> <td><%= rs.getString("番号")%></td> <%-- レコードのNAMEフィールドを表示 --%> <td><%= rs.getString("名前")%></td> <%-- レコードのPHONEフィールドを表示 --%> <td><%= rs.getString("電話番号")%></td> </tr> <% } } catch (Exception e) { e.printStackTrace(); } finally { // データベースとの接続をクローズ try { rs.close(); } catch (Exception e) {} try { stmt.close(); } catch (Exception e) {} try { con.close(); } catch (Exception e) {} } %> </table> </body> </html>

質問者が選んだベストアンサー

  • ベストアンサー
noname#33813
noname#33813
回答No.9

>ホスト に TCP/IP 接続できませんでした。 >java.net.ConnectException: Connection refused: connect のエラーということはSQLServerへの接続が上手くいっていないようです。 プログラムの動き的には >con = DriverManager.getConnection("jdbc:sqlserver://localhost;DatabaseName=Name","ID","PW"); 上記の行で例外が発生し50行目のcatchで例外が拾われていると思われます。 まずは、この接続設定が本当に正しいか確認してください。 接続設定が正しいとするとSQLServer側の問題かもしれません。 このメッセージで検索したところ、参考URLのページが該当しましのたでご一読ください。 ここからはプログラム側の話でなく、SQLServer側の話になりますので もし解決に至らないようであればSQLServerのカテゴリで質問した方が良いと思います。 ※ARIA9はSQLServerは素人です・・・・

参考URL:
http://www.javaroad.jp/bbs/answer.jsp?q_id=20061017121052450
earlgyreprince
質問者

お礼

ARIA9さま ありがとうございます☆ SQLServerの1433ポートは空いていたので localhostの部分をSQLServerのIPアドレス+1433で繋がりました! 本当にありがとうございます♪ 感謝致します! 最後に1点だけよろしいでしょうか? SQL構文に日本語が入ると文字化けでエラーになるのですが これは"jdbc:sqlserver://localhost;DatabaseName=Name","ID","PW"); の部分に何か記述が必要なのでしょうか? この部分だけお願いします!

その他の回答 (11)

noname#33813
noname#33813
回答No.1

ぱっと見、問題なさそうですが。 1.例外が発生していないこと  →もし発生しているならスタックトレースから原因がわかります。 2.直接SQLServerへ接続してプログラムで発行しているSQLを投げたときにレコードが取得できていること  →そもそもレコードが取得できていないといったことはありませんか。

earlgyreprince
質問者

補足

ARAIA9さま ありがとうございます。 例外は発生していない様です。 勉強不足で恐縮なのですが、レコードが取得の有無は確認できるのでしょうか? SQL構文をSELECT * FROM テーブル名に変えても結果は同じでした。 よろしくお願い致します。

関連するQ&A