Tomcatはどこまで“安全”にできるのか?(1)

“安全”のために
Tomcatを理解し、構築し、動作させる


アメニクス
x-lab チーム
2007/10/11


「Hello World!」を表示してみよう


Tomcatでは、サーブレットをどこに配置すればいいのか?

 それでは一通り設定が終わったところで、まずは簡単なサーブレットを作成して動作を確認してみましょう。まずは、Tomcatのドキュメントルートのディレクトリへ移動します。

cd /opt/tomcat6/webapps/ROOT/

 ドキュメントルート以下には、classファイルやweb.xmlなどの外から直接アクセスさせないデータを格納しているWEB-INFディレクトリが存在しているので、WEB-INFディレクトリへと移動します。

cd WEB-INF

 ディレクトリを移動してファイルを見てみると、サーブレットなどのクラスファイルを保存するためのディレクトリが存在せず、「web.xml」しか存在しないことが分かります。

 「HelloWorld!」のコードを作成する前に、クラスファイルを格納するための「classes」ディレクトリを作成します。

mkdir classes

 これでサーブレットを作成する準備が整いました。「classes」ディレクトリ配下に移動します。

cd classes

サンプルファイルの作成

 エディタを用いて「HelloWorld.java」を作成します。

vi HelloWorld.java

 ファイルの中身は以下のように記述します。

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet {

    public void doGet(HttpServletRequest request
                     ,HttpServletResponse response)
    throws IOException, ServletException{

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Hello World!</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Hello World!</h1>");
        out.println("</body>");
        out.println("</html>");
    }
}

サンプルファイルをコンパイルしよう

 サーブレットを作成したら、コンパイルを行います。コンパイル時には必ずclasspathの指定を忘れないようにしてください。

javac -classpath /opt/tomcat6/lib/servlet-api.jar HelloWorld.java

 これで一通り準備は完了しました。

web.xmlにサーブレットを登録

 しかし、サーブレットを作成したとはいえ、この状態のままページへアクセスしてもHelloWolrdの実行結果は表示されません。「web.xml」への登録が必要です。

 /opt/tomcat6/webapps/ROOT/WEB-INFの配下にあった「web.xml」をエディタで開きます。

vi /opt/tomcat6/webapps/ROOT/WEB-INF/web.xml

 ファイル内部に書かれている<web-apps>と</web-apps>のタグの間へ次の行を追加します。

<servlet>
    <servlet-name>HelloWorld</servlet-name>
    <servlet-class>HelloWorld</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>

 これで初めてサーブレットとしてURLから呼び出すことができるようになります。

表示をして確認

 次のような画面が表示されれば、「Hello World!」サンプルの作成を通した設定確認は完了です。

図4 「Hello World!」を表示
図4 「Hello World!」を表示

Tomcat 6の新機能と運用に関する設定

 今回は以上で終わりですが、次回はTomcat 6の新機能と運用に関する設定について詳しく追っていきます。

@IT関連記事


Tomcatの環境を構築する
やり直し「JSPとTomcat」(2) JSPの実行環境となる「Webコンテナ」の1つ、「Tomcat」を実行するための環境を構築し、次回以降の実習環境を作ります
Java Solution」フォーラム 2006/3/2
サーブレット/JSPの開発環境を作る
[連載]
基礎から学ぶサーブレット/JSP(3) サーブレット/JSPの開発/実行環境を整えるためにJ2SE、Tomcat、Apacheのインストールを行います
Java Solution」フォーラム 2003/3/19
Webサービスを試す環境を作る
[連載]パソコンで試してわかるWebサービス(1) パソコンとフリーのソフトウェアを使いWebサービスの環境を作ってみよう。自分で試せば、きっとサービスが理解できます
Java Solution」フォーラム 2002/8/8
JSPの実行環境を整える
[連載]Tomcatを使う「JSPプログ
ラミング」(2)
新人SE、プログラマのためのJSP入門講座。今回はJSPの実行環境を整えます
Java Solution」フォーラム 2001/5/30
Javaプロパティファイルを編集できるEclipseプラグイン
CoolなEclipseプラグイン(1) 
役立つプラグインを毎月紹介。今回は「Javaのプロパティファイルエディタ」「Tomcatコントローラ」「HTML/JSP/XMLエディタ」

