• 締切済み

JSPでPostgreDBにアクセスしHTML表示するプログラム

DB内容取得表示のコンパイルエラー。型に解決の原因わかりますでしょうか? Tomcat5.5、JRE :1.5.0_09、DB:PostgreSQL8.1 ~ソース~ (db_read.jsp) <%@ page contentType="text/html;charset=Windows-31J" import="java.sql.*,javax.naming.*,java.sql.*" %> <html> <head> <title>DB読込</title> </head> <body> <table border="1"> <tr> <th>商品ID</th><th>商品名</th> </tr> <% Context ctx=new InitialContext(); DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/wdpress"); Connection db=ds.getConnection(); PreparedStatement objPs=db.preparedStatement("SELECT * FROM 商品マスタ ORDER BY published ASC"); ResultSet objRs=objPs.executeQuery(); while(objRs.next()){ %> <tr> <td><%=objRs.getString("商品ID")%><td> <% } objRs.close(); objPs.close(); db.close(); %> </table> </body> </html> ~エラーログ~ org.apache.jasper.JasperException: JSPのクラスをコンパイルできません JSPファイル: /db_read.jsp の中の14行目でエラーが発生しました 生成されたサーブレットのエラーです: DataSource cannot be resolved to a type

  • Java
  • 回答数2
  • ありがとう数1

みんなの回答

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.2
参考URL:
http://tomcat.apache.org/tomcat-5.5-doc/jndi-resources-howto.html
  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.1

DataSourceを使わない方法ならばこうならないよう ですがこの場合Tomcat5.5のserver.xmlとweb.xmlの 設定が必要です。 http://d.hatena.ne.jp/phial/20060831/1157027520

参考URL:
http://d.hatena.ne.jp/phial/20060831/1157027520
nankurunaisa2006
質問者

お礼

返信有難うございます。 この方法だと、Web.xmlはわかりますがServer.xmlも修正になるんでしょうか? Tomcat5.5では %CATALINA_HOME%\conf\Catalina\localhostの直下にxmlファイルを作成する事でContextを指定すると理解していたのですが、%CATALINA_HOME%\conf直下のserver.xmlを直接修正する事はないですよね? 同様に、web.xmlも%CATALINA_HOME%\conf直下のものではなく、WEB-INF直下のものを修正ですよね?

