JavaA2Z

KAB-studio > プログラミング > JavaA2Z > <jsp:useBean>とは

<jsp:useBean>

日本語 ジャバ給仕頁付箋豆使用
英語 JavaServer Pages use bean tag
ふりがな じぇいえすぴーゆーずびーんたぐ、じぇーえすぴーゆーずびーんたぐ
フリガナ ジェイエスピーユーズビーンタグ、ジェーエスピーユーズビーンタグ

解説

<jsp>タグライブラリのひとつ。
JavaBeansを使用するためのタグ
 
<jsp:useBean id="登録名/変数" class="クラス" scope="スコープ"/>」という形式で、サーブレットで登録されたJava Beanクラスを使用する。
id属性で、サーブレットで登録した際の「登録名」を指定する。また、この名前がそのまま変数名となる。
class属性で、「変数名」変数クラス名を指定する。このクラスは、必ずパッケージに含まれていなければならない。JSPは一度クラスに変換されるが、そのクラスがすでにパッケージに含まれているためである。
scope属性では登録した際のスコープを指定する。HttpServletRequestインターフェイスを使用して登録された場合には"request"HttpSessionインターフェイスを使用して登録された場合には"session"を指定する。また、このスコープが「変数名」変数スコープともなる。
 
上記の形式で指定することで、「変数名」変数JSP内のスクリプトレット<% %>)やJSP式<%= %>)で使用することができる。
この変数は、サーブレット側でHttpServletRequestインターフェイスもしくはHttpSessionインターフェイスのsetAttribute()メソッドで登録する。この際「登録名」を第1引数で指定する。
 
サーブレットを介さず直接JSPが呼ばれた場合、指定したクラスデフォルトコンストラクタを用いて「変数名」変数が作られる。
そのため、JSPが外から直接アクセスできる場合には、指定したJava Beanクラスデフォルトコンストラクタを持たせなければならず、またJSP内で使用できるようにしなければならない。

(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"を指定すればいいでしょう。
--%>

<jsp:useBean id="sample_bean" class="bean.SampleBean" scope="request"/>
<%--
    SampleServletでセットしたJava Beanを取得します。 
    idでは、HttpServletRequestインターフェイスかHttpSessionインターフェイスの
    setAttribute()メソッドの第1引数で渡した文字列を指定します。
    classで、第2引数で渡したクラスを指定します。
    scopeでスコープをセットします。HttpServletRequestを使用した場合にはrequest、
    HttpSessionを使用した場合はsessionを指定します。
--%>

<html>
<head>
<title>JSPのサンプル</title>
</head>
<body>

<%
    // <jsp:useBean>のidで指定した名前が、そのまま変数名となります。
    // この変数名で、サーブレット側でセットしたデータにアクセスできます。
    int i = sample_bean.getData();
    out.println( i );
    // 100
%>

</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
    {
        System.out.println( "SampleServlet#doGet()" );

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

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



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

<jsp:useBean id="sample_bean" class="bean.SampleBean" scope="request"/>
<%--
    SampleServletでセットしたJava Beanを取得します。 
    idでは、HttpServletRequestインターフェイスかHttpSessionインターフェイスの
    setAttribute()メソッドの第1引数で渡した文字列を指定します。
    classで、第2引数で渡したクラスを指定します。
    scopeでスコープをセットします。HttpServletRequestを使用した場合にはrequest、
    HttpSessionを使用した場合はsessionを指定します。
--%>

<html>
<head>
<title>JSPのサンプル</title>
</head>
<body>

<%
    // <jsp:useBean>のidで指定した名前が、そのまま変数名となります。
    // この変数名で、サーブレット側でセットしたデータにアクセスできます。
    int i = sample_bean.getData();
    out.println( i );
    // 100
%>

</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
    {
        System.out.println( "SampleServlet#doGet()" );

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

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



// 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/09/11
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。