Springフレームワークに必要となる設定ファイルはいくつかあるが、まずは "web.xml" の設定を行う。
他の全ての設定ファイルを作る前に、このファイルを作成する。
(設定ファイルは上位→下位の順に作成していくと分かりやすい)
web.xmlはフレームワークを使わないサーブレットプログラムと同様、クラスパス上に置く。(WEB-INF/web.xmlなど)
Tomcat等のAPサーバが持っているweb.xmlにない、アプリケーション独自の設定を追加するために必要である。
Springフレームワークを使うときは、最初にXMLのバージョンとエンコードを設定する。
<?xml version="1.0" encoding="Shift_JIS"?>
昨今のプロジェクトでは、UTF-8が増えているがここではShift_JISで解説する。
(ただし設定ファイルごとにエンコードは変えてもいいので、別のファイルはUTF-8で作成する。後述)
次に、web-appタグを記述する。
次の記述は、Spring3.0.2(Java1.6、Tomcat6.0)を動かしたときの設定。
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
JSP中で使えるEL式等が異なるため、この設定は重要。
(例えばこの設定だと、Java1.5、Tomcat5.5で動かない)
ネットを調べて探し当てるのは時間と労力の無駄遣いなので、ダウンロードしたSpringフレームワークに付属しているサンプルの設定ファイルをコピーすること。
そうでなければ既存の動いている信頼性のあるサンプル(書籍のおまけでも何でも)からコピーする。
日本語対応させるためには、次の設定を記述する。
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>Shift_JIS</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
ここでは日本語コードをShift_JISとしている。
encodingの箇所を変更すれば、日本語コードを変更できる。
Springの設定ファイルを読み込ませるためのリスナ設定は、次の通り。
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
Springフレームワーク使う宣言のようなもので、こう記述するとSpringの設定ファイルとして "/WEB-INF/applicationContext.xml" を読むようになる。
applicationContext.xmlというファイル名はデフォルトで、通常はこの名前を用いる。
サーブレットの設定は、次の通り。
<servlet>
<servlet-name>[プロジェクト名]</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>[プロジェクト名]</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
[プロジェクト名]の箇所はeclipseのプロジェクト名を記述する、で構わない。(後で変更してもよい)
Tomcat等のAPサーバを起動後、"http://localhost:8080/[プロジェクト名]/index.html"といったアクセスとなる。
servlet-mappingは"index.html"の部分のことを示す。
ブラウザのURLに"http://localhost:8080/[プロジェクト名]/index.html"と入力してEnterを押した場合、index.htmlに対応するコントローラをSpringフレームワークが探すこととなる。
ちなみにこう書いた場合"index.jsp"を指すが、それは別の設定ファイルでprefixとsuffixを操作しなくてはならない。(後述)
ここまでの設定を順番に記述し、</webapp>タグで閉じればweb.xmlの記述は完了。
0 件のコメント:
コメントを投稿