Javaのページ遷移!初心者向けの10の詳細な使い方 – Japanシーモア

Javaのページ遷移!初心者向けの10の詳細な使い方

Javaのページ遷移を表す図 Java
この記事は約35分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

このサービスは複数のSSPによる協力の下、運営されています。

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読めばJavaを使用したページ遷移の方法を10通り学ぶことができるようになります。

ページ遷移とは、一言で言えば、一つの画面から次の画面へと移動することです。

これがどうやって実現されるのか、どういった手法があるのか、初心者でもスムーズに理解できるように詳しく解説していきます。

●Javaにおけるページ遷移の基礎

○ページ遷移の概念とその必要性

ページ遷移は、ウェブサイトやアプリケーションで非常に一般的な操作です。

例えば、ログイン画面からメイン画面へ移動したり、商品一覧から商品詳細へ進んだりと、ユーザーが意図的またはシステムによって別の画面に導かれることを指します。

このページ遷移がスムーズであれば、ユーザー体験(UX)も高まります。

○Javaでのページ遷移の実現方法の概観

Javaにはページ遷移を実現するいくつかの方法があります。

Java単体で動作するデスクトップアプリケーションでは、SwingやJavaFXを使用してウィンドウ間での遷移が可能です。

一方、Javaをバックエンドとして使用するWebアプリケーションでは、サーブレットとJSP(JavaServer Pages)を使ってページ遷移を制御します。

●ページ遷移の具体的な使い方

Javaでページ遷移を実装する具体的な手法について、初心者にもわかりやすく解説します。

サンプルコードも豊富に用意していますので、コードを手元で試しながら理解を深めてください。

○サンプルコード1:基本的なページ遷移の実装

Javaで最もシンプルな形のページ遷移を行う方法は、Java Swingを使用したGUIアプリケーションで見られます。

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Main {
    public static void main(String[] args) {
        // 最初の画面(Frame1)を作成
        JFrame frame1 = new JFrame("Frame 1");
        JButton button1 = new JButton("Go to Frame 2");
        frame1.setLayout(new FlowLayout());
        frame1.add(button1);
        frame1.setSize(300, 200);
        frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame1.setVisible(true);

        // 次の画面(Frame2)を作成
        JFrame frame2 = new JFrame("Frame 2");
        JLabel label2 = new JLabel("This is Frame 2");
        frame2.setLayout(new FlowLayout());
        frame2.add(label2);
        frame2.setSize(300, 200);
        frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // button1が押されたらFrame1を非表示にし、Frame2を表示
        button1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                frame1.setVisible(false);
                frame2.setVisible(true);
            }
        });
    }
}

このコードではJava Swingを用いて、二つのフレームを用意しています。

最初のフレーム(Frame1)にはボタンがあり、そのボタンが押されるとFrame1が非表示になり、次のフレーム(Frame2)が表示されるようになっています。

このコードを実行すると、最初に「Frame 1」というタイトルのウィンドウが表示され、中に「Go to Frame 2」と書かれたボタンがあります。

そのボタンをクリックすると、ウィンドウが「Frame 2」に切り替わり、その中には「This is Frame 2」というラベルが表示されます。

○サンプルコード2:ボタンクリックでのページ遷移

次に、Webアプリケーションでよく見られる、ボタンをクリックしてページ遷移を行う例をJavaのサーブレットとJSPで紹介します。

↓ButtonClickServlet.java

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class ButtonClickServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // データを取得
        String buttonValue = request.getParameter("button");

        // buttonValueによって遷移先を決定
        String nextPage = "";
        if ("Page1".equals(buttonValue)) {
            nextPage = "/page1.jsp";
        } else if ("Page2".equals(buttonValue)) {
            nextPage = "/page2.jsp";
        }

        // ページ遷移
        RequestDispatcher rd = request.getRequestDispatcher(nextPage);
        rd.forward(request, response);
    }
}

↓index.jsp

<!DOCTYPE html>
<html>
<head>
    <title>Button Click Example</title>
</head>
<body>
    <form method="post" action="ButtonClickServlet">
        <input type="submit" name="button" value="Page1">
        <input type="submit" name="button" value="Page2">
    </form>
</body>
</html>

↓page1.jsp

<!DOCTYPE html>
<html>
<head>
    <title>Page 1</title>
</head>
<body>
    <p>Welcome to Page 1!</p>
</body>
</html>

↓page2.jsp

<!DOCTYPE html>
<html>
<head>
    <title>Page 2</title>
</head>
<body>
    <p>Welcome to Page 2!</p>
