こんばんは、堀井です。
今の現場でサーブレットとjspを使っているのですが、Javaの知識もまともにない状態で現場入りしたので本当に周りに迷惑をかけまくりながら1年過ごしました。
で、流石にマズすぎるのでアプリを作りつつ勉強をしているのですが、やっぱり分からないことだらけです。
その中でも特に解決に時間がかかったことがありましたのでざっくりと書いておきます。
あまり関係はないと思いますがIDEはEclipse、サーバーはTomcatを利用しました。
フォルダ構造
■app
┗Javaリソース
┗src
┗cmn(パッケージ)
┗Tool.java
┗controller(パッケージ)
┗ForwardMemberPage.java
┗WebContent
┗WEB-INF
┗data
┗memberList.csv
┗jsp
┗index.jsp
┗MemberPage.jsp
ざっくり階層としてはこんな感じです。
動作概要
- index.jspからMemberPage.jspに遷移する
- 遷移時にmemberList.csvの内容を読み込んでMemberPage.jspに表示させる
- MemberPage.jspでは読み込んだメンバーの隣にチェックボックスがある
- チェックを入れ登録ボタンを押すとcsvの中身を書き換えてページを再表示する
と言った内容です。
頑張ってcsvを書き換えるソースを書いて実行したところ、期待通りの結果を画面に反映させることができました。
ただなぜかmemberList.csvを再表示しても書き換わっていないんですよね。
実際に書き換えられた状態で画面に表示されているのにおかしいな・・・と調べること暫く、ようやく解決しました。
サーブレットで弄ったファイルの置き場所は変わる?
ファイルパスを見てみると
/WEB-INF/data/memberList.csv
ではなく
.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\App\WEB-INF\data\memberList.csv
なんて場所にありました。
一時ファイル的な存在なのかアプリケーションスコープ的な存在なのかまでは正直よく分かりませんでした。いかがでしたか?
サーバー側の動作を理解している人からすれば当たり前の話とは思いますが、初めてまともに触ったので新鮮な驚きでした。
将来的にはサーバーサイドも勉強しないといけなくなるんだろうなとはひしひし感じましたが、まずはサーブレットから。
あとはTCP/IPと応用情報と・・・。
備忘録的な意味合いが強いため雑に書いてしまいましたが本日はここまでです、それではまた次回。
あ、念のためですがデータベースは意図的に使っていないだけです・・・。