関連するQ&A

  • JSPとjavaの問題

    ResultSet rs = db.getResultSet("SELECT * FROM SHAINLIST "); ArrayList list = new ArrayList(); while(rs.next()) { int state = rs.getInt("attendance"); list.add(new Integer(state)); } int[] in = new int[list.size()]; for (int i = 0; i < list.size(); i++) { in[i] = ((Integer)list.get(i)).intValue(); } %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>JSPでDB接続</title> </head> <body> <table> <tr><td>欠席</td><td>><%= countNum(-1, in) %></td></tr> <tr><td>未定</td><td><%= countNum(-1, in) %></td></tr> <tr><td>出席</td><td><%= countNum(-1, in) %></td></tr> </table> 以下のエラーがでてきますが、どういう意味でしょうか。 org.apache.jasper.JasperException: JSPのクラスをコンパイルできません: JSPファイル: /jsp/tokei.jsp の中の26行目でエラーが発生しました The method countNum(int, int[]) is undefined for the type tokei_jsp 23: </head> 24: <body> 25: <table> 26: <tr><td>キ鄲ハ</td><td>><%= countNum(-1, in) %></td></tr> 27: <tr><td>フ、ト�</td><td>3</td></tr> 28: <tr><td>スミタハ</td><td>3</td></tr> 29: </table> よろしくおねがいします。

    • ベストアンサー
    • Java
  • 空のテーブルを表示させたい

    DBから検索条件に当てはまるデータを全て読み込み、 特定の内容だけ表のように表示させるプログラムを作成しています。 ほとんど作成し終わったのですが、項目の中のデータが空だと表の枠(?)を表示してくれず、空白になってしまいます。 それでは見た目が悪いので、なんとかExcelのような表にしたいのですが、やり方がわかりません。 どなたか教えていただけないでしょうか? ○開発環境 ・OS:WindowsXP Professional ・ツール:Microsoft InterDev6.0 ・DB:SQLServer2000 ○ソース(表示部分のみ) 該当データ数 <%=objRS.RecordCount%><br> <% Response.Write"<input type=""submit"" id = ""Indication1"" value=""表示する"" name=""Indication"">" %> <br> <table border="1" width="100%"> <tr> <th scope="col" bgcolor="#ccffff"></th> <th scope="col" bgcolor="#ccffff"><font size="2">入力番号</font></th> <th scope="col" bgcolor="#ccffff"><font size="2">日付</font></th> <th scope="col" bgcolor="#ccffff"><font size="2">名前</font></th> </tr> <% '***** 検索されたデータの表示 ***** Do Until ObjRS.EOF %> <tr> <td scope="col"> <% Response.Write"<input type=""radio"" value=""" & ObjRS("no")& """ name=""Check"">" %> </td> <td scope="col"><%=ObjRS("no")%></td> <td scope="col"><%=ObjRS("date")%></FONT></td> <td scope="col"><%=ObjRS("name")%></FONT></td> </tr> <% ObjRS.MoveNext LOOP %> </table>

  • jspのエラー

    <%@ page contentType="text/html; charset=UTF-8" import="java.io.*, java.sql.*" %> <% Class.forName("com.mysql.jdbc.Driver"); Connection con=DriverManager.getConnection("jdbc:mysql://localhost/database1?user=user1&password=password1&useUnicode=true&characterEncoding=UTF-8"); Statement stmt=con.createStatement(); ResultSet result=stmt.executeQuery("select * from table1;"); %> <table> <tr> <th>country</th> <th>city</th> </tr> <% while(result.next()) { %> <tr> <td> <%= result.getString(1) %></td> <td> <%= result.getString(2) %></td> </tr> <% } stmt.close(); con.close(); %> </table> でエラーがでてデータベースに接続できません メッセージは以下の通りです org.apache.jasper.JasperException: Exception in JSP: /gomitable1.jsp:12 11: Class.forName("com.mysql.jdbc.Driver"); 12: Connection con=DriverManager.getConnection("jdbc:mysql://localhost/database1?user=user1&password=password1&useUnicode=true&characterEncoding=UTF-8"); 13: Statement stmt=con.createStatement(); 14: ResultSet result=stmt.executeQuery("select * from table1;"); 15: %> 原因 javax.servlet.ServletException: Error during query: Unexpected Exception: java.io.CharConversionException message given: null このメッセージの意味もわかりません 何が悪いのでしょうか?

    • ベストアンサー
    • Java
  • 【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>

    • ベストアンサー
    • Java
  • HTMLのテーブルについて

    HTMLのテーブルについて 今、HTMLを勉強しています。下記のようにテーブルを作成し一部にセルの結合を行ったところ、(2)の結合したセル右端から外枠までが広がってしまいます。せっかく綺麗に見えるように上の表と下の表のセル幅を合わせても、上の表の右端が出っ張ってしまって意味がありません。 これを解決するにはどのように改善すればいいのでしょうか? <html> <head> <title>A</title> </head> <body> <table border="2"> <tr> <th>No.</th> <th>名前</th> <th width="50">備考</th> </tr> <tr> <td>1</td> <td>A君</td> <td>(1)</td> </tr> <tr> <td>1</td> <td>B君</td> <td rowspan="2">(2)</td> </tr> <tr> <td>1</td> <td>C君</td> <td></td> </tr> </table> <br> <table border="2"> <tr> <th>No.</th> <th>名前</th> <th width="50">備考</th> </tr> <tr> <td>2</td> <td>D君</td> <td>(3)</td> </tr> <tr> <td>2</td> <td>E君</td> <td>(4)</td> </tr> <tr> <td>2</td> <td>F君</td> <td>(5)</td> </tr> </table> </body> </html>

  • jspでのArrayListの値の表示

    jsp上でBeanで以下のように設定されている ArrayList<ArrayList<Integer>> a; a.add(new ArrayList<Integer>); a.add(new ArrayList<Integer>); a.add(new ArrayList<Integer>); a.get(0).add(0); a.get(0).add(1); a.get(1).add(2); a.get(1).add(3); a.get(1).add(4); a.get(1).add(5); a.get(2).add(6); a.get(2).add(7); a.get(2).add(8); aのような行と列が不定のArrayListの全ての値をjspの画面上に  値 値 値  0  2  6  1  3  7    4  8    5 といったようにテーブルで表示したいのですがjspにどのような既述をすればよいでしょうか? クリックしたときの処理などの導入や項目を増やすなど拡張する場合があるので 以下のような形とレイアウトが同じようになると望ましいです <td> <table> <tr>値</tr> <tr>0</tr> <tr>1</tr> <tr>2</tr> </table> </td> <td> <table> <tr>値</tr> <tr>3</tr> <tr>4</tr> <tr>5</tr> </table> </td> <td> <table> <tr>値</tr> <tr>6</tr> <tr>7</tr> <tr>8</tr> </table> </td>

  • HTMLを使って表を作成しているのですが、枠線がキレイに揃いません。

    HTMLを使って表を作成しているのですが、枠線がキレイに揃いません。 下のソースで50と130のとこをきちんとエクセルのように枠線揃えたいのですが、 どのようにしたら良いのでしょうか? よろしくお願いします。 <HTML> <BODY> <TABLE border=1><TR> <TH width="50"></TH> <TH width="135"></TH> <TH width="65"></th> <TH width="65"></th> <TH width="65"></th> </TR><TR> <TD colspan="5"> <TABLE border=1><TR> <TD width=50>50</TD> <TD width=200>200</TD> <TD width=130>130</TD> </TR><TR> <TD width=50>50</TD> <TD width=200>200</TD> <TD width=130>130</TD> </TR></TABLE> </TD> </TR><TR> <TD colspan="5"> <TABLE border=1><TR> <TD width=50 rowSpan=2>50</TD> <TD width=135 rowSpan=2>135</TD> <TD width=65 rowSpan=2>65</TD> <TD width=130 colSpan=2>130</TD> </TR><TR> <TD width=65>65</TD> <TD width=65>65</TD> </TR><TR> <TD width=50>50</TD> <TD width=135>135</TD> <TD width=65>65</TD> <TD width=65>65</TD> <TD width=65>65</TD> </TR><TR> <TD width=250 colSpan=3>250</TD> <TD width=65>65</TD> <TD width=65>65</TD> </TR></TABLE> </TD> </TR><TR> <TD colspan="5"> <TABLE border=1><TR> <TD width=250>250</TD> <TD width=130>130</TD> </TR></TABLE> </TD> </TR> </TABLE> </BODY> </HTML>

    • ベストアンサー
    • HTML
  • HTMLの疑問

    初心者ですが、HPに表組を作成したのですが、HP上では表の上にタグマークが出でしまいます、どのように編集したら良いでしょうか、 また表組をカテゴリー選択別で表示、非表示にすると事は出来るでしょうか、教えて下さい。 <div class="detail"> <!--// 商品メイン画像 --> <h3 align="center" style="font-size: 7pt;"><TABLE BORDER> <CAPTION>ADULT SREES SIZE</CAPTION> <TR><TH></TH><TH>XS</TH><TH>S</TH><TH>M</TH><TH>L</TH><TH>XL</TH><TH>2XL</TH><TH>3XL</TH></TR> <TR><TH>BUST</TH><<TD>86.36</TD><TD>88.9</TD><TD>93.98</TD><TD>99.06</TD><TD>104.14</TD><TD>111.76</TD><TD>111.76</TD></TR> <TR><TH>WAIST</TH><<TD>64.77</TD><TD>67.31</TD><TD>72.39</TD><TD>77.49</TD><TD>82.55</TD><TD>90.17</TD><TD>95.25</TD></TR> <TR><TH>HIP</TH><<TD>93.98</TD><TD>96.52</TD><TD>101.6</TD><TD>106.68</TD><TD>111.76</TD><TD>119.38</TD><TD>124.46</TD></TR> </TABLE></h3>

  • JavaScript+ASPによるaccessのデータの追加、削除

    JavascriptでASP(IIS)を使ってAccess2000にあるデータをブラウザに表示する事はできたのですが、今度はaccessにあるデータを追加、削除したいのですが、SQLを変えてもエラーがでます。 どのようにしたらいいですか?教えてください。 初心者なもんで、質問が分かりにくいと思いますが、お許しください。どうぞ、よろしくお願いします。 <%@Language="JavaScript" %> <html> <head> <title>一覧→詳細</title> </head> <body> <table border="1"> <tr> <th>商品コード</th><th>商品名</th><th>価格</th> </tr> <% var db=new ActiveXobject("ADODB.Connection"); db.Open("Webware"); var rs=db.Execute("SELECT * FROM products"); while(!rs.EOF){ %> <tr> <td><a href="descj.asp?id=<%=Server.URLEncode(rs("id"))%>"> <%rs("id")%></a></td> <td><%=rs("nam")%></td> <td><%="\\" + rs("val") %></td> </tr> <% rs.MoveNext(); } %> </table> </body> </html>

  • JSPで聞きたいことがあります。

    JSPを学んで一ヶ月になります。以下の内容で質問があります。 <%@ page contentType="text/html;charset=Shift_JIS"import="java.io.*,java.util.*" %> <html> <head> <title>住所録</title> </head> <body> <h1 style="font-size:14pt;background:#cccccc">住所録</h1> <table border="0"> <tr style="background:#00ccff"> <th>No.</th><th>名前</th><th>性別</th><th>電話番号</th><th>住所</th> </tr> <% String tmpStr; StringTokenizer tkn; FileReader fr=new FileReader( application.getRealPath("myData/data.txt")); BufferedReader br=new BufferedReader(fr); while(br.ready()){ tmpStr=br.readLine(); out.println("<tr style='background:#ffffcc'>"); tkn=new StringTokenizer(tmpStr,"\t"); while(tkn.hasMoreTokens()){ out.println("<td>" + tkn.nextToken() + "</td>"); } out.println("</tr>"); } br.close(); %> </table> </body> </html> というコードがあるのですが、上記のコード中にあるwhile文をdo分に変えて、whileと同じように表示するのは可能でしょうか?ちなみに私は、 do{ tmpStr=br.readLine(); out.println("<tr style='background:#ffffcc'>"); }while(br.ready()); tkn=new StringTokenizer(tmpStr,"\t"); do{ out.println("<td>" + tkn.nextToken() + "</td>"); out.println("</tr>"); br.close(); }while(tkn.hasMoreTokens()); と記述したのですが、実行してみると、一部しか表示されず、しかも全ての情報が <th>NO.</th> に入ってしまうのです。そこで質問ですが、whileからdo文に変えて同じように表示するのは可能なのでしょうか?わかる方がいれば、お願いします。

    • ベストアンサー
    • Java