Servlet/JSP基礎編01

1.はじめに

今回はServlet/JSPについてまとめていこうと思う。

僕がServlet/JSPを学ぼうと思ったきっかけとして、Webアプリケーションの基礎を学んでみたいという思いと、使える言語の中にJavaがあったからである。

学んでいくと、かなり面白い技術だったので、かなりの数に分けて、紹介していこうと考えている。今回の記事では、「Servlet/JSPとは」について書いていく。

2.Servlet/JSPとは

2.1WEBの基礎

まず、僕たちは日常的にWebを使っている。Webサイトというのは、複数のWebページから構成されており、Webページを作成するには、この記事でも使っているHTMLを使う。

次に、WebブラウザとWebサーバについて解説する。Webブラウザとは、ネットワークを通じて得たWebページを、画面に表示するものである。分かりやすい例として、「Safari」などがある。Webサーバは、Webページのデータを管理している。分かりやすい例としては「Nginx」などがある。

このブラウザとサーバには関係があり、ブラウザ側、つまり、僕たち、閲覧者の方を、クライアントサイドといい、サーバ側をサーバサイドという。

f:id:kouki-matsuura:20200822041526p:plain

上図が二つの関係を示したものである。「HTTP Request」「HTTP Response」という言葉があるが、これを紹介していく。

2.2リクエストとレスポンス

リクエスとは、WEBサーバにデータを要求すること。

レスポンスとは、WEBサーバからの返答のことである。

「HTTP Request」は、リクエストのこと、「HTTP Response」はレスポンスのことである。

「HTTP」とは、TCPを使い、WEBにおけるデータの転送を行う通信プロトコルである。

 

2.3サーブレットアプリケーションサーバ

サーブレットJSPは、JavaEEに従ってプログラムを記述する。実行には、サーバに加え、Webコンテナが必要である。

ブラウザがサーブレットのURLを開くと、サーバとコンテナを呼ぶ。コンテナはサーブレットのクラスファイルを読み込み、実行する。

これらのサーバや、コンテナの機能を持つのが、JavaEEアプリケーションサーバである。

文章で仕組みを説明をしても分かりにくいので、図で説明する。

f:id:kouki-matsuura:20200822044815p:plain

ユーザから受けたリクエストをWebサーバが受け取り、コンテナを介して、サーブレットに渡される。サーブレットはリクエストの内容を解析し、レスポンスとして、適切なファイルを結果として返す。最後にWebサーバに結果が渡り、ユーザに返される。

これからの記事では、実際にプログラムなどを載せて、理解を深める。

プログラムなどを書いて、実行結果を得るには先ほど紹介したアプリケーションサーバが必要となる。なので、僕は「Tomcat」を利用する。

また、Javaのエディションは、普段使っているJava SEではなく、システム設計に特化したJava EEを使用する。

 

2.4JSPとは

JSPとは、JavaServerPagesの略である。

サーブレットとの違いはプログラムの記法にある。

サーブレットJavaプログラムの中にHTMLを書き込む。

JSPはHTMLの中にJavaプログラムを書き込む。

つまり、作成しようとするプログラムにHTMLの量で二つを使い分ける。HTMLの量が多い場合にはJSPとして書いたほうが良いということである。

 

2.5JSPで実行

JSPでの実行は、まず、ユーザがブラウザでJSPファイルのURLを開き、サーブレットのときと同じように、Webサーバ、Webコンテナを介して、リクエストを貰い、リクエストを解析する。次に、このファイルをサーブレットコンパイルし、実行結果として返している。

これを読んだ時の僕の感想としては、サーブレットという機能があり、HTMLに柔軟に対応できるJSPというオプションがあるというイメージである。

3.おわりに

今回は、Servlet/JSPについて、基礎的なことを説明した。

僕たちが普段、見ているサイトの裏では、このようなシステムが動いているということが少しは理解できたと思っている。

次の記事では、開発環境の紹介と、Servletの基本について書いていこうと思う。