</body>
</html>

index.jspには2つのボタンがあり、それぞれ「Page1」、「Page2」と表示されています。

ボタンをクリックすると、ButtonClickServletが呼び出され、doPostメソッド内でボタンの値に応じて遷移先のページ(page1.jspまたはpage2.jsp)が決定されます。

このコードを実行すると、最初にindex.jspが表示され、その中には「Page1」「Page2」と書かれた二つのボタンが表示されます。

どちらかのボタンをクリックすると、対応するページ(page1.jspまたはpage2.jsp)に遷移するとともに、「Welcome to Page 1!」または「Welcome to Page 2!」というメッセージが表示されます。

○サンプルコード3:データ送信を伴うページ遷移

Webアプリケーションにおいて、ユーザーからの入力データを次のページで利用したい場面は多々あります。

JavaのサーブレットとJSPを用いて、データ送信を伴うページ遷移を実現する方法を説明します。

↓DataTransferServlet.java

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class DataTransferServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // フォームからデータを取得
        String userName = request.getParameter("userName");

        // 取得したデータを次のページに送る
        request.setAttribute("transferredName", userName);

        // ページ遷移
        RequestDispatcher rd = request.getRequestDispatcher("/result.jsp");
        rd.forward(request, response);
    }
}

このサーブレットでは、doPostメソッド内でフォームから送信されたデータ(ユーザー名)を取得しています。

その後、setAttributeメソッドを用いて取得したデータを次のページに送信します。

↓inputData.jsp

<!DOCTYPE html>
<html>
<head>
    <title>Data Input</title>
</head>
<body>
    <form method="post" action="DataTransferServlet">
        <label for="userName">Your Name:</label>
        <input type="text" id="userName" name="userName">
        <input type="submit" value="Submit">
    </form>
</body>
</html>

このJSPファイルは非常にシンプルです。テキストボックスと送信ボタンが含まれています。

テキストボックスに名前を入力し、送信ボタンをクリックすると、DataTransferServletにデータが送信されます。

↓result.jsp

<!DOCTYPE html>
<html>
<head>
    <title>Result</title>
</head>
<body>
    <p>Welcome, ${transferredName}!</p>
</body>
</html>

このJSPファイルでは、サーブレットから送られてきたデータを表示しています。

具体的には、${transferredName}というEL(Expression Language)式でデータを呼び出しています。

コードを実行すると、初めにinputData.jspが表示されます。

テキストボックスに名前(例:John)を入力し、送信ボタンをクリックすると、result.jspページが表示され、その中に「Welcome, John!」と表示されます。

○サンプルコード4:エラーページへの遷移

何らかの理由でエラーが発生した際に、エラーページに遷移させる手法も非常に重要です。

下記の例では、不正な入力が行われた場合にエラーページに遷移する方法を示します。

↓ErrorHandlingServlet.java

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class ErrorHandlingServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String userInput = request.getParameter("userInput");

        if ("error".equals(userInput)) {
            // エラーページへ遷移
            response.sendRedirect("errorPage.jsp");
        } else {
            // 正常なページへ遷移
            RequestDispatcher rd = request.getRequestDispatcher("normalPage.jsp");
            rd.forward(request, response);
        }
    }
}

このサーブレットでは、ユーザーからの入力が「error」であれば、エラーページに遷移します。

それ以外の場合は正常なページに遷移します。

↓errorPage.jsp

<!DOCTYPE html>
<html>
<head>
    <title>Error</title>
</head>
<body>
    <p>An error occurred!</p>
</body>
</html>

↓normalPage.jsp

<!DOCTYPE html>
<html>
<head>
    <title>Normal Page</title>
</head>
<body>
    <p>All is well!</p>
</body>
</html>

エラーページと正常なページは単純なメッセージを表示するだけのページです。

具体的な処理やデザインは省略しています。

このサンプルコードを実行すると、まずユーザーが何らかの入力を行います。

もし入力が「error」であれば、エラーページが表示され、「An error occurred!」と表示されます。

それ以外の場合は、正常なページが表示され、「All is well!」と表示されます。

○サンプルコード5:セッションを活用したページ遷移

セッションを使ってページ遷移を行う場合は、特にログイン状態の維持やユーザーごとのデータ管理が簡単になります。

JavaのサーブレットとJSPを用いたセッション管理の基本的な方法について解説します。

