転送元:サーブレット
////////////////////////////////////////////////////////////////////////////////
//  << sv133a.java >>
//
// サーブレット(3):要求の転送(Beanとの連携)
//
//  Beanを経由して転送先サーブレットにデータを渡す。
//
// ●転送元サーブレットの書き方
//
//  (手順1)Beanの作成
//  (手順2)Beanのプロパティを設定。
//  (手順3)Beanの実行。
//  (手順4)要求にBeanの実行結果を設定。
//  (手順5)要求を転送先サーブレットに転送。
//
// ●起動法
//  (1)Javaファイル(sv133a.java)をコンパイルし、classファイル(sv133a.class)を
//       作成する。
//       ただし、Javaファイル(sv133a.java)は、
//       %CATALINA_HOME%\webapps\SV\WEB-INF\classes\sv133a.java
//     classファイル(sv133a.class)は、
//       %CATALINA_HOME%\webapps\SV\WEB-INF\classes\sv133a.class
//       に保存する。
//    (2)HTMLファイル中、入力フォームで、
//         URL(http://localhost:8080/SV/servlet/sv133a)
//       を指定する。
//
////////////////////////////////////////////////////////////////////////////////

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import beans.sv133aBean;

public class sv133a extends HttpServlet {
  public void doPost(HttpServletRequest request, HttpServletResponse response)
                     throws ServletException,IOException {

    // (手順1)Bean(sv133aBean)オブジェクトの作成。
    sv133aBean bean = new sv133aBean();

    // (手順2)Beanのプロパティ設定。
    bean.setNum(12);

    // (手順3)Beanの実行。
    bean.execute();

    // (手順4)要求にBeanの実行結果を設定。
    request.setAttribute("PARAM", bean);

    // サーブレットコンテキストを取得。
    ServletContext sc = this.getServletContext();

    // (手順5)要求を転送先サーブレット(/servlet/sv133at)に転送。
    RequestDispatcher rd = sc.getRequestDispatcher("/servlet/sv133at");
    rd.forward(request,response);
  }
}
Bean
////////////////////////////////////////////////////////////////////////////////
//  << sv133aBean.java >>
//
// サーブレット(3):要求の転送(Bean)
//
//  Beanの機能:このBeanは、設定された整数を2乗して返す。
//
//  再利用できるプログラムの部品をコンポーネントという。
//  Javaでは、JavaBeansという仕様にしたがって、コンポーネントを作成することに
//  なっている。作成されたコンポーネントは、Beanと呼ばれる。
//
//  ・Beanは、単体で実行できない。
//
// ●JavaBeansの主な仕様
//  (1)Serializableインターフェースを実装する。
//  (2)引数なしのコンストラクタを持つ。
//  (3)フィールドには、private指定する。
//    JavaBeansでは、フィールドをプロパティと呼ぶ。
//  (4)プロパティを設定したり参照したりするために、決められたメソッド
//   (getプロパティ名、setプロパティ名)を使う。
//    (5)サーブレット、JSPでは、Beanはパッケージに入れてよく使われる。
//    
// ●起動法
//  Beanは、beansパッケージに入れる。
//  (1)Javaファイル(sv133aBean.java)をコンパイルし、classファイル
//    (sv133aBean.class)を作成する。
//       ただし、Javaファイル(sv133aBean.java)は、
//       %CATALINA_HOME%\webapps\SV\WEB-INF\classes\beans\sv133aBean.java
//     classファイル(sv133aBean.class)は、
//       %CATALINA_HOME%\webapps\SV\WEB-INF\classes\beans\sv133aBean.class
//       に保存する。
//
////////////////////////////////////////////////////////////////////////////////

package beans;
import java.io.*;

public class sv133aBean implements Serializable {
  // プロパティの設定。                        
  private int num;
                                               
  // 引数なしのコンストラクタ。                
  public sv133aBean() { num = 0; }
                                               
  // setNumの定義。                           
  public void setNum(int n) { num = n; }       
                                               
  // getNumの定義。                           
  public int getNum() { return num; }
                                               
  // executeの定義。                           
  public void execute() { num = num * num; }
}
転送先:サーブレット
////////////////////////////////////////////////////////////////////////////////
//  << sv133at.java >>
//
// サーブレット(3):要求の転送(転送先、Beanとの連携)
//
//  Beanを経由して、転送元サーブレットからデータを受け取る。
//
// ●転送先サーブレットの書き方
//
//  (手順1)Beanのインスタンス化。
//  (手順2)データをgetXXXメソッドで取得。
//  (手順3)応答をWebクライアントに返す。
//
// ●起動法
//  (1)Javaファイル(sv133at.java)をコンパイルし、classファイル(sv133at.class)
//       を作成する。
//       ただし、Javaファイル(sv133at.java)は、
//       %CATALINA_HOME%\webapps\SV\WEB-INF\classes\sv133at.java
//     classファイル(sv133at.class)は、
//       %CATALINA_HOME%\webapps\SV\WEB-INF\classes\sv133at.class
//       に保存する。
//
////////////////////////////////////////////////////////////////////////////////

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import beans.sv133aBean;

public class sv133at extends HttpServlet {
  public void doPost(HttpServletRequest request, HttpServletResponse response)
                     throws ServletException,IOException {

    // (手順1)Beanのインスタンス化。
    request.setCharacterEncoding("JISAutoDetect"); 
    sv133aBean bean = (sv133aBean)request.getAttribute("PARAM");

    // (手順2)データをgetXXXメソッドで取得。
    int num = bean.getNum();

    // コンテンツタイプの指定。
    response.setContentType("text/html; charset=Shift_JIS");

    // (手順3)応答をWebクライアントに返す。
    // HTML文書の出力。       
    PrintWriter pw = response.getWriter();                               
    pw.println("<html>"                                                
             + "<head><title>サーブレット</title></head>"              
             + "<body>"                                                
             + "転送先サーブレットからの出力です<br>"          
             + "num:" + num + "<br>"                                  
             + "</body>"                                               
             + "</html>");                                             
    pw.flush();                                                          
    pw.close();                                                          
  }
}
入力フォーム
<form action=http://localhost:8080/SV/servlet/sv133a method=POST>
  <input type=submit value=実行>
</form>
実行結果

実行後