- - PR -
servlet→db→jspの連携について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-02-13 18:28
るぱん様
申し訳ありません。 ご回答ありがとうございます。 エラーの内容は、Contrllerservlet.java:11:<identifier>がありません。 同上 :シンボルを解釈出来ません。 同上 :メソッド本体がないか、abstractとして宣言されています。 35:')'がありません。 です。 お仕事中にも関わらず、ありがとうございます。 もっと気を引き締めて、回答いたします。 ご無礼な点お詫び申し上げます。 環境 os:winxp webserver:tomcat db:mysql | ||||||||
|
投稿日時: 2005-02-13 18:48
1回でコピペしました? エラーの内容は、「どこかに【)】が無いんだけど・・・。」 って言う内容です。 閉じていない所をご自分のソースコードの中から探して頂けますか? コピペで失敗している可能性もあります。 【(】と【)】は対になります。 【{】と【}】は対になります。 | ||||||||
|
投稿日時: 2005-02-13 18:59
パテ太です。 本筋はるぱんさんがご説明されているので 私は気になったところを2つばかり。 1.while ブロックの中で変数を宣言していますが この変数は while の外から見えませんから この代入は意味がありません。 2.int と String で値を受けていますが ResultSet のレコードが複数ある時は 前の値を次の値で上書きしてしまうので 得られる値は最終行のみです。 ソースの感じから何かの一覧表を作りたいのかな?と 思ったのですが配列で受けないで大丈夫ですか? それとも最後の1行で良いのでしょうか? でも最後の1行で良い場合も order by とかで 指定しないと最後の1行が特定できませんが・・・。 事前に ResultSet の個数が分からないと 配列では受けられませんね。 ArrayList でなくて大丈夫ですか? [ メッセージ編集済み 編集者: パテ太 編集日時 2005-02-13 19:07 ] | ||||||||
|
投稿日時: 2005-02-13 19:02
るぱん様
ご回答ありがとうございます。 見直したのですが、抜けている点が、見あたりませんでした。コピペしたソースを、 package servletproject; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*; import java.io.*; public class Contrllerservlet { public void doPost(httpServletRequestrequest,httpServletResponse response) { Connection con = null; Statement stmt = null; Class.forName("com.mysql.jdbc.Driver"); String url= "jdbc:mysql:///kokyakuuseUnicode=true&characterEncoding=SJIS"; con = DriverManager.getConnection(url,"root","passwd"); stmt = con.createStatement(); String sql = "SELECT * FROM kokyaku"; ResultSet rs = stmt.executeQuery(sql); while(rs.next()) { int kokyaku_cd = rs.getInt("no"); String kokyaku_name = rs.getString("name"); String kokyaku_mail = rs.getString("mail"); break; } request.setCharacterEncoding("Shift_JIS"); request.setAttribute("KokyakuCD",kokyaku_cd); request.setAttribute("KokyakuName",kokyaku_name); request.setAttribute("KokyakuMail",kokyaku_mail); ServletContext sc = getServletContext(); RequestDispatcher rd = sc.getRequestDispatcher("/jsp/kokyakuEXE.jsp"); rd.forward(request,response); } } すべて選択でまたコピペしてみました。抜けている点ありませんよね? | ||||||||
|
投稿日時: 2005-02-13 19:03
ご指摘ありがとうございます。
エラーをたくさん経験することが理解の近道と思ったので、 元のソースコードをコンパイルしやすい形にしか加工してません。 エラーの読み方がわかれば、次は何をするべきかも見えてくると思います。 | ||||||||
|
投稿日時: 2005-02-13 19:29
これでどうですか?
たぶんコレでもたくさんエラーが出ると思います。 httpServletRequestrequest → HttpServletRequest request
| ||||||||
|
投稿日時: 2005-02-13 20:37
ご回答ありがとうございます。
レス遅くなりました。 先程のご指摘によりますと、 この、コンパイルエラーの原因の1つとして、kokyaku_cd,name,mailは whileの外で、変数を宣言しろよとエラーでは言っているんでしょうか? なので、request.setAttributeでシンボルが解釈出来ませんとでているんですか? あとは、プログラムの概要は、メール一括配信プログラムを作っています。 ですから、ご指摘によるところの配列を使わないといけないと思うのです。 配列は、 public ArraList findall() { ArraList list = new ArraList(); これを使えばよいのでしょうか? | ||||||||
|
投稿日時: 2005-02-13 21:09
パテ太です。 シンボルが解釈できません。のエラーは 仮に事前に宣言されていたとしても そこからは見えません。ということを示しているので モキチさんの言うとおりです。 ResultSet の格納には ArrayList を使用すれば良いと 思うのですが、 ArrayList に格納すべきものは たとえば
のようなものになると思います。 [編集内容] 戻り値を忘れてました。 [ メッセージ編集済み 編集者: パテ太 編集日時 2005-02-13 21:11 ] |