• ベストアンサー

テキストファイルと照合して・・・

ご質問させて頂きます。 javaサーブレットで以下のような処理を行うにはどのようにしたら良いでしょうか? htmlの入力フォームがあります。そのフォームには、社員ID、部課ID、日付などの項目があります。そのデータが登録されているテキストファイルがあります。入力フォームで社員ID、部課ID、日付を入力したときに、テキストファイルのデータと照合させて、もしも一致するデータがなかった場合には、エラーメッセージを表示させる、という処理を行いたいんですがどうすればいいですか?

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

  • ベストアンサー
  • thelma
  • ベストアンサー率66% (20/30)
回答No.2

まず、ファイルを読み込むには、 1. ファイルの読み込みストリームを開く 2. ストリームからファイルの中身を読み出す 3. ストリームを閉じる という感じでしょうか。 基本については、http://www.hellohiro.com/fileio.htm を読んでみてください。 ファイル入力ストリームはnew FileInputStream()で作成し、それを一行ずつ読み込むreadLine()メソッドを使うためにnew BufferedReader()の引数にする、ということですね。 そこで、サーブレットでファイルの入力ストリームを開く方法ですが、、、 普通にハードディスク上の絶対パス(c:\foo.txtみたいな)を記述して、new FileInputStream("c:\foo.txt")とすることも、もちろん可能です。 環境が決まり切っているなら、これでも良いかと思います。 ファイルの絶対パスが変わるかもしれない、またソースコードに書きたくない等々の場合は、 A)ファイルの絶対パスをweb.xmlに記入する <init-param>タグを使って記述し、ServletContextの getInitParameter()を呼び出して値を取り出します。 取り出した値(絶対パス)を引数にして、FileInputStreamを作りましょう。 <init-param>の使い方は、http://www.hellohiro.com/servletwebxml.htm を B)ServletContextのgetResourceAsStream()を使う コンテキストルート(Webアプリケーションのルート)以下に読み込むファイルを置いて、 getResourceAsStream("/WEB-INF/foo.txt")というように呼び出すと、InputStreamが取得できます。 それをBufferedReaderの引数に渡すことができます。 ↓javadocを参照してください。 http://java.sun.com/j2ee/sdk_1.3/ja/techdocs/api/index.html # hellohiro.comさん、多謝。

niiza
質問者

お礼

ご返事有り難うございました。 大変に参考になりました。

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

その他の回答 (1)

  • thelma
  • ベストアンサー率66% (20/30)
回答No.1

とても広範な質問で、答えづらいものがありますね。 まず、やりたいことを整理しましょう。 1.「HTMLの入力フォームで入力されたデータを取得する」 2.「テキストファイルのデータを読み込む」 3.「入力データをテキストファイルのデータと比較する」 4.「エラーメッセージを表示させる」 こんなところでしょうか。 いずれも技術的には、Javaやサーブレット・JSPの基本的な参考書などで解決できると思います。 そのうえで、まずはひとつひとつ、ご自分でやり方を検討してみられるのがよいかと思います。 もう少し問題の幅を狭めて、かつ具体的な状況説明があれば、回答もついてくるのではないでしょうか? (たとえば、テキストファイルのデータがどういう形式で、どこに保存されているのか、など。。。)

niiza
質問者

補足

ご返事有り難うございました。 自分自身でもどこからやっていけば良いのか分からなかったので大変に参考になりました。 1.「HTMLの入力フォームで入力されたデータを取得する」 につきましては出来ているんですが、2.「テキストファイルのデータを読み込む」 がどのようにすればいいのかが分かりません。 たぶん、「BufferedReader」を使うと思うんですが、ご教授して頂けたら幸いです。

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

