JavaA2Z

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

HttpServletRequest

日本語 超文書転送規約小奉仕人要求
英語 Hypertext Transfer Protocol servlet request
ふりがな えっちてぃーてぃーぴーさーぶれっとりくえすと、えいちてぃーてぃーぴーさーぶれっとりくえすと
フリガナ エッチティーティーピーサーブレットリクエスト、エイチティーティーピーサーブレットリクエスト

解説

リクエストを格納するインターフェイス
J2EEに含まれるインターフェイスのひとつ。パッケージも含めたインターフェイス名はjavax.servlet.http.HttpServletRequest。
 サーブレットdoGet()メソッドdoPost()メソッドの第1引数がこのインターフェイスである。実際に渡されるのはその実装クラスとなる。
 
このインターフェイスは「リクエスト」の情報を持つ。
リクエストとして渡されたHTTPメソッドURLクッキーを取得することができる。
 
このインターフェイスの目的のひとつは、入力フォームで入力された値を取得することである。
まずsetCharacterEncoding()メソッドで、入力値の文字コードを指定する。これは通常、入力フォーム文字コードを、IANAに登録された名称で指定する。
次にgetParameter()メソッドで「名前」を指定することで「値」を取得する。「名前」とは、入力フォーム<INPUT>タグのNAME属性で指定された名前である。
 
リクエストパラメーターの値も同様に取得できる。
リクエストパラメーターの場合、「名前=値」の「名前」を指定することで取得できる。
ただし、文字コード入力フォームの場合と同じでなければならない。もしくは文字コードリクエストパラメーターとして指定させる。ただしその場合、setCharacterEncoding()メソッドはgetParameter()メソッドのあとでは機能しない場合があるため、注意が必要。
 
さらに、JSPJavaBeansを渡す場合にも使用する。
サーブレット側で「画面に出力するための情報」をJava Beanクラスに格納し、HttpServletRequestインターフェイスのsetAttribute()メソッドで名前を付けてセットすることで、JSP側で<jsp:useBean>JSPタグでそのまま変数として使用することができる。
 
このように、HttpServletRequestインターフェイスは非常に使い道の多いインターフェイスである。

参考サイト


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

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

<!-- webapps/sample-servlet/form.html -->
<!-- http://localhost:8080/sample-servlet/form.html でアクセスできます。 --><HTML>
<HEAD>
<TITLE>入力フォーム</TITLE>
</HEAD>
<BODY>

<!-- 入力フォームです。 -->
<FORM METHOD="POST" ACTION="servlet/SampleServlet">
名前:<INPUT TYPE="text" NAME="name" SIZE="10"><BR>
<INPUT TYPE="submit" VALUE="実行"><BR>

</FORM>

</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;

import bean.SampleBean;

