バナー画像

Webアプリケーションとは?

Webアプリケーションは、Webの仕組みを利用した上で動作するアプリケーションのことです。

ホームページのように、インターネットなどのネットワークに公開されていて、ブラウザを使ってWebアプリケーションを利用できます。

例えば、下記のようなものがWebアプリケーションの代表例です。

Java Webアプリケーションの代表的なもの
  • SNS
  • 通販サイト
  • インターネットバンキング
  • Wiki
  • ブログ・電子掲示板
  • Web検索
  • Webメール
  • 地図・乗り換え案内

その他にも、企業の経理や顧客管理、受発注、営業支援用のWebアプリケーションもあります。

Webアプリケーションでは「サーバーサイドプログラム」が中核となります。

サーバーサイドプログラムは、ブラウザのリクエストによってサーバー上で動作し、その実行結果をHTMLでレスポンスする仕組みです。

ユーザーは、ブラウザを使ってサーバーサイドプログラムの実行・結果表示を繰り返すことで、Webアプリケーションを利用できます。

サーバーサイドプログラムを実現するための技術として有名なのが、「サーブレット」や「JSP」です。

サーブレットは、Javaを利用してサーバーサイドプログラムを実現する技術になります。

サーブレットクラスという、ブラウザから実行できる特別なクラスを使ってサーバーサイドプログラムを実現可能です。

一方、JSPもJavaを利用してサーバーサイドプログラムを実現する技術になります。

JSPではサーブレットクラスではなく、JSPファイルというプログラムを使って実現可能です。

Webアプリケーションサーバーとは?

Webページの中には、HTML文書で書かれた文字列を表示するだけのページや、検索やフォーム入力などユーザーのリクエストや環境に応じて表示内容を変化させるページもあります。

前者を「静的コンテンツ」後者を「動的コンテンツ」と呼ぶのですが、Webアプリケーションサーバーはこの動的コンテンツを表示させる仕組みが組み込まれているサーバーです。

一方、静的コンテンツを表示されるのがWebサーバーとなります。

Webアプリケーションを動作させるには、Webアプリケーションサーバーが必要です。

また、特にサーブレットクラスの実行環境のことを「サーブレットコンテナ」と言います。

つまり、JavaでWebアプリケーションを開発するには、サーブレットコンテナを持ったWebアプリケーションサーバーが必要です。

代表的なアプリケーションサーバーソフトウェアには、下記のようなものがあります。

Javaの代表的なアプリケーションサーバーソフトウェア
  • Apache Tomcat
  • Jetty
  • WebSphere Application Server
  • Oracle WebLogic Server

このうち、Apache Tomcat と Jetty はオープンソースで、WebSphere Application Server と Oracle WebLogic Server は商用製品となっています。

Apache Tomcat は無料で利用できることから、多くの開発者の間で使われています。

Java Webアプリケーションの開発環境

JavaでWebアプリケーションを制作するなら、開発環境を用意しましょう。

開発環境は、Pleiades(プレアデス)というソフトウェアをインストールすると、すべてが揃うのでおすすめです。

Pleiadesとは、統合開発環境 Eclipse(イクリプス)に開発に便利な機能・プラグインを加えた上で、Webアプリケーションサーバーの Apache Tomcat をセットにしたソフトウェアになります。

ポテパンダの一言メモ

統合開発環境とは、エディタと開発に関連するツール(コンパイラ・デバッガなど)を統合したソフトウェアです。
IDE(Integrated Development Environment)とも呼ばれます。
Eclipseはその中でもよく使われる代表的なものです。

Eclipseについては、下記の記事で詳しく解説していますので参考までに。

【関連記事】

▶︎【Java】JDKとEclipseでJava開発環境を整える!

▶︎EclipseとJavaで作れるもの。インストール~プログラム実行まで紹介

Webアプリケーションの開発環境「Pleiades」をインストールする

ではさっそく、Pleiadesのインストール・ダウンロードを進めていきましょう。

①Pleiadesのサイトにアクセス

公式サイトはこちら