関連するQ&A

  • javaでLOOKUP

    ご質問させて頂きます。 javaのサーブレットで以下のような処理を行いたいんですが・・・。 csv形式の名簿ファイルがあります。 そのファイルには名前や住所など様々な情報がインプットされており、その中にID情報も含まれています。 個人情報が入力出来るHTMLがあります。そのHTMLにIDが入力出来るテキストボックスがあり、それにIDを入力すると、名簿ファイルからIDを一致させて、対応する住所、名前を引っ張ってくるというような、LOOKUPみたいなことをしたいのですが・・・。 ご教授して頂けたら幸いです。

    • ベストアンサー
    • Java
  • HTTPステータス 404 - /servlet/Testについて

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

    • ベストアンサー
    • Java
  • テキストエリアに入力された回答をまとめる

    お世話になります。 テキストフォームを作成し、そのフォームに 入力されたデータを、日付ごとにファイルに まとめたいと思っています。 日付のlogファイルを一つ作ったのですが、 その後どうプログラミングしたらよいのか、 素人なので良く分かりません。 具体的に教えていただけたら嬉しいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 文字化け対処法

    JAVAサーブレットをやってます。 フォームに入力したデータをファイルへ保存するとき。 全角文字が含まれると文字化けが起こってしまいます。 HTMLの表示の時も文字が化けたり化けなかったりすることがあるのですが・・・。 どうすれば文字化けを防ぐ事ができますか?

    • ベストアンサー
    • Java
  • MSアクセス 条件に合うデータのみを抽出してフォームを開けたい

    アクセスの初心者です。ご指導よろしくお願いします。 フォームで条件に合うデータのみを抽出してフォームを開けたいと四苦八苦しています。 現在は汎用フォームを使い、パスIDとパスワードを入れて照合するとDoCmd.OpenForm "フォーム名", , , " [社員No] = 1" で[社員No]「1」のデータのみ抽出した別フォームが開くようになっています。 希望としては、照合した人が照合した人が持つ[社員No]のデータのみが開くようにしたいと考えています。 パス管理のテーブルは ID、 社員No、社員名、パスID、パスワードになっています。   DoCmd.OpenForm "フォーム名", , , " [社員ID] = 1" の「=1」のところが[パスID][パスワード]と一致する社員Noに置き換える方法を教えてください。 わかりにくい質問で申し訳ないですが、よろしくお願いします。

  • MSアクセス 条件に合うデータのみの抽出してフォームを開けたい

    アクセスの初心者です。ご指導よろしくお願いします。 フォームで条件に合うデータのみを抽出してフォームを開けたいと四苦八苦しています。 現在は汎用フォームを使い、パスIDとパスワードを入れて照合するとDoCmd.OpenForm "フォーム名", , , " [社員No] = 1" で[社員No]「1」のデータのみが開くようになっています。 希望としては、照合した人が照合した人が持つ[社員No]のデータのみが開くようにしたいと考えています。 パス管理のテーブルは ID、 社員No、社員名、パスID、パスワードになっています。   DoCmd.OpenForm "フォーム名", , , " [社員ID] = 1" の「=1」のところが[パスID][パスワード]と一致する社員Noに置き換える方法を教えてください。 わかりにくい質問で申し訳ないですが、よろしくお願いします。

  • 複数の文章を照合するフリーソフトかアプリケーション

    番号1から100番までの名称のテキストファイルがあるとします。 これら100個のテキストファイルを、1つのデータの集合A(データベース?)として扱い、 新しく用意したテキストデータと照合して、そのなかの集合Aに一致する単語と、その単語が属するテキストファイルの番号を表示させたいのです。 上記のことを可能とするにはどうすればよいでしょうか。 上記の機能をそなえるフリーソフトやアプリケーションがあれば、教えてください。

  • エクセル日付データーの一致方法?

    エクセルVBAにて、 元データーに日付形式(2007/8/1~2007/8/31)で 作成されているセルを  入力用フォームのテキストボックス1で日付入力 (入力書式は8/6のようにスラッシュで入力希望)してループ処理にて 一致した日付の隣のセルにテキストボックス2で入力した 数値を入力したいのですが どのようなコードもしくは設定を行えばよろしいでしょうか?

  • テキストエリア

    テキストエリア内にデータ(HTMLソース)を入力し、HTMLファイルとして保存します。 しかし、問題がいくつも出てしまいました。 1.空白の処理・・・半角全角とも空白があるとそこまでのデータしか送れません。 2.複数行のデータが送れない。改行すると、1行目しかデータが送れません。 3.特殊文字。<や>などの文字があると、きちんと送れません。 どうしたらデータをそのままの形で送れるでしょうか?

    • ベストアンサー
    • Perl
  • エクセルでテキストファイルからフォームのテキストボックスにテキスト挿入するマクロ

    マクロでフォームのテキストボックスに直接テキストファイルからテキストを挿入したいのですが出来ますか? opentextでエクセルシートに入れてからフォームにコピーすることはできたのですが、それだと重くなってしまうので直接取り込みたいんですがうまくいきません。 VBやJAVAのreadlineのようなものは使えないんでしょうか。