/**
*   サーブレットのテスト。
*/
public class SampleServlet extends HttpServlet
{
    /**
     * リクエストとしてHTTPメソッドのGETが渡されるとこのメソッドが呼ばれます。
     */
    public void doGet( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException
    {
        // Content-Typeをセット。
        response.setContentType( "text/html;charset=Windows-31J" );

        // 呼び出した際のURLを取得します。
        StringBuffer requestURL = request.getRequestURL();
        System.out.println( requestURL.toString() );
        // http://localhost:8080/sample-servlet/servlet/SampleServlet

        // リクエストのHTTPメソッドを取得します。
        String method = request.getMethod();
        System.out.println( method );
        // POST

        // 入力値の文字コードをセットします。
        // HTMLの文字コードを指定してください。
        request.setCharacterEncoding( "Windows-31J" );

        // 入力フォームから入力された値を取得します。
        String name = request.getParameter( "name" );
        System.out.println( name );
        // (入力フォームの「名前:」に入力された文字列)

        // SampleBean Java Beanクラスを作成し、JSPで使えるようにセットします。
        SampleBean sampleBean = new SampleBean();
        sampleBean.setData( 100 );
        request.setAttribute( "sample_bean", sampleBean );

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

    /**
     * リクエストとしてHTTPメソッドのGETが渡されるとこのメソッドが呼ばれます。
     */
    protected void doPost( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException 
    {
        // でも面倒なのでdoGet()メソッドに丸投げします。
        doGet( request, response );
    }
}


// webapps/sample-servlet/WEB-INF/src/bean/SampleBean.java
package bean;
// Java Beanは、JSPで使用する関係でパッケージに入れる必要があります。
// ここではbeanパッケージに入れます。

// 一応、Java Beanは直列化可能にする必要があります。
// 実際には必要ない場合も多いですが。
import java.io.Serializable;

/**
*   SampleServletで使用するJava Beanクラスです。
*/
public class SampleBean implements Serializable
{
    /**
    *    プロパティ。
    */
    private int data;

    /**
    *   コンストラクタ。
    */
    public SampleBean()
    {
        data = 0;
    }

    /**
    *    プロパティのgetter。
    */
    public int getData()
    {
        return data;
    }

    /**
    *    プロパティのsetter。
    */
    public void setData( int value )
    {
        this.data = value;
    }
}
<!-- webapps/sample-servlet/form.html -->
<!-- http://localhost:8080/sample-servlet/form.html でアクセスできます。 --><HTML>
<HEAD>
<TITLE>入力フォーム</TITLE>
</HEAD>
<BODY>

<!-- 入力フォームです。 -->
<FORM METHOD="POST" ACTION="servlet/SampleServlet">
名前:<INPUT TYPE="text" NAME="name" SIZE="10"><BR>
<INPUT TYPE="submit" VALUE="実行"><BR>

</FORM>

</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;

import bean.SampleBean;

/**
*   サーブレットのテスト。
*/
public class SampleServlet extends HttpServlet
{
    /**
     * リクエストとしてHTTPメソッドのGETが渡されるとこのメソッドが呼ばれます。
     */
    public void doGet( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException
    {
        // Content-Typeをセット。
        response.setContentType( "text/html;charset=Windows-31J" );

        // 呼び出した際のURLを取得します。
        StringBuffer requestURL = request.getRequestURL();
        System.out.println( requestURL.toString() );
        // http://localhost:8080/sample-servlet/servlet/SampleServlet

        // リクエストのHTTPメソッドを取得します。
        String method = request.getMethod();
        System.out.println( method );
        // POST

        // 入力値の文字コードをセットします。
        // HTMLの文字コードを指定してください。
        request.setCharacterEncoding( "Windows-31J" );

        // 入力フォームから入力された値を取得します。
        String name = request.getParameter( "name" );
        System.out.println( name );
        // (入力フォームの「名前:」に入力された文字列)

        // SampleBean Java Beanクラスを作成し、JSPで使えるようにセットします。
        SampleBean sampleBean = new SampleBean();
        sampleBean.setData( 100 );
        request.setAttribute( "sample_bean", sampleBean );

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

    /**
     * リクエストとしてHTTPメソッドのGETが渡されるとこのメソッドが呼ばれます。
     */
    protected void doPost( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException 
    {
        // でも面倒なのでdoGet()メソッドに丸投げします。
        doGet( request, response );
    }
}


// webapps/sample-servlet/WEB-INF/src/bean/SampleBean.java
package bean;
// Java Beanは、JSPで使用する関係でパッケージに入れる必要があります。
// ここではbeanパッケージに入れます。

// 一応、Java Beanは直列化可能にする必要があります。
// 実際には必要ない場合も多いですが。
import java.io.Serializable;

/**
*   SampleServletで使用するJava Beanクラスです。
*/
public class SampleBean implements Serializable
{
    /**
    *    プロパティ。
    */
    private int data;

    /**
    *   コンストラクタ。
    */
    public SampleBean()
    {
        data = 0;
    }

    /**
    *    プロパティのgetter。
    */
    public int getData()
    {
        return data;
    }

    /**
    *    プロパティのsetter。
    */
    public void setData( int value )
    {
        this.data = value;
    }
}

この単語を含むページ

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

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