【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);
}
}
こちらを端的に説明しますと、
homeパスでGetリクエストが来たら、
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/
まで!