TOPサーバ構築・運用> はじめに




はじめてのサーバサイドJava
はじめてのサーバサイドJava

第5回:JSP&サーブレット〜JSP基本編〜

著者:山田 祥寛   2006/4/24
1   2  次のページ
はじめに

   本稿では、前回までに構築した環境を利用して、実際にJSP&サーブレットアプリケーションを作成します。
JSPの基本構文を学ぶ

   JSP&サーブレットの実行環境が整ったところで、動作確認を兼ねて、JSPだけで簡単なアプリケーションを作成してみましょう。

   basic.jsp(リスト1)は、クライアントが利用しているブラウザの種類を表示するJSPページです。簡単な入門用プログラムですが、余計な部分が一切ないところで、まずはJSPの基本的なポイントを確認してみましょう。

リスト1:basic.jsp
<%@ page contentType="text/html;charset=Windows-31J" %> (1)
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> (2)
<c:set var="msg" value="Hello, JSP!" /> (3)
<html>
<head>
<title>JSPの基本</title>
</head>
<body>
${msg} (4)
</body>
</html>

   なお、JPSファイルは、アプリケーションルート配下のMETA-INFフォルダとWEB-INFフォルダ以外の任意のフォルダ(注1)に配置することができます。本稿では、アプリケーションルート直下に配置することにします。Tomcat、Apacheが起動していることを確認したうえで、ブラウザから下記のURLにアクセスします。

http://localhost/marugoto/basic.jsp

   図1の画面が表示されれば、動作確認は成功です。

basic.jspの実行結果
図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)。

文字化けしたJSPページ
図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で出力したい場合には、以下のように記述します。

<%@ page contentType="text/html;charset=Windows-31J" pageEncoding="UTF-8" %>

1   2  次のページ

書籍紹介
まるごとサーバサイドJava! Vol.1
まるごとサーバサイドJava! Vol.1 〜初心者からプロまですべての開発者に贈る〜サーバサイドJavaのすべてをまるごと紹介
サーバサイドで実行されるシステム環境Java EEを取り巻く環境は一大変革を遂げようとしています。J2EE時代のEJB(Enterprise Java Beans)からPOJO(Plain Old Java Object)へ、オブジェクト指向からアスペクト指向へ。Sun Microsystems外から発生した新しい流れは本家Java EE 5へ取り入れられる予定です。本書はこうしたJavaの新潮流を余すことなくお伝えします。

発売日:2006/09/01
定価:\2,415(本体 \2,300+税)
WINGSプロジェクト  山田 祥寛
著者プロフィール
有限会社WINGSプロジェクト   山田 祥寛
Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト(http://www.wings.msn.to/)」の代表。主な著書に「10日でおぼえる入門教室シリーズ(Jakarta・JSP/サーブレット・PHP・XML)」(以上、翔泳社)、「書き込み式 SQLのドリル」(ソシム)など。最近ではIT関連技術の取材、講演まで広くを手がける毎日。

この記事の評価をお聞かせください
ボタンをクリックしますとウインドウが開きます。

INDEX
第5回:JSP&サーブレット〜JSP基本編〜
はじめに
  2. 定型処理をプログラムレスで実現する「アクションタグ」
はじめてのサーバサイドJava
第1回 Are you ready for Server Java ?
第2回 JSP&サーブレットの基本環境設定(前編)
第3回 JSP&サーブレットの基本環境設定(後編)
第4回 Windows/Linux共通の基本環境の設定
第5回 JSP&サーブレット〜JSP基本編〜
第6回 リクエストデータの利用(前編)
第7回 リクエストデータの利用(後編)
第8回 Cookieとセッション情報
第9回 データベースとの連携(前編)
第10回 データベースとの連携(後編)
第11回 デプロイメントディスクリプタ活用術(前編)
第12回 デプロイメントディスクリプタ活用術(後編)