Java Solution」フォーラム 2005/3/26
TomcatでWebDAVを実現する
[連載]現場に活かすJakarta Project(11) コンテンツのアップロードやダウンロードに利用されるWebDAVは、ApacheだけでなくTomcatでも実現できる。その方法を紹介しよう
Java Solution」フォーラム 2003/10/23
EclipseでTomcatを使ったJ2EE開発を行う
[連載]Eclipseを使おう!(3) Eclipseは単体ではJ2EE開発に対応しない。LombozプラグインとTomcatを使ったWebアプリケーションを作成してみよう
Java Solution」フォーラム 2003/2/14
実用 Apache 2.0運用・管理術
本連載では、Apache 2.0の運用や管理方法を解説する。まず必須設定と基本的なセキュリティ対策を行い今後の運用に備える
第1回 Apache 2.0必須設定と基本セキュリティ対策
第2回 JMeterによるWebサーバ性能評価の勘所
第3回 httpd.confによるWebサーバの最適化
第4回 mod_deflateによるコンテンツの圧縮転送
第5回 Poundで作るロードバランサとSSLラッパ
第6回 Apacheでファイルサーバ(WebDAV over SSL)
第7回 Apacheでファイルサーバ(LDAP認証編)
最終回 接続制限で無法なダウンローダを撃退
連載各回の解説はこちら
Linux Square」フォーラム

1-2-3

 INDEX
第1回 “安全”のためにTomcatを理解し、構築し、動作させる
  Page1
いまさら聞けないTomcat
CentOS 5.0に最新Tomcatをセットアップ
  Page2
Tomcatを自動的に起動するには?
TomcatとApacheを連携させるmod_proxy_ajp
Page3
「Hello World!」を表示してみよう
Tomcat 6の新機能と運用に関する設定



Java Solution全記事一覧

Java Solution フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

アイティメディアの提供サービス

ホワイトペーパー(TechTargetジャパン/閲覧には会員登録が必要です)

スキルアップ/キャリアアップ(JOB@IT)

- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  New! それはスペックで、導入が目的ではない
導入の「先」を見据えた、ITIL運用とは?

  New! 見れば必ず気に入る“机の上”PCサーバ
小さくて静か。ユーザー目線で考えた自信作

  New! あなたの会社の将来は本当に大丈夫?
屋台骨を支えるIT人材、育成できてますか?

  New! いま、SaaSエンジニアがおもしろい!
〜エンジニア・キャリア進化論(第10回)〜

  このご時勢、数年後の計画は分からない
迷った時のミッドレンジストレージはコレ

  複数のストレージを“1つ”にできる、
ストレージ管理の「魔法の箱」を徹底解剖

  シンプル・簡単 iSCSI仮想化ストレージ
ITインフラ全体の“正しい仮想化”実現!

  ソフトウェアで、できることとは?
ビジネス直結「リカバリ・マネジメント」

  そのサーバに統合して安心ですか?
「現実的なサーバ統合」の3つの要件とは

  ――品質は上げてコストは半減――
ロボットが見せるPC管理の新しい形

  WebLogicとCoherenceが融合した
グリッド型アプリケーションサーバを実現

  「偽装」も「疑わしい動き」も逃さない
1つのエージェントで徹底的にPCを守る!

  もはや、プライベートのツールではない!
企業・自治体も導入するSNSの効果とは?

  「リポート機能は“すごい”のひとこと」
ある保険会社の“DB監査製品”導入事例

  新しい技術の導入 ⇒ また最初からやり直し
の必要がなくなる「普遍性のあるノウハウ」

  ユーザー任せのパスワード管理は危険!
法整備対策に有効な高効果・低コスト製品

  『フリーでやってみたいけど……』
そんなエンジニアの不安をすべて解決!

  「だれも見たことがない、10年後の
『ソフトウェア産業』を一緒に創りたい」

  「ウチはUTMなんかいらない」ってホント?
エンタープライズ市場でも選ばれる理由

  物理も仮想も効率的に運用・管理したい!
問題と解決策はこちら≫≫

  【工事進行基準】対策をチャンスに!
プロジェクト「見える化」で効率アップ!

  【工事進行基準】システム業界も導入!
新時代のプロジェクト管理はこれで決まり

  看護休暇、時短勤務、育児フレックス……。
各種の支援で「柔軟な働き方が可能な環境」

  『こうあるべし』ではなく、全ての人が
力をフルに発揮できる職場環境を考える

  宅急便もサーバも、止めない・止まらない
これが、クロネコヤマトのデータセンター

  高評価の技術採用で“いいところ取り”
低価格なのに機能は“フル”な次世代UTM

  “超高速”なのに“低価格”なUTM
その性能の高さの秘密とメリットに迫る!

  金融業界でのBPM適用<成功ケース>紹介
BPMシステムの導入のための5つのポイント

  間違いだらけのセキュリティ対策から脱却
「脅威の見えない化」対抗する2つの特徴

  “Windows”も“Linux”も“Solaris”も
SAP運用に最適な【x64サーバ】とは?

  転職した理由は「社風が合うと感じたから」
入社2カ月“勝ち組エンジニア”に話を聞く


ソリューションFLASHPR