|
この記事は、JavaでWebアプリケーションを作ってみたいが「Servletって何?」「Tomcatとは?」という方に向けています。 この記事を読み進める上で、以下の知識があるとスムーズです。 Javaの基本文法(クラス・メソッドの概念) HTTPの基礎(GET/POSTの違いくらい) Eclipseにプロジェクトをインポートできるくらいの操作感覚 Eclipse+Tomcatで手軽にServlet開発を始めようServletは、Javaで書かれたサーバーサイドプログラムの部品です。 OracleまたはOpenJDKからJDK 17以降をダウンロードしてインストール Eclipse IDE for Enterprise Java and Web Developersを入手・展開 Apache Tomcat 10.xのCore zipをダウンロードし、適当なフォルダ(C:\Tomcatなど)に展開 Eclipseを起動し、ワークスペースを指定して初期設定を終える ステップ2:EclipseにTomcatランタイムを登録メニュー「Window」→「Preferences」→「Server」→「Runtime Environments」を選択 「Add」ボタンを押し、Apache→「Apache Tomcat v10.0」を選択(バージョンはダウンロードしたものに合わせる) 「Next」でインストールフォルダを指定(ステップ1-3で展開したフォルダ) JREにJDKを選択し「Finish」→「Apply and Close」 ステップ3:動的Webプロジェクトを作成「File」→「New」→「Dynamic Web Project」 Project nameに「helloServlet」と入力 Target runtimeで先ほど登録したTomcatを選択 Dynamic web module versionは「5.0」、Configurationは「Default Configuration for Apache Tomcat」を選択 「Next」→「Next」で「Generate web.xml deployment descriptor」にチェックを入れ「Finish」 ステップ4:Servletクラスを作成プロジェクトの「Java Resources/src」を右クリック→「New」→「Servlet」 Packageに「com.example」、Class nameに「HelloServlet」と入力 「Next」でアノテーションベース(@WebServlet)を選択し「Finish」 自動生成されたコードを以下のように編集 Java package com.example; import java.io.IOException; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @WebServlet("/hello") public class HelloServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); response.getWriter().println("<h1>Hello, Servlet!</h1>"); } } ステップ5:Tomcatサーバーを起動してデプロイ「Servers」ビューがなければ「Window」→「Show View」→「Servers」で表示 ビュー内を右クリック→「New」→「Server」→「Apache」→「Tomcat v10.0」→「Next」 左ペインの「Available」から作成したプロジェクトを右ペイン「Configured」に移動し「Finish」 「Servers」ビューでTomcatを選択し、緑の「Start」ボタンをクリック コンソールにINFO: Server startupと出れば起動成功 ステップ6:ブラウザで動作確認ブラウザで:8080/helloServlet/helloにアクセス 「Hello, Servlet!」と表示されれば成功! ハマりどころとエラー解決 症状1:クラスが見つからない(ClassNotFoundException)通常はjakarta.servletパッケージが見えていないため。 URLが間違っている(大文字小文字を正確に) @WebServlet("/hello")のパスが重複している プロジェクトがServersビューに「Configured」されていない 症状3:500 Internal Server Errorresponse.getWriter().println()で出力する文字コードがブラウザと合致していない サーブレットクラスにコンパイルエラーがある(Eclipseの「Problems」ビューで確認) 解決策必ずTomcatのバージョンに合わせてjakarta.servletをimportする URLはデプロイメント名+@WebServletの値でアクセスする(今回は/helloServlet/hello) エラーが出たらEclipseの「Console」「Problems」ビューを最初に確認する癖をつける まとめ本記事では、EclipseでDynamic Web Projectを作成し、Servletを書いてTomcatで動かすまでの一連の流れを解説しました。 TomcatランタイムをEclipseに登録してサーバー管理ビューで起動 @WebServletアノテーションでURLマッピング ブラウザから:8080/アプリ名/マッピング名で動作確認 この記事を通して、JavaのWebアプリケーション開発の基礎が身につきました。 |

