[Java][Servlet][JSP] ServletからJSPへの転送

公開日: : Java , , , ,

こんにちは。

今回は、「Servletでリクエストを受けて、JSPで表示する。」方法を解説します。

世間一般のFrameworkで使われているアレですね。

この仕組みを理解できれば、「業務ロジック(Post)をServletで受けて、ViewをJSPに任せる」
なんていうMVCモデルの一部を作ることができます。

本当ならば、Frameworkをつかえばこんなことを気にする必要はないのですが、
昨今の若いエンジニアは、JavaEEについて全く無頓着な方が多く、
「Frameworkの裏でどんなことが行われているか」に興味が無いことが多いです。

与えられたFrameworkの上に業務仕様を乗っけるだけのプログラミングは

「サルでもできる」

が私のポリシーですので、JavaEEの基礎を学び、フレームワークがどのように動いているのか
ということをソースを読めば分かるレベルになっておく必要があると、私は考えています。

と、いうことで、簡単な例で解説します。

●プロジェクトの作成

今回の記事で使用するプロジェクトは、[Java][JSP] EclipseでのJSP作成
使用したものをそのまま使います。

●Servletの作成

以下の位置に「TestServletToJsp.java」を作成します。
ServletToJSP01

●TestServletToJsp.java
「TestServlet.java」との差は「doPost()」メソッドのみ。
「context取得 > requestDispatcher取得 > forward設定」のみでJSPへの転送が完了します。
requestDispatcher取得の際に、JSPのパスを指定しているのがポイントです。

package test.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
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("/TestServletToJsp")
public class TestServletToJsp extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public TestServletToJsp() {
        super();
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		// ContentType設定
		response.setContentType("text/html; charset=Shift_JIS");
		// Writer取得
		PrintWriter writer = response.getWriter();
		// HTML作成
		writer.print("<HTML><BODY>");
		writer.print("doGetが実行されました。<BR/>");
		writer.print("<form method=\"post\"><input type=\"submit\" name=\"doPost実行用のボタン\"></form>");
		writer.print("</BODY></HTML>");

	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		// contextの取得
		ServletContext context = getServletConfig().getServletContext();

		// RequestDispatcherの取得
		RequestDispatcher dis = context.getRequestDispatcher("/TestJSP.jsp");
		// forward設定
		dis.forward(request, response);

	}

}

●実行結果

Tomcat起動後、以下のURLにアクセスします。
「http://localhost:8080/TestJavaServlet/TestServletToJsp」

表示結果は以下。
ServletToJSP02

「送信」ボタンを押下すると、以下のJSPで作成した画面が表示されます。
良く見ると、URL部分はサーブレットのままであることがわかります。
ですので、サーブレットに「コントローラ」の機能を作成してあげて、
「要求処理>ビジネスロジック>表示JSP選択」の流れを作ってあげれば、
既にそれは立派なフレームワークということになります。
ServletToJSP03

スポンサードリンク

関連記事

no image

[Java][Jersey] JerseyでRESTfulなJAX-RS Webサービス作成

こんにちは、keiです。 今回はRESTfulなWeb Serviceの作成を行っていきます。

記事を読む

no image

[Java] StringBuilderの使い方(Stringを連結するクラス)

今回は、可変長文字列クラスのStringBuilderを紹介します。 固定長文字列クラスのSt

記事を読む

no image

[Java] Javaのインストール(プログラム開発・入門用)

Javaのコードを書きたい!! という目的のためのJavaのインストール方法と、コマンドラインでの

記事を読む

no image

[Java] クラスとインスタンス

こんにちは。 クラスとインスタンスについて解説します。 インスタンスは「オブジェクト」とも言

記事を読む

no image

[Java] CSVファイルの読み込み方法

こんにちは、kei0310です。 CSVファイルをJavaに取り込む方法を解説します。

記事を読む

no image

[Java][JSP] EclipseでのJSP作成

今回は、Eclipseを用いてJSPを作成してみます。 まず、Eclipseを起動します。

記事を読む

no image

[Java][基本] mainメソッドの書き方

こんにちはkeiです。 Javaの基本として、意外と知らないmain関数について解説します。

記事を読む

no image

[Java] テキストファイルの読み込み方法

こんにちは、今回はテキストファイルをJavaで読む方法を紹介します。 標準で提供されているクラ

記事を読む

no image

[Java][MySQL] JavaからMySQLを使う方法

MySQLは、フリーでありながら商用としても使用できるパワーを持つデータベース(RDB)です。

記事を読む

no image

[Java][Eclipse] Mavenが利用可能な動的Webプロジェクトの作成

こんにちは、keiです。 今回は、Mavenが利用可能な動的Webプロジェクトの作成について解

記事を読む

スポンサードリンク

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

スポンサードリンク

no image
CentOSにdockerをインストールしてみた

前置き dockerをcentos7にインストールしてみました

no image
awkでのgsubを使った文字列置換(正規表現)

まえおき bashなどのシェルスクリプトで、lsした結果とかを

no image
bashで並列処理する方法(xargs)

並列処理とは 通常、意識せずにプログラムを書くと、大体の場合は

no image
AWS Redshiftの使用ストレージ容量をクエリで調べる方法

用途 AWS Redshfitのコンソールを見れば、使用中のス

no image
pythonでstorage transfer serviceを使ってみた。

準備 pythonのインストールとかする。 このあたり。

→もっと見る

  • 2025年7月
     123456
    78910111213
    14151617181920
    21222324252627
    28293031  
  • 2025年7月
     123456
    78910111213
    14151617181920
    21222324252627
    28293031  
PAGE TOP ↑