サーブレットの基礎知識 |
|
まず、サーブレット(以下Servlet)が通常のJava Applicationと異なるところは、JavaVM上で単独で動作しているのではなく、Servlet Containerという実行環境の上で動作しているということ(図1)、そして、その起動・実行がコマンドラインなどの指示ではなく、クライアント(Webブラウザなど)からのリクエストに応じて行われるということです。
図1 Java Servletの動作にはServlet Containerが必要です |
通常、Webサーバはファイルとして格納されている情報しか送信することができません。そこで、Webサーバに対して拡張(プラグインの追加など)を行うことによって、Servlet Containerとの通信を行うことができるようにします。こうすることによって、以下の動作を実現します(図2)。
- Webサーバ自身で処理できる内容(HTMLファイルや画像ファイルなど)は自分で処理する
- Webサーバでは処理できない内容(Servletの実行など)は、Servlet Containerに処理を依頼する
図2 Webサーバはリクエストの内容に応じて処理をServlet Containerに依頼します |
具体的には、Servletに対して特定のURLのパスを割り当てて、そのパスが指定された場合は、Servlet Containerに処理を依頼するようにしています。
(例) /servlet というパスを Servletに割り当てた場合、 http://hostname/servlet/foobar というURLが指定されると、foobarというServletが実行される。 |
WebサーバからServlet Containerに対してリクエスト(URL指定やパラメータ内容)が送信されると、Servlet Containerは、指定されたURLをもとに必要なServletをメモリ上にロードし、インスタンス化します。その後、Servletが実行されます。
Servletでは、
- リクエスト内容からのパラメータの受信
- クライアント側への表示内容の送信
という処理を行うことができます。つまり、クライアントから送信されたパラメータ(フォームに入力した内容など)を解析し、その内容に応じた処理を行い、その処理結果を、HTMLとして表示させる、といった動的なWebページの生成を行うことができるのです。
「Java Solution FAQ」 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|