|
||||||||||||||||||||||||||
| 1 2 次のページ | ||||||||||||||||||||||||||
| はじめに | ||||||||||||||||||||||||||
|
本稿では、前回までに構築した環境を利用して、実際にJSP&サーブレットアプリケーションを作成します。 |
||||||||||||||||||||||||||
| JSPの基本構文を学ぶ | ||||||||||||||||||||||||||
|
JSP&サーブレットの実行環境が整ったところで、動作確認を兼ねて、JSPだけで簡単なアプリケーションを作成してみましょう。 basic.jsp(リスト1)は、クライアントが利用しているブラウザの種類を表示するJSPページです。簡単な入門用プログラムですが、余計な部分が一切ないところで、まずはJSPの基本的なポイントを確認してみましょう。 リスト1:basic.jsp なお、JPSファイルは、アプリケーションルート配下のMETA-INFフォルダとWEB-INFフォルダ以外の任意のフォルダ(注1)に配置することができます。本稿では、アプリケーションルート直下に配置することにします。Tomcat、Apacheが起動していることを確認したうえで、ブラウザから下記のURLにアクセスします。
http://localhost/marugoto/basic.jsp
図1の画面が表示されれば、動作確認は成功です。 ![]() 図1:basic.jspの実行結果
※注1:
META-INFフォルダとWEB-INFフォルダは、いずれもJSP&サーブレットアプリケーションでは特別な意味を持つフォルダとなります。具体的には、設定情報やクラスライブラリといった、ユーザが直接アクセスする必要のない(アクセスさせたくない)ファイルをここに配置します。また、これらのフォルダ内のファイルにクライアントからアクセスすることはできません。
|
||||||||||||||||||||||||||
| 3つの基本構文 | ||||||||||||||||||||||||||
|
動作環境が確認できたところで、JSPを学ぶうえでの基本となるポイントを確認しておきましょう。basic.jspでまず押さえておきたいポイントは、以降の3点です。 |
||||||||||||||||||||||||||
| 1. 文字コードは@pageディレクティヴで宣言 | ||||||||||||||||||||||||||
|
「ディレクティヴ(指令)」は、コンテナ(Tomcat)に対してJSPページの処理方式を伝えるための仕組みで、次のような構文で記述します。 属性値は、その値が数値でも文字列でも、必ずダブルクォーテーションで囲む必要があります。また、その性質やコードの可読性などの理由からも、原則としてページの先頭に記述するのが好ましいでしょう。 JSPページで利用可能なディレクティヴにはいくつか種類がありますが、その中でも重要なのが@pageディレクティヴです。JSPページ内でマルチバイト文字を利用する場合には、@pageディレクティヴのcontentType属性で明示的に文字コードを宣言する必要があります。リスト1の1では、このJSPページが「HTML形式のファイルをWindows-31Jという文字コードで出力する」ということを宣言しています(注2)。
※注2:
J2SE 1.4.1以降のバージョンより文字コードの扱いに変更があったため、従来の「Shift_JIS」を指定すると一部の文字(「〜」など)が文字化けしてしまう可能性があります。必ず“Windows-31J”を使用するようにしてください。
JSPにおけるデフォルトの出力文字コードは、「ISO-8859-1(Latin 1)」という欧米系言語です。そのため、contentType属性の指定がない場合、図2のようにページが文字化けしてしまう可能性があるので、注意してください(注3)。 ![]() 図2:文字化けしたJSPページ
※注3:
Apache/Tomcat間の連携を行っている場合、Apacheの設定ファイルであるhttpd.confにも注意が必要です。httpd.confにAddDefaultCharset ISO-8859-1のような記述がある場合、contentType属性の指定よりも優先されてしまうので、httpd.confの該当部分を必ずコメントアウトするようにしてください。
また、リスト1では割愛していますが、もしもJSPファイルそのものを出力文字コードと異なる文字コードで記述している場合、pageEncoding属性で文字コードを明示する必要があります。たとえば、JSPファイルそのものはUTF-8で記述されていて、Windows-31Jで出力したい場合には、以下のように記述します。 |
||||||||||||||||||||||||||
|
1 2 次のページ |
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||



