LoginSignup
2
2

More than 5 years have passed since last update.

Javaサーブレット/JSP Viewの描画

Last updated at Posted at 2018-04-24

転送方法による違い

  • フォワード ... 転送元と転送先が同じアプリケーションの場合に限り、使用することができます。
  • リダイレクト ... 転送元と転送先が別のアプリケーションを場合に使用する。転送速度が遅いというデメリットがあります。

フォワードによるViewの描画

フォワードを使って、出力処理をJSPファイルに依頼していきます。
@ RequestDispatcherインスタンスのfoward()メソッドを使用します。

foward()構文
RequestDispatcher dispatcher = request.getRequestDispatcher("フォワード先");
dispatcher.foward(request, response);

サンプルプログラム

フォワードを使って,サーブレットクラスからJSPファイルを出力します。

ForwardServlet.java
package servlet;

import java.io.IOException;

import javax.sevlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServlet.Request;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/ForwardServlet")
public class ForwardServlet extends HttpServlet {
  private static final long serialVersionUID = 1L;

  protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {

    //フォワード
    RequestDispatcher dispatcher = request.getRecestDispatcher("/WEB-INF/jsp/forward.jsp");
    dispatcher.forward(request, response);
  }
}
forward.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>サンプルページ</title>
</head>
<body>
<h1>これはサンプルです</h1>
<p>サンプルページ</p>
</body>
</html>

結果

これはサンプルです
サンプルページ

リダイレクトによるViewの描画

リダイレクトとは、ブラウザのリクエスト先を変更して処理の転送を行う方法です。転送元と転送先のアプリケーションが違う場合に使用します。
@ HttpServletResponseインスタンスのsendRedirect()メソッドを使用します。

リダイレクト構文
response.sendRedirect("リダイレクト先のURL");

リダイレクト先はURLか、アプリケーション内の場合は相対パスを使って指定できます。

サンプルプログラム

RedirectServlet.java
package servlet;

import java.io.IOException;

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("/RedirectServlet")
public class RedirectServlet extends HttpServlet {
  private static final long serialVersionUID = 1L;

protected void doGet (HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {

    //リダイレクト
    response.sendRedirect("/sample/SampleServlet");
  }
}


Next:リクエストスコープとは?

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2