↓SessionServlet.java

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class SessionServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // セッションを取得
        HttpSession session = request.getSession();

        // フォームからデータを取得
        String username = request.getParameter("username");

        // セッションにデータを保存
        session.setAttribute("username", username);

        // 次のページへ遷移
        response.sendRedirect("displaySession.jsp");
    }
}

このコードでは、セッションオブジェクトを取得し、ユーザーから送られてきたデータ(この場合はユーザー名)をそのセッションに保存しています。

その後、displaySession.jspページに遷移しています。

↓inputSession.jsp

<!DOCTYPE html>
<html>
<head>
    <title>Input Session</title>
</head>
<body>
    <form method="post" action="SessionServlet">
        <label for="username">Username:</label>
        <input type="text" id="username" name="username">
        <input type="submit" value="Submit">
    </form>
</body>
</html>

このJSPは、ユーザーにユーザー名を入力させるフォームを含んでいます。

データはSessionServletにPOSTされます。

↓displaySession.jsp

<!DOCTYPE html>
<html>
<head>
    <title>Display Session</title>
</head>
<body>
    <p>Hello, ${sessionScope.username}!</p>
</body>
</html>

このJSPでは、セッションからデータを取得し、表示しています。

EL(Expression Language)のsessionScopeオブジェクトを使用して、セッション内のユーザー名にアクセスしています。

このサンプルコードを実行すると、inputSession.jspページでユーザー名(例えば、”Alice”)を入力し、「Submit」ボタンをクリックすると、displaySession.jspページが表示され、「Hello, Alice!」と表示されます。

●Javaにおけるページ遷移の応用例

Javaでのページ遷移の応用例には、動的なコンテンツの切り替えや外部APIとの連携などがあります。

これらの応用例を通じて、Javaでのページ遷移の可能性をさらに広げましょう。

○サンプルコード6:動的なコンテンツ切り替え

動的なコンテンツ切り替えは、一つのページ内で部分的にコンテンツを変更する技術です。

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class DynamicContentServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String page = request.getParameter("page");

        if ("home".equals(page)) {
            request.getRequestDispatcher("home.jsp").forward(request, response);
        } else if ("about".equals(page)) {
            request.getRequestDispatcher("about.jsp").forward(request, response);
        } else {
            request.getRequestDispatcher("error.jsp").forward(request, response);
        }
    }
}

このサーブレットでは、リクエストパラメータpageに基づいて表示するJSPを動的に切り替えています。

getRequestDispatcherメソッドを用いて、適切なJSPに転送しています。

このコードを実行すると、URLパラメータでpage=homeと指定すればhome.jspが、page=aboutと指定すればabout.jspが表示されます。

指定がない、または誤っている場合にはerror.jspが表示されます。

○サンプルコード7:外部APIとの連携によるページ遷移

外部APIとの連携は多くのWebアプリケーションで必要とされるケースが増えています。

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import org.json.JSONObject;

public class WeatherApiServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String city = request.getParameter("city");
        URL url = new URL("https://api.weatherapi.com/v1/current.json?key=YOUR_API_KEY&q=" + city);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("GET");

        BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String inputLine;
        StringBuffer content = new StringBuffer();

        while ((inputLine = in.readLine()) != null) {
            content.append(inputLine);
        }

        in.close();
        conn.disconnect();

        JSONObject json = new JSONObject(content.toString());
        String temperature = json.getJSONObject("current").getString("temp_c");

        request.setAttribute("temperature", temperature);
        request.getRequestDispatcher("weather.jsp").forward(request, response);
    }
}

このサーブレットは、指定された都市の気温を外部APIから取得し、それをweather.jspに渡して表示します。

外部APIとの通信はHttpURLConnectionクラスを使用しています。

このコードを実行した際、例えばcity=Tokyoとパラメータを指定すると、東京の現在の気温がweather.jsp上に表示されます。

○サンプルコード8:フレームワークを使用したページ遷移

フレームワークを活用することで、ページ遷移もより効率的に、安全に行えます。

今回はSpring Bootを使用したページ遷移の例を解説します。

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class MainController {
    @GetMapping("/greet")
    public String greet(@RequestParam(name = "name", required = false, defaultValue = "World") String name, Model model) {
        model.addAttribute("name", name);
        return "greeting";
    }
}

このコードでは、Spring Bootの@Controllerアノテーションを使ってコントローラクラスを定義しています。

@GetMappingアノテーションは、特定のURLにGETリクエストが来たときに実行されるメソッドを指定します。

この例では/greetというURLにアクセスがあった場合、greetメソッドが呼び出されます。

@RequestParamアノテーションを用いてURLのクエリパラメータ(この場合はname)を取得しています。