「Pleiades All in Oneダウンロード」のEclipseバージョンごとに並んでいるアイコンをクリックすると、ダウンロード画面に遷移します。

Pleiades All in Oneダウンロードのページ

ここでは最新版の「Eclipse 2020」をクリックしました。

②Pleiadesをダウンロード

Eclipse 2020のページ

ダウンロードページには、何個かの開発言語に対応したパッケージがあります。

今回は、Javaの「Full Edition」をダウンロードしましょう。

筆者はMacをしようしているので、Mac 64bitのFull Editionをダウンロードしました。

使用するOSに応じて、32bitもしくは64bitから選択してダウンロードしてください。

ダウンロードアイコンをクリックすると、ダウンロードが開始します。

③Pleiadesをインストール

ダウンロードしたファイル(pleiades-2020-12-java-mac-jre_20201222.dmg)を展開して保存していきます。

Macの場合、下記の画像のようにウィンドウが表示されるので、アプリケーションフォルダに入れましょう。

Pleiadesをアプリケーションフォルダに格納

④Eclipseを実行

Eclipseを実行してみます。

Macの場合、起動時に警告が出たらシステム環境設定の「セキュリティーとプライバシー」から、実行を許可してみてください。

起動すると、作成するソースコードのファイルを保存する場所を設定します。

任意のフォルダを指定してください。

Eclipseワークスペースの作成

「起動」ボタンを押すと、日本語化された状態のEclipseの画面が表示されるはずです。

Eclipseの画面

これで、インストール・ダウンロードは完了しました。

Java Webアプリケーションの開発サンプル・例

本章では、Java Webアプリケーションを作成するまでの流れとサンプルを確認しましょう。

パースペクティブの変更をJava EEに変更する

Eclipseは、パースペクティブの設定によって画面構成や右クリックで表示されるメニューが変化します。

そのため、開発アプリケーションに合わせてパースペクティブを変えることで、効率よく開発が行えるのです。

デフォルトで設定されているJavaパースペクティブの場合、通常のJavaアプリケーション開発に向いた画面構成になります。

今回は、Webアプリケーション開発を進めていくので、Java EEパースペクティブに変更していきましょう。

Macの場合、画面上のメニューバーから「ウィンドウ」→「パースペクティブ」→「パースペクティブを開く」→「その他」を選択してください。

パースペクティブを変更

すると下の画像のようにウィンドウが表示されるので「Java EE」を選んで「開く」をクリックします。

Java EEパースペクティブを設定

ウィンドウが閉じて、Eclipseの画面構成が変化していればOKです。

Java EEパースペクティブの画面

動的Webプロジェクトを作成する

では動的プロジェクトを作成していきます。

画面上のメニューバーから「ファイル」→「新規」→「動的Webプロジェクト」をクリックしてください。

動的Webプロジェクトを作成

下の画像のようなウィンドウが表示されますので、「プロジェクト名」を設定し、「ターゲット・ランタイム」を Tomcat9(Java 11)にして、「完了」をクリック。

 

動的Webプロジェクトを作成

そうすると、新規作成をした動的Webプロジェクトがプロジェクトエクスプローラービュー(画面左側)に表示されます。

クリックすると内容を展開して確認可能です。

動的Webプロジェクトをサーバーへ追加する

次に、動的Webプロジェクトをサーバーへ追加しましょう。

サーバービュー(画面下部)でタブの「サーバー」を選択し、画面内で右クリック→「新規」→「サーバー」を選択します。

動的Webプロジェクトをサーバーへ追加

開いたウィンドウで「Apache Tomcat v9.0 サーバー」を選択して「完了」をクリック。

新規サーバーを定義

サーバービューに、Tomcat9のサーバが追加されていればOKです。

動的Webプロジェクトをサーバーへ追加完了

プロジェクトエクスプローラービュー(画面左側)に、「Servers」というプロジェクトが追加されます。

「Servers」プロジェクトを削除したり、閉じたりしてしまうと、追加したサーバーが正常に動作しなくなってしまうので注意しましょう。

サーバービューにあるサーバを選択して右クリック→「開始」を選択することで、アプリケーションサーバーを起動できます。

