読者です 読者をやめる 読者になる 読者になる

感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

JSP/サーブレットを作る際のややこしいディレクトリ構成のまとめ。

JavaEE
<スポンサーリンク>

コンテキストルート

コンテキストルートというのは、Webアプリケーションを構成するすべてのコンテンツを格納するディレクトリである。
Webアプリケーションを作成する際に作る根幹となるディレクトリのようなもので、コンテキストルート以下にWEB-INFを置いたり、WEB-INFの下にclassesを置いたりと、「Java EE仕様の標準ディレクトリ構成」というのが仕様として定められている。


Tomcatでは、%CATALINA_HOME%\webapps以下にコンテキストルートを置くことが決められている。
CATALINA_HOMEというのは、Tomcatのルートディレクトリのこと。
apache-tomcat-6.0.20とか、そういうディレクトリのことをいう。

Java EEの仕様では、コンテキストルート以下のディレクトリ構成は定められているけれど、コンテキストルート自体をどこに配置するかはコンテナによって異なる。

WEB-INFは、Javaクラスファイルや設定ファイルを格納する。
これは"必ず"コンテキストルート直下に置かなければいけない。Java EEの仕様としてそれは定められている。
そして、WEB-INFの下には「classes」というフォルダと、web.xmlがなければいけない。
このWEB-INFというのはインターネットでは公開されない。

context-root\WEB-INF
context-root\WEB-INF\classes
context-root\WEB-INF\web.xml

という仕様として定められたディレクトリ構成。
これに初心者はハマる。というが新人の頃ハマった。
10日でわかるサーブレット、のような本を参考に頑張ろうとしたんだけど、web.xmlの解説とか全然書いてなかったもんな。
結局、コードは書いてみたものの、404エラーが出まくって先に進めず、みたいなことで本当に泣きたくなった。

こういうJava EEの仕様とかディレクトリ構成こそが、ちゃんと勉強したいところなのに、書籍でもけっこう流されていたりして、なかなか理解する機会がない。
Webコンポーネントディベロッパという本は高いけれど試験の本だけあってこういう地味だけど大切な部分を余すところ無く解説してくれている。
今、ちょうど復習している。
基礎が大事。それも、繰り返し繰り返しやることが大事だと信じている。

WARとかJARとか

WARファイルとはWeb ARchiveファイルの略で、Webアプリケーションを圧縮したファイルのこと。
WARファイルをWebコンテナ上に配置することを配備(デプロイ)という。
WARファイルの拡張子はwarだが、圧縮方式は通常のJARファイルと同一である。
そのため、warファイルはjarコマンドで作成する。

JARファイルは一般的なクラス群やライブラリ、JDBCドライバ等を対象にパッケージングされた圧縮ファイルのこと。
JDBCドライバのjarなどはWEB-INF/libディレクトリに配置される。

・jarを作成するコマンド

jar cvf [作成するファイル名] [対象のディレクトリ名/ファイル名]
> jar cvf hogeApp.war

web.xmlまたの名を配備記述子。
web.xmlは・・・
コンテキスト単位に必ず存在する
WEB-INFディレクトリ以下に存在吸っる。
記述方法はサーブレットの仕様で定められている。

その他

Cookieとは、WebサーバーとWebブラウザ感で状態を保持するための技術のことで、HTTPヘッダーに含まれるテキストデータが実体である。

勉強した本(参考文献)

SUN教科書 Webコンポーネントディベロッパ(SJC-WC) 試験番号:310-083

SUN教科書 Webコンポーネントディベロッパ(SJC-WC) 試験番号:310-083

感謝のプログラミング

今回で感謝のプログラミングは【425時間目】
10000時間まで、あと【9575時間】

当初の予定では1年で2000時間頑張ろうと思ってたんだけど、だいぶ遅れてしまっている。
33歳までに(会社の時間以外に)10000時間積み重ねたいんだけどなぁ。

一方でまだ425時間目なのに、ずいぶん色んなことができるようになったと思う。
継続はまさに力になるのだと、自分的にはけっこう驚いている。
まだまだずっと、地道に続けようと思う。