• ベストアンサー

servletについて

現在、こちらのサイトにてJava/サーブレットの学習をしています。 http://www.javadrive.jp/servlet/schedule/ スケジュールの登録処理がうまくできません。 登録ボタンを押すと、意図したとおりにスケジュール一覧画面に 戻るので動きは間違っていなく、Exception等も発生していません。 MySQLや文字コードはUTF-8で統一しています。 コードはコピペを行っているので打ち間違いはないはずです。 他にどこを確認すると良いのでしょうか。 アドバイスをよろしくお願いします。

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

  • ベストアンサー
回答No.1

MySQLに登録するサーブレットを自作して作ってみて 登録できるか確認してみるといいかも エクリプスなど開発環境がわずかでも違うと文字化けして送られてるようです データベース作成 テーブル作成などやりましたか?

toyoucook
質問者

お礼

データベース登録時に、テーブルの作成ミスが有りました。 Tomcatのログから分かりました。 ご回答有難うございました。

toyoucook
質問者

補足

アドバイスありがとうございます。 同環境で他のデータベースを作成し、そこにinsert処理をするサブレットでデータの登録処理をすることは出来ました。 このスケジュールプログラムからのinsert処理がうまく行っていないようです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • SOAP::Lite axis 例外処理

    お世話になります。 perlクライアントから、SOAP::Liteモジュールを使い、 axisに登録されたjavaサーブレットクラスを呼び出しています。 (例) $s = SOAP::Lite->service( 'http://xxx.wsdl' ); #サービス名 $s->test(); #javaサーブレットクラス呼び出し javaサーブレットクラスが例外(Exception)で終了した場合、 perlクライアントで例外をキャッチする方法はありますでしょうか? #以下のコードではエラーはキャッチできませんでした。 eval { $s->test(); }; if ($@) { # エラー処理 }; * 通常処理はうまくうごいています。 例外は意図的にExceptionをthrowしています。java内ではキャッチして終了してます。

  • 文字コードについて(どのファイルをどの文字コードにしてWeb開発を進めていくべきか)

    【疑問の背景】 文字コードについて(どのファイルをどの文字コードにしてWeb開発を進めていくべきか)   国際標準で使われているUTF-8で統一しておけば問題はないだろうと思って開発を進めていると・・・   UTF-8は「日本語が2~4バイト」で扱われるという、バイトの扱いが厄介であるため、   できればJavaでのUTF-8で開発は避けたい、だから「Shift-JIS」にしておきたいという話があがり、   各々のファイルにどの文字コードを設定すれば良いのかがわからなくなっている状態です。    いくつかの疑問がでていまして  判る範囲で構いませんので文字コード設定の判断についてのアドバイスいただけませんでしょうか? 【現在の開発文字コード】 HTMLファイル: UTF-8 JSPファイル: UTF-8 Javaファイル(servlet): UTF-8 Javaファイル(Bean): UTF-8 Javaファイル(JSPから出来たサーブレット): UTF-8 データベース: UTF-8 【設定したい今後の予定文字コード】 HTMLファイル: UTF-8 JSPファイル: UTF-8 Javaファイル(servlet): Shift-JIS Javaファイル(Bean): Shift-JIS Javaファイル(JSPから出来たサーブレット): Shift-JIS データベース: UTF-8 【疑問1】 javaファイル(servlet,Bean)をどのコードにすべきかについて  全てS-JISにした方がいいのか、UTF-8にした方がいいのかどうあるべきなのでしょうか?  (UTF-8 で 「日本語が2~4バイト」として扱われると、どういった弊害が発生するのでしょうか?) 【疑問2】 javaファイルをS-JISに変える方法について  今はサクラエディターというツールで  名前を付けて保存 → 文字コードセット「Shift-JIS」 → 保存 → ファイル名の文字コードセットの変更完了    今はエクスプローラーから直接フォルダの中にあるファイルを触っている状況なのですが、  eclipseから「ファイルの文字コードセットを変更する方法」はありますでしょうか? 【疑問3】 「Shift-JIS」に設定して開発していく必要性について  既存で「utf-8」で設定されているjavaファイルを、「Shift-JIS」に設定して開発していく必要性はあるのでしょうか? (all in one eclipse 3.4 を入れたとき、デフォルトで「utf-8」でjavaファイルが作られるつくりになっているみたいなのですが・・・)   【疑問4】 javaファイル作成時、「Shift-JIS」の形式でファイルを生成する方法について     現在、javaファイルを作成する場合「utf-8」のコードでjavaファイルが生成されるようになっています。      【自作で作成したjavaファイルの場合】    「サクラエディターを使用して、文字コードセットをShift-JISに変更すれば、ずっとShift-JISのファイルの状態」にすることができました。      しかしここで問題が出たのですが      【JSPファイルから自動生成されたjavaファイル(servlet)の場合】    「サクラエディターを使って、Shift-JISに変更した後に、JSPファイルを編集すると、また“utf-8に戻ってしまう” 状態」です。    現状としては「JavaファイルはShift-JISに統一して欲しい」という要望なので、    JSPから自動生成されたjavaファイルが "utf-8" になってしまいます。      JSPから自動生成されたjavaファイルを    "常にShift-JISに設定する" 方法はありますでしょうか?     【環境】  OS   ・WindowsXP Pro    java開発環境   ・all in one eclipse(3.4)   ・TomCat(6.0)   ・Java JRE(1.6)   ・MySQL(5.0)

    • ベストアンサー
    • Java
  • 【servlet】フォワードを使った画面遷移

    java,サーブレット初学者です。表題の通り、フォワード を使って画面遷移を試みています。 以下のコードを記述しリンクをクリックすると確かに画面遷移はできるのですが、 フォワードが出来ているならURLの最後が【/Test1】になるのではないかと考えました。 ですが実際は【/NewFile2】となっているため、フォワードが出来ていないのかと思います。 どの様にしたら前者のような結果になるでしょうか。 ご教授頂きたいです。 サーブレット↓ package sample; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/Test1") public class Test1 extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RequestDispatcher br = request.getRequestDispatcher("html/NewFile2.html"); br.forward(request, response); } } 遷移前の画面↓ <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>テスト</title> </head> <body> <h2>sample</h2> <p>テストです</p> <a href ="/servlet_dayo/html/NewFile2.html">画面遷移する</a> </body> </html> 遷移先↓ <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>テスト</title> </head> <body> <p>遷移先</p> </body> </html> サーバー:Tomcat8.5 os:macos を使用しています。どうぞよろしくお願いします。 ※OKWAVEより補足:「Webシステム開発」についての質問です。

    • ベストアンサー
    • Java
  • MySQL+PHP文字化け

    PHPからMySQLを使っています。 MySQLもPHPも文字コードはutf8を使っているのですが、PHPMyAdminから入力した日本語を普通に読み出すと文字化けして「??????」になってしまいます。また、自作コードからの日本語のinsertもできません。 しかし、「set character set utf8」を先に実行しておくといずれも上手くいきます。 これは一体どういうことなのでしょうか? そもそも全てutf8で統一しているつもりなのですが、MySQLかクライアントのどちらかで他のコードが使われているということなのでしょうか? MySQLはstatusなどを見てもutf8になっているので、どちらかと言えばクライアントの方が臭うのですが、よくわかりません。 どうか知恵をおかしください。

  • java servletからMySQLに情報を登録したいのです。

    ホームページのフォームに名前と番号の二つの列があってname[1],bango[1]...のようになっています。 それを番号があるものだけをMySQLに登録したいのですがうまくいきません。 以下に試しに作ったservletを書きます。 import java.io.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; public class program2 extends HttpServlet{ private static final String CONTENT_TYPE = "text/html; charset=Shift_JIS"; //private static final String CONTENT_TYPE = "text/html; charset=EUC_JP"; //private static final String CONTENT_TYPE = "text/html; charset=UTF-8"; private String server; private String db; private String user; private String pass; private String url; private Connection con = null; //グローバル変数の初期化 public void init() throws ServletException{ /*変数の初期化*/ server = "localhost"; //MySQLサーバ名またはIPアドレス db = "database"; //データベース名 user = "root"; //MySQLユーザ名 pass = "data"; //MySQLパスワード /* 必要であればオプションの指定 */ url = "jdbc:mysql://" + server + ":3306/" + db + "?useUnicode=true&characterEncoding=Shift_JIS"; //JDBC URL Shift_JIS /*DB初期処理*/ try{ /* JDBCドライバのロード */ Class.forName("com.mysql.jdbc.Driver").newInstance(); /* MySQLサーバ接続 */ con = DriverManager.getConnection(url, user, pass); } catch (SQLException e){ e.printStackTrace(); } catch (Exception e){ e.printStackTrace(); } } /*HTTP Get リクエストの処理*/ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ //エンコード request.setCharacterEncoding("Shift_JIS"); //FORMからの第一次受け渡し String name = "naoki"; String jikoku = "1200"; //for文の始まり for(int i = 1; name != null; i++){ //if文の始まり if(jikoku != null){ //FORMからの第一次受け渡し name = request.getParameter("name["+ i +"]"); jikoku = request.getParameter("jikoku["+ i +"]"); response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); Statement stmt = null; ResultSet rs = null; try{ /* 検索するSQL文を作成 */ String sql = "INSERT INTO table1 (eki,jikoku) VALUES ('"+name+"','"+jikoku+"') "; /* Statementオブジェクトの生成とクエリの実行 */ stmt = con.createStatement(); stmt.executeUpdate(sql); /* 切断 */ stmt.close(); } catch (SQLException e){ out.println("<h3>登録に失敗しました</h3>"); e.printStackTrace(); } catch (Exception e){ e.printStackTrace(); } finally{ /* finallyを使って資源の解放 */ try{ if (stmt != null){ stmt.close(); stmt = null; } } catch (Exception e){ e.printStackTrace(); } } }//if文の終了 }//for文終了 } /*サーブレットインスタンスが破棄されるときに、サーブレットコンテナに最後に1度呼び出される*/ public void destroy(){ /* 切断 */ try{ if (con != null){ con.close(); con = null; } } catch (Exception e){ e.printStackTrace(); } } }

    • ベストアンサー
    • Java
  • チェックボックスにチェックしたものを削除

    はじめまして。 htmlのフォームタグからjavaサーブレットを用いて、表形式で出力した検索結果一覧画面(jsp)から、チェックボックスにチェックしたものをまとめて削除したいと思います。 一覧画面でチェックボックスを表示させるまではできたのですが、そこからサーブレットへ値の受け渡し(複数)、データベースへ消しこみに行く処理についてご指南願います。 (環境) windows2000pro tomcat4.1 mysql よろしくお願いします。

    • ベストアンサー
    • Java
  • Tomcatによるサーブレット起動がうまくいきません

    サーブレットを呼び出すと以下のようなエラーが発生します。 ---------------------------------------------------- type Exception report message Internal Server Error description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request. exception javax.servlet.ServletException: ラッパがサーブレットクラス classes/toroku1.class またはそれが依存するクラスを見つけることができません at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:873) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:655) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) ---------------------------------------------------- なぜでしょうか? 教えてください。m(__)m

    • ベストアンサー
    • Java
  • jspのプログラムについて

    jspファイルで データベースの中のテーブルの中身をCSVファイルに出力するプログラムを教えてください。 delete文で中身を消すプログラムは書けたのですが、これはできません。 conn = null; st=null; conn=DriverManager.getConnection("jdbc:mysql://localhost/データベース名?" + "user=ユーザー名&password=パスワード&useUnicode=true&characterEncoding=utf8"); st=conn.createStatement(); StringBuffer buf = new StringBuffer(); buf.append("delete from where id="+id); st.executeUpdate(buf.toString()); これで削除はできました。 なのでbuf.appendの中身を buf.appendbuf.append("select * from テーブル名 INTO OUTFILE \"data.csv\" fields terminated by ',' "); これに書き換えればできると思ったのですができません。 よろしくお願いします。 エラー内容は org.apache.jasper.JasperException: An exception occurred processing JSP page /CSV.jsp at line 24 21: 22: StringBuffer buf = new StringBuffer(); 23: buf.append("select * from anpisystem INTO OUTFILE \"data.csv\" fields terminated by ',' "); 24: st.executeUpdate(buf.toString()); 25: 26: } 27: Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 原因 javax.servlet.ServletException: java.sql.SQLException: Can not issue SELECT via executeUpdate(). org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791) org.apache.jsp.CSV_jsp._jspService(CSV_jsp.java:94) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 原因 java.sql.SQLException: Can not issue SELECT via executeUpdate(). com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1086) com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989) com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975) com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920) com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1803) com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1764) org.apache.jsp.CSV_jsp._jspService(CSV_jsp.java:76) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

    • ベストアンサー
    • Java
  • servlet通信断時の処理について

    お世話になります。 Servletの処理中にクライアントとの通信がケーブル不良等が原因で切断された場合、エラー処理をしたいのですが、 エクセプションが発生しません。 発生させる方法は無いでしょうか。 本当に困っております。 通信断になるタイミングは 以下のコードでレスポンスデータをクライアントへ送信中に通信断になる場合です。 public void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException,IOException { try { PrintWriter pw = new PrintWriter( new OutputStreamWriter(response.getOutputStream(), "UTF-8")); pw.write("OK"); pw.flush(); pw.close(); }catch(IOException e){ // エラー処理 }catch(Exception e){ // エラー処理 }finally{ // 後処理 } } どなたかご存知の方がいらっしゃいましたらお教え下さい。

    • ベストアンサー
    • Java
  • Servlet/JSP、MySQLでwebチャットを趣味で作っています

    Servlet/JSP、MySQLでwebチャットを趣味で作っています。 入室、書き込みなどの処理は出来たのですが、CGIチャットなどにあるようなチャット参加者、ROM人数の表示方法がわかりません。 例えば、 アクセスした人のIPをすべてデータベースに登録し、その中からチャット参加者の名前、人数を読み出して参加者として表示する。 一定時間アクセスの無いIPをデータベースから削除し、残った人から参加者の人数を引きROM人数とする。 という方法を考えましたが、データベースへのアクセスが頻繁になってしまう気がして悩んでいます。 サーブレット/JSPの知識はそれほどなく、ネットにもサンプルが乏しいため、一般的な方法も良くわかりません。 どなたか丁寧な解説をしていただけると助かります。 よろしくおねがいします。

    • ベストアンサー
    • Java
このQ&Aのポイント
  • EP-803Aのプリンターで印刷ができない問題について解決方法をご紹介します。
  • EP-803Aの印刷が保留状態でできない場合、どうしたら良いか解説します。
  • EP-803Aの印刷で保留状態になり、印刷ができない問題を解決する方法をご紹介します。
回答を見る