Webアプリケーションの開発(2) 〜サーブレットの作成〜

サーブレットの作成ここで作成するサーブレットに必要なことをまとめると、次のようになります。サーブレットクラスの作成web.xmlを作成し、URLマッピングを記述する以下の図にあるように2つのファイルを作成していきます。それぞれのファイルの作成について、順番に説明を行っていきましょう。図1:サーブレ

宮本 信二

2005年2月23日 20:00

サーブレットの作成

ここで作成するサーブレットに必要なことをまとめると、次のようになります。

  • サーブレットクラスの作成
  • web.xmlを作成し、URLマッピングを記述する

以下の図にあるように2つのファイルを作成していきます。それぞれのファイルの作成について、順番に説明を行っていきましょう。

サーブレット作成に必要なファイル
図1:サーブレット作成に必要なファイル


サーブレットクラスの作成

まずサーブレットクラスを作成します。ここでは、hogeパッケージを作成し、そこにHogeServlet.javaという名前でサーブレットクラスを作成します。サーブレットクラスを作成する手順は、第2回で解説したJavaクラスの作成と同じ手順です。作成したクラスを次のように編集します。

HogeServlet.javaクラスのソース

package hoge;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HogeServlet extends HttpServlet{

protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.getWriter().println("hello");
}
}

URLマッピング

次にURLマッピングのためにweb.xmlを作成します。Tomcatプロジェ クトを作成した時点ではweb.xmlが存在しませんので、新規ファイルとして作成します。作成する場所はWEB-INF直下で、ファイル名は必ずweb.xmlにしてください。そして、作成したweb.xmlを以下のように編集します。

web.xmlのソース




xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-

app_2_4.xsd"
version="2.4">


hoge
hoge.HogeServlet



hoge
/hoge




なお、手動と目視だけでXMLを記述すると間違えやすいので、既存のweb.xml(例えば、%CATALINA_HOME%/webapps/ROOT/WEB-INF/web.xmlなど)をコピーし、内容を書き換え た方が確実です。また、ここではサーブレット2.4のXMLスキーマで書いていますが、2.3以前で使われていたDTDで記述することもできます。

サーブレットの実行

2つのファイルを作成したら、サーブレットの動作確認を行ってみましょう。Tomcatを起動し、ブラウザでhttp://localhost:8080/myweb/hogeにアクセスしてください。図2のように表示されればOKです。

サーブレットの実行
図2:サーブレットの実行


コンソールビューの補足

Tomcatを利用していると、ついつい起動していることを忘れて、重複して起動してしまうことがあります。この場合は「コンソールビュー」に図3のような情報が表示され、後から起動したTomcatは起動されません。

コンソールビュー
図3:コンソールビュー


Tomcatを含め、複数のJavaアプリケーションを起動すると、今何が起動していて、コンソールにどのプロセスの情報が表示されているのかがわかりにくくなります。そのようなときは、コンソールビューのツールバーにある「終了したすべての 起動を除去」で不要なものを消し、さらに実行中のプロセスも「終了」して、キレイな状態にしてからTomcatを起動し直してください。

また、複数のプロセスを同時に起動している場合などで、前の出力を確認したいときは「プロセスの切り替え」で出力の表示を切り替えることができます。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30