今回は、eclipseを用いて、JSPとサーブレットの環境構築から、簡単な文字列を画面に表示させるまでをやってみました。
きっかけは、今までもJSPやtomcatを業務で使ったことはあったのですが、いざ自分で環境構築からtomcatを動かして、画面に表示させるまで・・をあまりやったことがなかったので、その備忘録をまとめてみたいと思ったことになります。
まず、こちらの記事を参考に、eclipseで動的webプロジェクトを作ります(eclipse JSPなどでググってみてください)。
で、その後、tomcatサーバーに紐づけて、プロジェクトを動かすのですが、今回は備忘録になるので、私がつまづいた箇所を説明していきます。
- プロジェクトがtomcatサーバーで起動できない
tomcatのバージョンが原因
プロジェクト作成時のターゲットランタイムに合ったサーバー上へ、プロジェクトを追加する
また、tomcatインストールディレクトリも適切に設定する(上記のバージョンに合わせる)


- サーブレットクラス上でエラーが出る
パッケージは複数のモジュールからアクセス可能です
というエラーについて・・・

クラスパスのサーバーランタイムに、デフォルトでservlet-api.jarが入っていたにも関わらず(eclipseをFull Editionでインストールしたのでtomcatもインストールされていた)、モジュールパスに、(上記とは別のtomcatの)同様のjarファイルを追加したため発生したエラー。
モジュールパスのjarファイルを除去したら解消された。
上記を解消後、tomcatサーバーを起動し、ブラウザから以下が表示できたのを確認しました。
以下、JSP

以下、サーブレット

ちなみに、JSPは内部的に、一旦サーブレットに変換されてから画面に表示されているみたいです。
今回はeclipseで実行しているので、変換されたサーブレットや、そのクラスファイルまでは確認できませんでしたが、eclipseを使わないでJSPを実行してみると、どこかにそれらのファイルが作成されるみたいですね・・
くわしくはこちらの記事をご覧ください。
まあ、実際の開発では、eclipseを使わないでJSPやサーブレットを使うことはほぼないと思いますが、知っておいてもいいとは思います。
ちなみに、eclipseを使わないで、サーブレットを実行しようとしてみたのですが、
javac -cp “C:\ProgramData\ApacheTomcat\Tomcat 10.1\lib\servlet-api.jar” HelloWorld.java
でコンパイルできませんでした(なぜ?)
なんか、クラスパス指定してない時と同じエラー(シンボルが見つかりませんというエラー?)が出てしまいます。
多分、クラスパスの指定が良くないとか?・・じゃなければ、Javaのバージョンが悪いとか?なんですかね。
まあ、単に興味本位でやってみたことですし、実際はeclipseで開発するのでいいんですけど、原因分からずでちょっと気持ち悪いですけどね。
何かわかる方いらしたら教えてください。よろしくお願いいたします。
はい。ということで、今回は以上になります。
ここまでお付き合いいただきありがとうございました。