- ベストアンサー
テキストファイルと照合して・・・
ご質問させて頂きます。 javaサーブレットで以下のような処理を行うにはどのようにしたら良いでしょうか? htmlの入力フォームがあります。そのフォームには、社員ID、部課ID、日付などの項目があります。そのデータが登録されているテキストファイルがあります。入力フォームで社員ID、部課ID、日付を入力したときに、テキストファイルのデータと照合させて、もしも一致するデータがなかった場合には、エラーメッセージを表示させる、という処理を行いたいんですがどうすればいいですか?
- みんなの回答 (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さん、多謝。
その他の回答 (1)
- thelma
- ベストアンサー率66% (20/30)
とても広範な質問で、答えづらいものがありますね。 まず、やりたいことを整理しましょう。 1.「HTMLの入力フォームで入力されたデータを取得する」 2.「テキストファイルのデータを読み込む」 3.「入力データをテキストファイルのデータと比較する」 4.「エラーメッセージを表示させる」 こんなところでしょうか。 いずれも技術的には、Javaやサーブレット・JSPの基本的な参考書などで解決できると思います。 そのうえで、まずはひとつひとつ、ご自分でやり方を検討してみられるのがよいかと思います。 もう少し問題の幅を狭めて、かつ具体的な状況説明があれば、回答もついてくるのではないでしょうか? (たとえば、テキストファイルのデータがどういう形式で、どこに保存されているのか、など。。。)
補足
ご返事有り難うございました。 自分自身でもどこからやっていけば良いのか分からなかったので大変に参考になりました。 1.「HTMLの入力フォームで入力されたデータを取得する」 につきましては出来ているんですが、2.「テキストファイルのデータを読み込む」 がどのようにすればいいのかが分かりません。 たぶん、「BufferedReader」を使うと思うんですが、ご教授して頂けたら幸いです。
お礼
ご返事有り難うございました。 大変に参考になりました。