JavaのWebアプリケーション開発フレームワークによる、Webサイト開発の顛末記です。

EclipseのMavenを使った、Spring-MVC、Thymeleaf、MyBatis 等のプログラミングテクニックを、
備忘録的に記録しています。実際に動くソースコードを多用して説明していますので、
これからEclipseや、Spring-MVCを始めたいと思っている人にとって、少しでも参考になれば幸いです。
■SpringMVC の小径 第4歩 Spring-MVCの初期設定
4-1)web.xml 設定
ここまで来たら、Spring-MVCの花園はもう目の前です。
ですが、花園にたどり着く前に最後の難所が待っています。
できれば避けて通りたいところですが、ここしか道がないので意を決して進みましょう。

ここでは、Spring-MVCをTomcatで動かすための設定を行います。
Tomatのデプロイメント記述子 web.xml に対して、Spring-MVCを使うよ!と教えてあげる作業です。
1-2)Mavenプロジェクトの編集」の際に、web.xmlのひな形が作成されているはずです。
この、ひな形web.xmlを選択して、マウス右ボタンクリックして、
表示されたメニューから「次で開く」ー「Faces構成エディター」で開きます。
Spring-MVCロードマップ
ひな形なので、中身はほとんど空っぽです。
この、web.xmlに、Tomcatアプリケーションの標準的な設定+Spring-MVCの設定を追加します。
具体的な編集内容は以下となります。
※)上のweb.xmlの内容は、自由にコピペしてもらって結構です。

それでは少し解説しておきましょう。
1)ウェルカムページ
  web.xmlのひな形に最初から設定されている設定です。
  ApacheのDirectoryIndexと同じで、
  http://localhost:8080/jLabo の様にURL末尾が
  ディレクトリだけを指定してアクセスしてきた場合に表示するページの設定です。
  ここでは、ディレクトリ直下の、index.htmlかindex.jspの
  どちらかを表示する設定になっています。

2)エラーページ
  HTTPエラーや例外が発生した時に表示するページの設定です。
  この設定をやっておかないと、例外処理が発生した場合など、
  ブラウザにカッコ悪いエラーページが表示されるので設定しておきましょう。
  ここでは、HTTPステータス404(Page Not Found)と
  HTTPステータス500(Internal Server Error)
  が発生した場合に、index.html を表示するように設定しています。
  もちろん、これ以外にも401エラーとか403エラーとか
  色々発生原因はありますが、大体上の2つ以外はめったに発生しないので
  これでも十分かと思います。

3)文字コードのエンコード
  一般的なTomcatアプリケーションのお約束の設定です。
  今回、view(HTML)は全て、UTF-8で作成するので、encoding をUTF-8 とします。
  これをやっとかないと、ブラウザからのリクエストパラメータの中に日本語(全角)があると文字化けします。

4)Spring MVCの設定
  Tomcatに対して、このアプリケーションは、Spring-MVCを使いますよ! という宣言部です。
  Spring-MVC設定ファイル名を指示します。
  設定ファイル名は、定番的に「applicationContext.xml」とします。
  「applicationContext.xml」は、Spring-MVCの肝なので、別途後述します。

5)リクエストパターン指定
  ブラウザからリクエストされたURLのパス名の中の一定のパターンを元に、
  Spring-MVC HandlerMapping が、コントローラをマッピングするための指定を行います。
  このプロジェクトでは、とりあえず「*.xhtml」としておきますが、
  具体的例を挙げると)
   ブラウザのリクエストURLが、「http://localhost:8080/j_Labo/sample.xhtml
   だったとした場合、HandlerMappingは、/sampleという名前でマッピングされたコントローラを検索します。
   この名前でマッピングされたコントローラが見つかったら、このコントローラが起動されます。
   「http://localhost:8080/j_Labo/sample.jsp」とかリクエストしても
   リクエストパターンにマッチしないため、エラー404が返されることになります。

  パターンは特に決まりはありません。極端な例では「*」とすることもできますが、
  これだと、どんなリクエストが来ても、コントローラを起動しようとするので、私はあまりお勧めできません。
  あとで、やっぱやーめたとなると、HTMLの修正が大変になるので、最初に真面目に考えて設定しましょう。

 

以上で、デプロイメント記述子 web.xmlの設定は完了です。

最後の難所もいよいよ残すところ、あと一歩。
最後の岩場で足を踏み外さないよう、しっかり足元を確認しながら進みましょう。