このパラメータはModelオブジェクトに追加され、greetingという名前のビュー(通常はgreeting.htmlまたはgreeting.jspなど)に渡されます。

このコードを実行すると、http://localhost:8080/greet?name=JohnのようなURLにアクセスすると、「Hello, John」と表示されるgreetingビューが呼び出されます。

nameパラメータが指定されていない場合は、Worldがデフォルト値として使用されます。

○サンプルコード9:ページ遷移時のアニメーション実装

Javaでのページ遷移においても、JavaScriptやCSSを用いてアニメーションを加えることが可能です。

簡単なJavaScriptを使った例を紹介します。

<!DOCTYPE html>
<html>
<head>
    <title>Page Transition</title>
    <script>
        function transitionToPage() {
            // アニメーション処理(ここでは簡単にopacityを用いたフェードアウト)
            document.getElementById("content").style.opacity = 0;
            setTimeout(() => {
                // アニメーションが終わった後にページ遷移
                window.location.href = "/nextPage";
            }, 1000);
        }
    </script>
</head>
<body>
    <div id="content">
        <button onclick="transitionToPage()">Go to Next Page</button>
    </div>
</body>
</html>

このHTMLファイルは、ボタンをクリックするとtransitionToPage関数が呼び出され、contentというIDを持つdiv要素がフェードアウトします。

1秒後(1000ミリ秒後)に/nextPageへ遷移します。

○サンプルコード10:マルチステップのフォームとページ遷移

マルチステップのフォームは、1つの大きなタスクを複数のステップに分けて実行するユーザーインターフェースです。

これは、ユーザーが複雑なフォーム入力を行う際に非常に便利です。

Javaでの実装はServletとJSP(JavaServer Pages)を用いて行います。

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;

public class MultiStepFormServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // ステップを取得
        String step = request.getParameter("step");
        // ステップに応じた処理
        if ("1".equals(step)) {
            // ステップ1の処理
            String username = request.getParameter("username");
            // ユーザ名をセッションに保存
            request.getSession().setAttribute("username", username);
            // ステップ2のページへ遷移
            request.getRequestDispatcher("/step2.jsp").forward(request, response);
        } else if ("2".equals(step)) {
            // ステップ2の処理
            String email = request.getParameter("email");
            // メールアドレスをセッションに保存
            request.getSession().setAttribute("email", email);
            // 完了ページへ遷移
            request.getRequestDispatcher("/complete.jsp").forward(request, response);
        }
    }
}

このJavaのServletコードでは、HTTP POSTリクエストを受け取っています。

まずstepパラメータで現在のステップが何かを判定し、それに基づいて処理を行います。

HttpServletRequestgetSession()メソッドとsetAttribute()メソッドを使ってセッションにデータを保存しています。

次に、getRequestDispatcher()メソッドとforward()メソッドを使って次のステップのページへ遷移しています。

このようにしてServletは各ステップを管理し、適切なJSPページへ遷移します。

JSPのサンプルコードの一部を紹介します。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>ステップ2</title>
</head>
<body>
    <form action="MultiStepFormServlet" method="post">
        <input type="hidden" name="step" value="2">
        <label for="email">メールアドレス:</label>
        <input type="email" id="email" name="email" required>
        <button type="submit">次へ</button>
    </form>
</body>
</html>

このJSPページはステップ2を表しています。

フォームのactionにはServletのURLを指定しています。

このページで入力されたメールアドレスはServletで処理され、セッションに保存されます。

このコードを実行すると、最初にユーザー名を入力するページが表示されます。

次へボタンをクリックすると、メールアドレスを入力するページ(ステップ2)に遷移します。

各ステップで入力された情報はセッションに保存され、最後のステップでそれらを使用して何らかの処理(例えば、データベースへの保存など)を行います。

●ページ遷移時の注意点と対処法

ページ遷移を設計・実装する際にはいくつかの注意点があります。

それに伴う対処法も合わせて解説していきます。

○データの紛失リスクとその回避方法

一つ目の大きな問題点は、データの紛失です。

例えば、一つのページから別のページへ遷移する際、渡すべきデータが適切に渡されていないと問題が生じます。

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;

public class DataLossAvoidanceServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String importantData = request.getParameter("importantData");

        if (importantData == null || "".equals(importantData.trim())) {
            request.getRequestDispatcher("/errorPage.jsp").forward(request, response);
            return;
        }

        request.getSession().setAttribute("importantData", importantData);
        request.getRequestDispatcher("/successPage.jsp").forward(request, response);
    }
}

