Eclipseのバージョンの違い
■今日やった作業
以前、インストールしていたEclipse(Version: 2023-03 (4.27.0))で書籍「基礎からのサーブレット/JSP 新版」を進めようとした。
■今日困ったこと
書籍が古いためEclipseのバージョンも古い。
そうするとフォルダ構成が異なって書籍が読みにくかった。
Eclipse2021-03で従来と同じフォルダ構成で動的Webプロジェクトを作成 - IT入門書籍 スッキリシリーズ
とりあえず上記を参考にプロジェクト作成時に、
・サーブレット、Bean、DAOなどのJavaソースファイルのフォルダを「src\main\java」ではなく「src」に修正
・JSPファイルやHTMLファイルなどの、Webサイトで公開するファイルのフォルダを「src/main/webapp」ではなく「WebContent」に修正
■思ったこと
自宅PCのEclipseと仕事のEclipseのバージョンは合わせた方がなんとなくよさそう・・・
■今日わかったこと
・コンパイル時に.javaファイルから作成される.classファイルってどこに作成されるか?→プロジェクトのプロパティ開いて「Javaのビルドパス」にデフォルト出力フォルダーに記載あり
・サーブレットやJSPはJavaEEの仕様で、実行にはWebサーバに加えてWebコンテナと呼ばれるソフトウェアが必要
・WebサーバはURLを受け付けた後、Webコンテナを呼び出す。Webコンテナはサーブレットのクラスファイルを読み込んで、サーブレットを実行する。
→TomcatはWebサーバとWebコンテナの機能を兼ね備えているらしい
・WebコンテナはJSPファイルからサーブレットのプログラムを生成し、コンパイルして、サーブレットとして実行する
→JSPはサーブレットの後にできたもの(HTMLを大量に埋め込むのが大変なため)
・サーブレットは「javax.servlet.http.HttpServlet」クラスのサブクラスとして定義する
→つまり"extends HttpServlet"でGREPすればHITするはず
・サーブレット(のクラス)のメソッド「doGet」や「doPost」はアプリケーションサーバがしかるべきタイミングで実行する。(APサーバ側に任せることで実行のタイミングなどを書かなくてよくなり、開発が楽になる)
・サーブレットのバージョン3.0から、URLパターンは(web.xmlではなく)サーブレットクラスの定義の直線に"@WebServlet(urlPatterns={"URLパターン"})"を記載できるようになった