torutkのブログ

ソフトウェア・エンジニアのブログ

Java読書会「基礎からのServlet/JSP第5版」を読む会(第1回)

新しい本「基礎からのServlet/JSP第5版」

今月のJava読書会BOF主催のJava読書会は、「基礎からのサーブレット/JSP 第5版」を読む会(第1回)を開催しました。

最新のServlet 6.0/JSP 3.1に対応し、Tomcat 10.1とOpenJDK 21で動かしながら学んでいく内容です。

概要

前回は洋書でしたが、今月からは和書です。が、参加人数が3名と少ない状況でした。(3連休の合間だったせいもあるか、宣伝不足か、読書会による勉強はニーズが少なくなっているのか、など憶測色々ありました)

この書籍では、メインはWindows上でOpenJDK 21とTomcat 10.1、H2 Database 2.1を使ってServletJSPのプログラミングを学んでいこうという内容です。

Tomcatは、最後に触ったのが20年前か或いはもっと前か、懐かしいというかほとんど覚えていないです。

今時点で書籍サポートサイトには正誤表は記載ありませんが、読書会をすると毎回誤植を見つけるよねと話して読み進めていたら、いくつか発見しました。

読書会の進め方は、例によって、本文、表、図、ソースコードを朗読して進めました。

昼食は、近くの生ハラミ焼肉屋さんで焼肉ランチを食べました。

TomcatとJetty

本書はTomcatを使っていますが、書籍では他のJakarta EEアプリケーションサーバとして、WildFly、Jetty、GlassfishWeblogic Serverが紹介されています。 JettyとTomcatの違いは?と議題になり、Tomcatはサーバープログラムをまずインストールして動かし、そこにサーブレットJSPを使うプログラムを展開(デプロイ)する使い方、JettyはサーブレットJSPを使うプログラムにWebサーバーが含まれる使い方となるということでした。

開発環境構築

書籍は、Windows環境での動かし方を記載し、付録でMacOSLinuxの環境に触れています。書籍は、サンプルプログラムと一緒の作業ディレクトリにOpenJDK、tomcat、H2 Databaseを展開したアーカイブファイルを作り、書籍サイトからダウンロードして展開してねという形です(200MB超過のアーカイブファイル)。

MacOSでの環境(書籍とは別)

MacOSでは、Homebrewにtomcat 10.1が用意されており、brew install tomcat で 10.1.19がインストールされました。OpenJDKもH2 DatabaseもHomebrewでインストール可能です。

Homebrewでインストールしたら、catalina runでサーバーが起動しました。簡単ですね。デプロイは、/opt/homebrew/opt/tomcat/libexec/webapps/ ディレクトリの下にアプリケーションのディレクトリ(本書ではbook)を作成、その下のWEB-INF/classesにパッケージに対応してディレクトリ・クラスファイルを配置します。

Tomcat周りのメモ
  • examplesアプリケーションは、tomcatをインストールしたマシンからのみアクセス可能。META-INFのcontext.xmlに、リモートアクセスの許可が 127...*、::1、0:0:0:0:0:0:0:1に限定されているため
  • ROOT にTomcatのようこそ画面を表示するアプリケーションがある
  • Java Platform Module Systemに対応しているのだろうか?