見出し画像

【Webエンジニア】Webアプリ開発入門講座-サーブレットから画面を表示しよう

みなさまこんにちは!
「楽しく×気軽×本格的」
がモットーのスクータムです。

今回は、HTMLをレスポンスするサーバーを作ってみる
編です。

あれ、前回も作っていたじゃないの
と思われるかもしれませんが、今回は、
Javaで作ったアプリケーションサーバーを介してアクセスします。

下記のコードなどはGitHubにあります。
見たい方は連絡ください。

前回の振り返り

前回は、jspファイルを作り、Webサーバーにアクセスして画面表示をしました。
この時は、Webサーバーに配置してあるファイルに、
直接アクセスしています。

サーブレットを作って、画面を表示しよう

いきなりなんだ!?
となるかもしれませんが、慌てないでください。

まあはやい話が、
「Javaで作ったアプリから、HTMLをレスポンスさせよう」
ということです。

一応ここで簡単に解説しますが、
サーブレットとは、Javaでサーバサイドプログラムを組むための技術です。
サーバサイドプログラムとは、ブラウザのリクエストでサーバ上で動作し、実行結果をHTMLで返却するプログラムのことです。

まあ、ざっくり言えば、
「Javaで作ったサーバからHTMLレスポンスしよう」
ってことです。

こちらに関しては、コード見た方が早いでしょうか?
java/main/servlet/HomeServlet.java
として作りました。

package servlet;

import java.io.IOException;

import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class HomeServlet
 */
@WebServlet("/home")
public class HomeServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HomeServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp");
		dispatcher.forward(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
}

こちらを端的に説明しますと、

  1. homeパスでGetリクエストが来たら、

  2. WebContent (webapp)直下にあるindex.jspにフォワードする

というコードになっています。

動作確認してみよう


動作確認結果

さて、WebContent(webapp)直下に、index.jspを配置して、
Tomcatを起動しましょう。

http://localhost:8080/example/home
にアクセスしてみると上記の画面に遷移するはずです。

※Eclipseで作った動的Webプロジェクトは、exampleという名前になっていることを前提にしています。

前回との違いは、
「Javaで作ったサーブレットクラスから、JSPにフォワードしていること」
です。

フォワードとは、
あるサーブレットクラスから、他のサーブレットクラス、またはJSPファイルに処理を移すこと
です。

前回はWebサーバーに配置したファイルに、URLを介して直接アクセスしていただけです。

だんだんとWebアプリっぽくなってきましたね!
インターネット公開すれば、上記のhomeパスで、同じ画面が表示できるはずですよ。

次回

サーバサイドの続きを書きます。
具体的に言えば、

・入金したら、その分残高が増える
・引き出したら残高が減る

を、データベースを使って表現します。
が、まだデータベースはありません。

そのセットアップを行いましょう。

エンジニアメンターをうけつけています!

・開発の学習が行き詰まってる…
・ポートフォリオ構築が大変…
・キャリアの相談先がいない…

こんなお悩みを持っている方はいませんか?
現役のエンジニアがメンタリングいたします!
・先着4名
・2023/12/31まで無料
でございます!

ご検討ください!
お問い合わせは、
・こちらのNote
・公式HP
 https://tecedu.hp.peraichi.com/
まで!

サポートいただけますと幸いです。さらなる励みにして精進します。