JPS 日記 簡単な掲示板を作ってみる 03.12.6
簡単な掲示板
とりあえず、掲示板でも作ってみることにした。名前とメッセージを入力して、サーバのファイルに書き込むだけのもの。
知っていることと言えば、授業で教えてもらったことぐらいなので、あまり難しいことは考えないことにした。

パラメータの取得
ユーザが入力した値(POST,GETした値)は、request.getParameterで取得できる。ただ、その取得した値をそのまま使用すると文字化け問題が発生するようだ。
文字化けが発生するところといったら、ファイルの読み書きか、パラメータ取得時かという検討はついたが、なかなか解決できなかった。
だいぶ悩んだが、google先生に尋ねたら解決方法を教えてくれた。google先生バンザイ!
解決方法
取得したパラメータをiso-8859-1のバイト配列で取り出し、JISAutoDetectでStringを再構築すればいいみたい。こんな感じ。
strName = new String(
request.getParameter("name").getBytes("iso-8859-1"),
"JISAutoDetect");
<%! %>ディレクティブは、ページ内で使用する変数やメソッドを定義するときに使用する。
個人的に、できるだけHTMLタグとは混ぜたくなかったので、ログ表示用メソッド(printLog)を<%! %>を使って定義してみた。
最初、outオブジェクトを使って出力するようにしていたが、エラーがでた。どうやら、ここでは使えないみたいだった。requestやoutなどのあらかじめ定義されてるオブジェクトは、ここではダメっぽい。
ということで、outを引数にとることにして解決した。型はJspWriterらしい。
JSPはページにアクセスしたときにServletに変換されコンパイルされる。ページにアクセスしないと、コンパイルエラーすらわからない。。。うーむ、めんどくさい。eclipseとかNetBeansとか使った方がいいかなぁ?文法チェックもできるし。

文字化け問題にだいぶ時間を費やしたけど、解決したのでとりあえず完成!
でも、Safariでは、エンコードをデフォルトから明示的にEUCに設定してもらはないと文字化けしてしまう。Netscape7の場合は、ただしく表示できた。ブラウザの問題かなぁ?
ファイルの排他処理が無いので、実際の使用には耐えられないけど、まぁいいか。練習、練習。
Javaで書けるので、ほんとにラクチンだった。Javaアプリケーションとまったく同じように書けるのが素晴らしい。
こんな感じ。
ソースファイル

戻る