JavaA2Z

KAB-studio > プログラミング > JavaA2Z > RequestDispatcherとは

RequestDispatcher

日本語 要求配送者
英語 request dispatcher
ふりがな りくえすとでぃすぱっちゃー
フリガナ リクエストディスパッチャー

解説

サーブレットからJSPを表示するためのインターフェイス
J2EEに含まれるインターフェイスのひとつ。パッケージも含めたクラス名javax.servlet.RequestDispatcher。
ServletContextインターフェイスのgetRequestDispatcher()メソッド呼び出すことで、RequestDispatcherインターフェイス実装クラス参照を取得することができる。
その際、getRequestDispatcher()メソッド引数JSPを指定し、RequestDispatcherインターフェイスforward()メソッド呼び出すことで、doGet()メソッドもしくはdoPost()メソッドから抜けた後、指定したJSPが表示される。
 
JSP相対パスで指定する。サーブレットが属するWebアプリケーションパスを基準とする。
このJSPは、通常のJSPと異なり、WEB-INFディレクトリ内のJSPも指定することができるため、この方法であれば必ずサーブレットを経由してJSPを使用することができる。
 
この「サーブレット+JSP」の方法が、最も基本的な、Webアプリケーションのパターンである。
サーブレットリクエストパラメーターを受け取り、処理をい、HttpServletRequestインターフェイスのsetAttribute()メソッドで画面に出力する値をセットし、RequestDispatcherインターフェイスJSPを表示、JSPJSP暗黙オブジェクト「application」を用いて値を取得し出力する、というのが、サーブレットのパターンのひとつとなる。

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

<%-- webapps/sample-servlet/WEB-INF/jsp/sample.jsp --%>
<%@ page contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %>
<%--
    pageEncodingには、このファイルを保存した時の文字コードを指定してください。 
    Windowsであれば"Windows-31J"を指定すればいいでしょう。
--%>

<HTML>
<HEAD>
<TITLE>サーブレットとJSPのサンプル</TITLE>
</HEAD>
<BODY>

テスト。<BR>
このJSPはSampleServletサーブレットが呼ばれたあと表示しています。<BR>

</BODY>
</HTML>


// webapps/sample-servlet/WEB-INF/src/SampleServlet.java
// http://localhost:8080/sample-servlet/servlet/SampleServlet でアクセスできます。
// このサンプルプログラムは「サーブレット」の項目に書かれている準備を行ってから使用してください。
import java.io.IOException;
import javax.servlet.ServletContext;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
*   サーブレットのテスト。
*/
public class SampleServlet extends HttpServlet
{
    /**
     * リクエストとしてHTTPメソッドのGETが渡されるとこのメソッドが呼ばれます。
     */
    public void doGet( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException
    {
        System.out.println( "SampleServlet#doGet()" );

        // Content-Typeをセット。
        response.setContentType( "text/html;charset=Windows-31J" );

        // サーブレットコンテキストを取得します。
        ServletContext servletContext = getServletContext();
        // リクエストディスパッチャーを取得します。
        RequestDispatcher requestDispatcher = servletContext.getRequestDispatcher( "/WEB-INF/jsp/sample.jsp" );
        // 指定したJSPへと転送します。
        requestDispatcher.forward( request, response );
    }
}
<%-- webapps/sample-servlet/WEB-INF/jsp/sample.jsp --%>
<%@ page contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %>
<%--
    pageEncodingには、このファイルを保存した時の文字コードを指定してください。 
    Windowsであれば"Windows-31J"を指定すればいいでしょう。
--%>

<HTML>
<HEAD>
<TITLE>サーブレットとJSPのサンプル</TITLE>
</HEAD>
<BODY>

テスト。<BR>
このJSPはSampleServletサーブレットが呼ばれたあと表示しています。<BR>

</BODY>
</HTML>


// webapps/sample-servlet/WEB-INF/src/SampleServlet.java
// http://localhost:8080/sample-servlet/servlet/SampleServlet でアクセスできます。
// このサンプルプログラムは「サーブレット」の項目に書かれている準備を行ってから使用してください。
import java.io.IOException;
import javax.servlet.ServletContext;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
*   サーブレットのテスト。
*/
public class SampleServlet extends HttpServlet
{
    /**
     * リクエストとしてHTTPメソッドのGETが渡されるとこのメソッドが呼ばれます。
     */
    public void doGet( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException
    {
        System.out.println( "SampleServlet#doGet()" );

        // Content-Typeをセット。
        response.setContentType( "text/html;charset=Windows-31J" );

        // サーブレットコンテキストを取得します。
        ServletContext servletContext = getServletContext();
        // リクエストディスパッチャーを取得します。
        RequestDispatcher requestDispatcher = servletContext.getRequestDispatcher( "/WEB-INF/jsp/sample.jsp" );
        // 指定したJSPへと転送します。
        requestDispatcher.forward( request, response );
    }
}

この単語を含むページ

「みだし」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/09/07
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。