0

サーバーが 2 つあり、自分のサーバーの jsp から別のサーバーの jsp を呼び出すことができます。

次のコードのように。最初のサーバー JSP。

    <%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Hello World!</h1>
        <form method="post" action="http://localhost:8080/Second_App/index.jsp">
            Name : <input type="text" name="name"/>
            Surname : <input type="text" name="surname"/>
            <input type="submit" value="Submit"/>
        </form>
    </body>
</html>

[送信] をクリックすると、コントロールが 2 番目のサーバーに移動し、名前をパラメーターとして受け取り、それを 2 番目のサーバーの jsp に入れます。

2 番目のサーバー JSP。

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Hello World!</h1>
        <% 
            String name = (String) request.getParameter("name");
            String surName = (String) request.getParameter("surname");
        %>
        Name    : <%= name %>
        Surname : <%= surName %>
    </body>
</html>

サーブレットを使用してまったく同じことをしたい。

サーブレットのリダイレクトを試してみましたが、コントロールは2番目のサーバーに移動しますが、リダイレクトのため、「名前」パラメーターは必要ありません。

Forwardで試しましたが、最初のサーバーでそのjspを見つけているため、機能していません。

RequestDispatcher dispatcher = request.getRequestDispatcher("http://server2/app1/index.jsp");
        dispatcher.forward(request, response);

私の懸念は、JSP がサーブレットであることです。これがjspで行われる場合、サーブレットでそれを行う方法が必要であることを意味します。

ありがとう。

4

4 に答える 4