はじめに
こんばんわ、きりです。
本記事はNablarchを使ってみようのサブ記事として作成しております。
今回は表題の通り、Nablarchを学ぶ前に知っておくべき前提の知識について整理します。
Nablarchの技術ドキュメントには難しい単語や技術が多く登場します。
Nablarch開発以前に一般的な知識を習得しておくことで、技術ドキュメントの理解も一層深まるもと思いますで、一読してみてください。
本記事以外のコンテンツはこちらから閲覧可能です。
なるべく、初心者目線で作成するつもりですが、分かりづらい部分ありましたら、コメント頂きたいです。
目次
- Webアプリケーションとは
- サーブレットとは
- JSP(Java Servlet Pages)とは
- warファイルとは
- JSRとは
- Java SEとJava EEについて
- DI(Dependency injection)について
※ 記事公開後も必要に応じて追加して行く予定です
Webアプリケーションとは
一般的にはWebの仕組みを利用した上で動作するアプリケーションのことです。
ブラウザなどのクライアントソフトウェアの操作によりインターネット上のWebサーバーにて動作します。
ブラウザから操作をするユーザーにとっては、Webアプリケーションがどのような仕組みで動作しているかは意識しませんし、わからないケースがほとんです。
Webアプリケーションのシステム構成は様々で、開発言語においても、PHP,Perl,Ruby,Python,Go,Javaなど多くの言語が利用されています。
本記事のシリーズにおいては、サーブレットを利用したWebアプリケーションを対象としています。
参考リンク
サーブレットとは
サーブレットはSun Microsystems社が開発した、サーバ上で動作するJavaプログラムです。 Servletの仕様書はSunが公開しています。
クライアントからブラウザなどの操作により、サーバーにリクエストを送ると、サーブレットが動作し、動的にページを生成しクライアントに返却します。
サーブレットはJavaプログラムのため、動作には実行環境が必要です。この実行環境となり得るソフトウェアをサーブレットコンテナと呼びます。
サーブレットコンテナはクライアントからリクエストを受け取ると、リクエストの内容によりサーブレットを呼び出し、サーブレットの結果をクライアントへ返却します。
代表的な、サーブレットコンテナにtomcatやjbossなどが存在します。
参考リンク
JSP(Java Servlet Pages)とは
例えば、クライアント側で購入ボタンを押した場合、サーバーで購入処理を実施し、完了画面の情報をサーバーからクライアントへ返却します。
この完了画面の情報は基本的にはHTML形式となりますが、HTMLファイルは静的な(変更しない)ファイルのため、完了画面に購入した品物や金額を表示するようなことが苦手です。
そこで、JSPの登場です。
JSPファイルには、HTMLの記述の中にJavaのコードを埋め込むことが可能で、サーブレットの処理にてJSPファイルから動的にHTMLのデータを変更し、クライアントへ動的に変更された完了画面のHTMLデータを返却することができます。
参考リンク
warファイルとは
サーブレット仕様書、第 3.0 最終版には、サーブレットの動作とともに、ディレクトリ構造にも定義している。
この定義に従い、サーブレット・コンテナ(例えば、tomcat)は必要な設定ファイルやクラスファイルを読み込みます。
warファイルは Web application ARchiveの略で、サーブレットのディレクトリ構造仕様に準拠する形で、zip化したファイルです。
warファイルはjarコマンドやmavenコマンド、eclipseのGUI操作などから生成可能です。
参考リンク
JSRとは
JSR(Java Specification Request)はJava仕様要求です。
チェックやテスト、投票などを通して承認されるとJavaの仕様となる。
WebサイトなでみるJSRは基本的には仕様と考えて良い。
なお、JSRの対象はJava SE、Java EE, Java MEです。
JSRについてもっと知りたい人は以下を参照してください。
【Javaの仕様が決まるとき】JSRの歩き方(基本編)
JSRがJava標準になるまで--JCP Executive Committeeが来日
Java SEとJava EEについて
Java SE(Java Platform Standard Edition)
Javaで仕様されるAPIをまとめたもです。その中でも名前の通り基本的な機能をまとめたものになります。
実行環境やコンパイラバージョンなどで登場する8,11,17などはJavaSEのバージョンとなります。
本当なら、Java SE 8やJava SE 11などと記載すべきなのでしょうが、私の記事では大抵の場合、Java8やJava11と明記していると思います。
普段よく利用する、「java.lang.String」クラスもJava SEのAPIのひとつとして定義されているようです。
参考リンク
Java EE(Java Enterprise Edition)
企業向けのWebアプリケーション開発ができる機能がセットになったプラットフォームです。
Javaで実装されたアプリケーションサーバーの標準規格や、そのAPIを定めたもので、サーバーサイド起動などの機能が追加されています。
Java EEと記載しておりますが、Java EEはOracle社によって管理されていたが、「Eclipse Foundation」へ移管したことにより、「Jakarta EE」と名称が変更になっています。
最新バージョン(2022年4月現在)はJakarta EE Platform 9です。