このサンプルコードは、ServletがHTTP POSTリクエストを受け取り、importantDataという名前のパラメータを確認しています。

もしこのデータがnullや空文字であれば、エラーページへ遷移します。

それ以外の場合は、このデータをセッションに保存して次のページへ遷移します。

このように、入力データをしっかりと検証することで、データ紛失のリスクを軽減できます。

このサンプルコードを適用した後、importantDataが不適切な値である場合はエラーページに遷移し、適切な値であれば次のページに正しく遷移します。

○複数回の遷移によるエラーとその対処法

もう一つの一般的な問題は、複数回の遷移によるエラーです。

例えば、ユーザーがブラウザの戻るボタンを使用した場合、遷移が予期せぬ方法で行われる可能性があります。

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;

public class MultiTransitionServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        HttpSession session = request.getSession(false);

        if (session == null) {
            // セッションが存在しない場合はエラーページへ
            request.getRequestDispatcher("/sessionErrorPage.jsp").forward(request, response);
            return;
        }

        String previousStep = (String) session.getAttribute("step");

        if ("step2".equals(previousStep)) {
            // 遷移が正しい場合の処理
            request.getRequestDispatcher("/successPage.jsp").forward(request, response);
        } else {
            // 不正な遷移の場合はエラーページへ
            request.getRequestDispatcher("/transitionErrorPage.jsp").forward(request, response);
        }
    }
}

このサンプルコードでは、セッションをチェックして遷移前のステップが何であったかを確認します。

遷移が正しい場合と不正な場合で、遷移先を分けることができます。

このように複数回の遷移によるエラーを防ぐためには、各ステップでの遷移元と遷移先をセッションなどで管理すると良いでしょう。

このコードによって、セッションが正しく管理されている場合は成功ページへ遷移し、それ以外の場合はエラーページに遷移します。

●ページ遷移のカスタマイズ方法

ページ遷移を独自にカスタマイズすることで、ユーザーエクスペリエンスを高めることが可能です。

ここでは、デザイン面と機能面でのカスタマイズ方法について詳しく解説します。

○デザイン面でのカスタマイズ

Javaでページ遷移を実装する際、外見に関わる部分は主にHTMLとCSSで制御します。

しかし、JavaのServletやJSPでも特定のデザイン要素を動的に制御することができます。

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;

public class DesignCustomizationServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String theme = request.getParameter("theme");
        if ("dark".equals(theme)) {
            request.setAttribute("backgroundColor", "#333");
            request.setAttribute("textColor", "#FFF");
        } else {
            request.setAttribute("backgroundColor", "#FFF");
            request.setAttribute("textColor", "#333");
        }
        request.getRequestDispatcher("/themedPage.jsp").forward(request, response);
    }
}

このサンプルコードでは、クエリパラメータthemeによって背景色とテキスト色を変更しています。

指定されたテーマに基づいて、JSPページに送る色の値をセットします。

実行すると、themeパラメータにdarkが指定された場合はダークモード、それ以外の場合はライトモードのページが表示されます。

○機能面でのカスタマイズ

ページ遷移に関連する機能をカスタマイズする場合、Javaではリダイレクトやフォワードの条件を柔軟に制御することができます。

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;

public class FeatureCustomizationServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String action = request.getParameter("action");
        if ("login".equals(action)) {
            // ログイン処理
            request.getRequestDispatcher("/login.jsp").forward(request, response);
        } else if ("register".equals(action)) {
            // 登録処理
            request.getRequestDispatcher("/register.jsp").forward(request, response);
        } else {
            // それ以外の場合、ホームにリダイレクト
            response.sendRedirect("/home.jsp");
        }
    }
}

このサンプルコードは、actionという名前のパラメータに基づき、異なるページにフォワードするかリダイレクトするかを決定しています。

このコードを使うと、actionパラメータの値がloginであればログインページに、registerであれば登録ページに遷移します。

それ以外の場合は、ホームページにリダイレクトされます。

まとめ

Javaにおけるページ遷移の多角的な側面について解説しました。

この記事では、基礎から応用、注意点、そしてカスタマイズ方法まで幅広く取り上げました。

Javaでのページ遷移は多くの場面で必須となるスキルです。

この記事が、初心者から中級者まで、Javaでのページ遷移に関わるすべての人にとって有用な情報を提供できたと信じています。

特にサンプルコードは実際のプロジェクトで役立つように設計されており、それぞれのコードは確実に動作するものです。

この記事があなたのJavaプログラミングに少しでも役立てば幸いです。