次に、追加したサーバーに動的Webプロジェクトを追加していきましょう。

サーバービューにあるサーバを選択して右クリック→「追加および除去」をクリック。

追加したサーバーに動的Webプロジェクトを追加

使用可能欄に表示されている動的Webプロジェクトから、サーバーに追加する「example」を選択し、「追加」を押して「構成済み」に移動します。

最後に、「完了」ボタンを押せばOKです。

追加および除去

サーバーに追加した動的Webプロジェクトを有効にするため、サーバーを起動しましょう。

簡単なWebアプリケーションをサーブレットで作成する

ここでは、簡単なWebアプリケーションをサーブレットで作成してみます。

まずは、作成した動的Webプロジェクトを右クリック→「新規」→「サーブレット」をクリック。

Webアプリケーションをサーブレットで作成

そうすると、下の画像のウィンドウが表示されますので、Javaパッケージに「servlet」と、クラス名に「SampleServlet」と入力して、「次へ」をクリックします。

Webアプリケーションをサーブレットで作成

「次へ」をクリックしていくと下の画像の表示になるので、「スーパークラスからのコンストラクター」のチェックを外し、「doGet」にチェックが入っている状態で「完了」ボタンをクリックしましょう。

Webアプリケーションをサーブレットで作成

そうすると、「SampleServlet.java」ファイルが開きますので、プログラムを記述していきます。

今回はサンプルとして下記のように記述しました。

■記述例
package servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/SampleServlet")
public class SampleServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String[] luckArray = {"最高", "スッキリ", "最悪"};
		int index = (int) (Math.random()*3);
		String luck = luckArray[index];

		Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("M月dd日");
		String today = sdf.format(date);

		response.setContentType("text/html; charset=UTF-8");
		PrintWriter out = response.getWriter();
		out.println("<html>");
		out.println("<head>");
		out.println("<title>ポテパンスタイル占い</title>");
		out.println("</head>");
		out.println("<body>");
		out.println("<p>今日の運勢♪" + today + "の運勢は「" + luck + "」です</p>");
		out.println("</body>");
		out.println("</html>");
	}
}

占い結果をランダムで表示するプログラムです。

実行すると下記のように結果がランダムで表示されます。

■実行結果

Webアプリケーションの実行結果

JavaのWebアプリケーションのフレームワークについて

JavaでWebアプリケーション開発におすすめのフレームワークを紹介します。

Java Webアプリケーション開発におすすめのフレームワーク
  • Apache Struts
  • Apache Wicket
  • DropWizard
  • Grails
  • GWT(Google Web Toolkit)
  • Hibernate
  • Java EE(Java Platform, Enterprise Edition)
  • JSF(JavaServer Faces)
  • Play Framework
  • SAStruts (Super Agile Struts)
  • Spark Framework
  • Spring Framework

それぞれについて簡単に見ていきましょう。

ポテパンダの一言メモ

フレームワーク(framework)とは、ソフトウェア開発で頻繁に利用する機能やライブラリなどを1つにまとめて提供してくれるソフトウェアです。
システムを開発する上で重要な、ひな形用のテンプレートや機能追加の規約についても含まれています。

Apache Struts

Apache Strutsは、Apacheソフトウェア財団のApache Strutsプロジェクトにて開発されている、オープンソースのJava Webアプリケーションフレームワークです。

無償で提供されており、誰でも自由に利用・再開発・再配布を行えます。

また、フレームワークはMVCモデルが採用されています。

Apache Strutsは、アプリケーションデザインの手法の1つになっており、Struts2ではさまざまな改良もされているフレームワークとなっています。

Apache Wicket

Apache Wicketは、Apache Struts同様にApacheソフトウェア財団で提供されているオープンソースのJava Webアプリケーションフレームワークです。

Apache Wicketプロジェクトにて開発されています。

UI層に特化しており、Javaですべてを記述できるフレームワークとしても有名です。

Javaのみを利用してシンプルに開発したい方におすすめのJava Webアプリケーションフレームワークと言えます。

