• ベストアンサー

日付データのエラーチェックに関して

最近Javaを習い始め、Eclipseを使ってサーブレット/JSPを学習している者です。使っているデータベースはOracle9iです。OSはWindowsXPです。 現在、学習しているのはJSPで表示したブラウザのフォームからデータを入力して、データベースにそのデータを登録、更新などを行う作業です。 質問は入力されたデータのエラーチェックについてなのですが、データベースに日付を西暦で2009/03/05とDATE型で登録していて、その日付をブラウザから登録、更新する際に「日付は半角で西暦/月/日と入力してください」と指定して、それ以外の入力がされた場合はエラー画面を表示したいのですが、フォームから送られてくるデータはString型でそれをSimpleDateFormatメソッドを使ってDate型に変換してtryで例外処理をしてエラー画面に画面遷移すればいいと思うのですが、サーブレット内でその処理を実行しようとするとエラーになってしまいます。 どのようにソースを書けばいいのでしょうか? JSPのフォームのソース(一部) <input type="text" name="day"> サーブレットのソース(一部) public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("Windows-31J"); String day = request.getParameter("day"); try { ここから先が分かりません。

  • Java
  • 回答数4
  • ありがとう数0

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

  • ベストアンサー
  • DiveKo
  • ベストアンサー率70% (7/10)
回答No.4

これら http://sattontanabe.blog86.fc2.com/blog-entry-47.html http://rutake.ddo.jp/blog/techmemo/2007/07/java.html http://www25.atwiki.jp/dotcom/pages/111.html で、やりたいことできませんか? PS 今は、勉強中なのでいいと思いますが、実用上では、gigamacさんが おっしゃるとおり、JavaScriptで行ったほうがいいですよ。

その他の回答 (3)

  • gigamac
  • ベストアンサー率57% (8/14)
回答No.3

日付チェックは業務上、結構行っていますが、サーバーへリクエストしてチェックし、変な内容ならエラー画面をレスポンスするっていうことはしてません。 できれば、javascriptでチェックする事をお勧めします(サーバー負荷の軽減や、レスポンス性から見ても)。 インターネットで「javascript」「日付チェック」などのキーワードで検索すると結構出てきます。

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.2

ここから先がって 大事なものが何も書かれていないじゃない。 まずあなたが作成したソースを見せて頂戴。 そうしたら添削してあげることができるわ。

  • OKwebb
  • ベストアンサー率44% (92/208)
回答No.1

作成されたソースと実行しようとするとどういうエラーが発生するかの 補足してください。

関連するQ&A

  • サーブレットで入力エラー時にエラー画面の出力

    JAVAサーブレットで、わからないことがありお伺いいたします。 名前、タイトル、メッセージが入力されていないと、エラー画面になるように設定したと思っています。 ソースが3つあり、 (1)拡張子jspのソース  ここでBBSの投稿フォームおよび投稿後のフォームの呼び出し (2)拡張子javaのソース  フォームから入力された内容の取得および「bean」へ登録 (3)拡張子javaのソース  投稿内容の値の保持および取り出し となっています。 (2)に if(!isEmpty(name) && !isEmpty(subject) && !isEmpty(message) ){ // beanにフォームデータをセット があるので下記を記述しました。 }else {ServletContext sc = getServletContext(); RequestDispatcher rd = sc.getRequestDispatcher("/error.jsp"); rd.forward(request, response); } それでも、どれか一つを抜かして「投稿」ボタンを押しても、元の初期画面に戻ってしまいエラー画面が出ません。 記述の仕方がいけないのでしょうか。 宜しくお願い致します。

  • 日付データの西暦・和暦について

    よろしくお願いします。 Vb2005とAccess2003でWinアプリを開発しています。 データベースに日付データを西暦で蓄積して、期間合計を出したりその他の処理を行っていました。 フォーム上にDateTimePikerやMonthCalendarといったユーザーコントロールを配置していますが、これも西暦です。 印刷等もすべて西暦表示で行っています。 これを、すべて和暦にして欲しいと言われたのですが、Accessのデータベースも和暦で日付データを蓄積するのが良いのでしょうか? それとも、フォーム上で和暦で入力されたデータを西暦に変換して蓄積するほうが普通なのでしょうか? 元号が変更になった場合等を考えれば、帳票類も西暦のほうがプログラムの変更(更新)の手間がなく良いような気がするのですが、和暦って結構ニーズがあったりしますでしょうか?(私は経験が浅いのでよくわからず、素朴な疑問です) DateTimePikerの和暦表示については、紹介サイトがあったのですが、MonthCalendarについては和暦表示できるのかわかりませんでした。方法がありましたら教えてください。 日付の西暦・和暦について、アプリケーションを作るうえでのアドバイス等もありましたらあわせてお願い致します。

  • JSPからYYYYMMDDで日付入力する

    こんにちは。 JSPからサーブレット・Beanを使うプログラムを作っております。 調べてみたのですがわからなくなってきてしまいました。 ぜひご教授ください。 JSPから日付を入力し、DBに日付データを挿入します。 今はBeanから下のようなSQL文で、JSP画面からはフォームに「2008-08-20」と入力して値を挿入しています。 sql = insert into テーブル名 values('?') できればこのフォームに「20080820」と入力させたいと思っています。 そのためにはBeanでSQL文を発行する際に日付を分けて、「2008」+「-」+「08」+「-」+「20」のように間に「-(ハイフン)」を入れてやればいいのはわかるのですが、そのためにはどのようにすればよいか教えてください。 「20080820」を分けて、sql1・sql2・…に入れ、それを実際のSQL文発行の際にsql1+"-"+sql2+…とやるのでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • Java
  • サーブレットとJSPの連携

    今、サーブレットとJSPについて勉強しまいます。 HTMLからサーブレットでリクエストを受け付け、 JSPに転送し表示させたいのですが、フォームからの入力の場合は String carname = request.getParameter("cars"); で入力データを取得するコードを書きますよね? (本ではこう書いてました・・・。) では、HTMLの入力フォームからではなくリンクからの 受付けの場合はどう書けばいいのですか? 勉強を始めたばかりで初心者なので、説明不足の点もあるかも 知れませんが分かりやすくご指導宜しくお願いします…。

  • JSPのページ移動

    書き込み一覧が表示してあるJSPの入力フォームがあり、そこで入力をして「書き込み」ボタンを押すと入力したデータが、DBへ登録するサーブレットへ飛び、入力をした画面上では「書き込みました」のようなHTML画面が表示されるとします。その画面で「TOPへ戻る」ボタンを押すと、今度は検索サーブレットが動き、DBから最新の一覧が引っ張り出され、登録更新後の書き込み一覧JSPが画面上に出るとします。ここで質問なのですが、「書き込み」ボタンを押すと同時に登録サーブレットと検索サーブレットを動かすことは出来ないのでしょうか?理想としては、「書き込みました」のようなHTML画面は使用せず、一気に更新後の一覧を表示させたいのです。

  • HTTPステータス 404 - /servlet/Testについて

    はじめまして。Javaの初心者です。 どうしてもわからないことがあります。それは、 最初にJSPページでHTMLフォームにデータを入力して <input type="submit"/>タグでサーブレットに送信し て、サーブレットでHTMLフォームのデータ を使用して処理を行わせてから再び最初のJSPページ にリクエストを転送(forward)すると、サーブレット での処理結果が表示されるのですが、そのあと再び HTMLフォームにデータを入力して <input type="submit"/>タグでサーブレットに送信す ると、「HTTPステータス 404 -/servlet/Test」などと 表示され、サーブレットが利用可能でなくなります。 なぜなのでしょうか?どのようにしたら解決できるの かどうか教えてください。お願いします。

    • ベストアンサー
    • Java
  • JSPとサーブレット

    書き込み一覧が表示してあるJSPの入力フォームがあり、そこで入力をして「書き込み」ボタンを押すと入力したデータが、DBへ登録するサーブレットへ飛び、入力をした画面上では「書き込みました」のようなHTML画面が表示されるとします。その画面で「TOPへ戻る」ボタンを押すと、今度は検索サーブレットが動き、DBから最新の一覧が引っ張り出され、登録更新後の書き込み一覧JSPが画面上に出るとします。ここで質問なのですが、「書き込み」ボタンを押すと同時に登録サーブレットと検索サーブレットを動かすことは出来ないのでしょうか?理想としては、「書き込みました」のようなHTML画面は使用せず、一気に更新後の一覧を表示させたいのです。 この辺の知識はあんまり無いもので、具体的な記述方法を教えて頂くと嬉しいです。

    • ベストアンサー
    • Java
  • JSP・サーブレット・HTMLについて・・・

    今、サーブレットとJSPについて勉強しています。 HTMLからサーブレットでリクエストを受け付け、 JSPに転送し表示させたいのですが、フォームからの入力の場合は String carname = request.getParameter("cars"); で入力データを取得するコードを書きますよね? (本ではこう書いてました・・・。) では、HTMLの入力フォームからではなくHTMLのリンク部分を クリックされた時の受付けの場合はどう書けばいいのですか? 勉強を始めたばかりで初心者なので、説明不足の点もあるかも 知れませんが分かりやすくご指導宜しくお願いします…。

    • ベストアンサー
    • Java
  • アクセス2003の日付入力

    新しくデータベースを作ろうとして「テーブル」から「新規作成」の 「デザインビュー」でテーブルの設定画面を出してフィールド名に 「日付」と入力して「データ型」には「日付/時刻」を選んだ後に 画面左下の標準タブから「書式」を選択するのですがその時に ドロップダウンリストの標準が「日付(標準)06/06/19 17:34:23」になります 西暦4桁にしたいのですが、それが出てきません。 ほかの人の台でやるとちゃんと標準が4桁の西暦が出ます おそらく何か設定が違うのかと思います。 「日付(標準)で4桁の西暦」が普通に出るように設定を戻すには どうすればいいのでしょうか? アクセス初心者です。よろしくお願いします。

  • アクセスで日付データの和暦表示と西暦表示を切り替えたいのですが

    日付データを10種類近く(データ入力日、提出日、発行日等)配置したフォームを作っています。 このフォーム中で表示させている全ての日付データを、同じフォームに配置したボタンを押す度に、和暦表示と西暦表示とに切り替えるようにしたいのですが、うまくできません。どのようにしたらよいのでしょうか?