DropWizard

Dropwizardは、本来YammerのバックエンドWebサービスを提供するために作成されたフレームワーク。

高パフォーマンスで、RESTfulなWebサービスの開発に適しているJavaフレームワークです。

Dropwizardの特徴は、サーブレットコンテナ「jetty」が搭載されており、アプリケーションサーバーが必要ありません。

Grails

Grailsは、プログラミング言語「Groovy」を使うオープンソースのWebアプリケーションフレームワークです。

Javaプラットフォーム上で動作します。

Grailsの特徴には、次のようなものが挙げられます。

GWT(Google Web Toolkit)

GWT(Google Web Toolkit)は、大手検索エンジンGoogleが開発した、Javaソフトウェア開発フレームワークです。

Ajaxを駆使したアプリケーションを簡単に開発できるとして提供されています。

GWTを利用すると、フロントエンドをJavaで記述してコードをコンパイルし、最適化されブラウザに沿ったJavaScriptとHTMLを生成可能です。

Hibernate

Hibernateは、Java専用のオブジェクト関係マッピング (ORM) ライブラリで、オブジェクト指向のドメインモデルを関係データベースにマッピングするためのフレームワークです。

といった特徴が挙げられます。

Java EE(Java Platform, Enterprise Edition)

Java EEは、企業向けのWebアプリケーション開発用の機能をセットにしたWebアプリケーションフレームワークです。

Java SEの中に、Webアプリケーションの開発に必要なサーバー関係のライブラリなどを追加したものとなっています。

JSF(JavaServer Faces)

JSF(JavaServer Faces)は、JavaベースのWebアプリケーションフレームワークです。

JSFはOracle社が開発・提供しており、仕様はJava EEの一部としても取り込まれています。

Apache Strutsと同様にMVCを採用しております。

しかし、表示の仕方にXML方式のHTMLを採用している点や、コンポーネントベースフレームワークであることなど、Apache Strutsとは違いがあるのが特徴です。

Play Framework

Play Frameworkは、ScalaとJavaで記述されたオープンソースのWebアプリケーションフレームワークです。

MVCを採用しており、規約やホットリローディング、エラーのブラウザ上への表示といった方針から、開発者の生産性を上げることを目的として作られました。

CPUリソースやメモリ使用量が少なく、軽量さと生産性の高さが特徴です。

SAStruts (Super Agile Struts)

SAStruts (Super Agile Struts)は、Apache Strutsを拡張して、設定ファイルの作成や更新の自動化などを可能にしたJavaのWebアプリケーションフレームワークです。

そのため、Strutsよりも開発時間を短縮できることが特徴となっています。

Spark Framework

Spark Frameworkは、Javaで記述された無料のオープンソースソフトウェアのWebアプリケーションフレームワークです。

構成がシンプルで軽量のJavaマイクロフレームワークとなっています。

膨大なアノテーション記述や設定ファイルが必要ないため、エンジニアの負担が少なくなる点が特徴です。

Spring Framework

Spring Frameworkは、Javaプラットフォーム向けのオープンソースWebアプリケーションフレームワークです。

Webアプリケーション従来の多くの問題を解決しており、有力なフレームワークとして、長い間非常に注目されてます。

AOP(Aspect Orientation Programming)とDI(Dependency Injection)と言われる概念で構築されていることや、専用のテストプログラムがあることが特徴です。

AOPによりメンテナンスがしやすく、DIにより変更がしやすくなっています。

JavaでWebアプリ制作を学習する手順・おすすめ入門本

JavaでWebアプリ制作をしたいのであれば、『スッキリわかるサーブレット&JSP入門』がおすすめです。

Java学習の定番ともいえるシリーズで、人気の高い参考書となっています。

本書では、業務用Webシステム開発で幅広く利用されている「サーブレット」と「JSP」の使い方や、HTML・HTTPといった各種仕様、セッションやスコープをといった概念などが網羅的に解説された一冊です。

本記事の作成にあたっても参考にしています。

JavaでWebアプリ制作を学びたい方は、ぜひ一度手に取ってみてください。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。