2012年10月30日火曜日

JavaBeansプログラミング3(フォーム利用:MVC)

フォーム(HTML)、受け取り(Servlet)、データ格納(JavaBeans)、データ表示(JSP)を行います。
MVCで行います。
M:JavaBeans、V:JSP、C:Servletです。

1.Tomcatプロジェクト作成
プロジェクト名:HelloMVC
ルートディレクトリ:sample

パッケージ作成
パッケージ名:hellomvc

ファイル作成
・sample/form.html
・sample/HelloMVC.jsp
・sample/WEB-INF/src/hellomvc/HelloMVC_Servlet.java
・sample/WEB-INF/src/hellomvc/HelloMVC_Bean.java
・sample/WEB-INF/web.xml




IDとパスワードの変更画面(入力して表示するだけ)を作成します。

2.コード作成
2-1 HTMLフォーム
[form.html]

ソースコードはこちら




[HelloMVC_Servlet.java]

package hellomvc;

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

public class HelloMVC_Servlet extends HttpServlet {
  /**
*
*/
private static final long serialVersionUID = -1378958237392312712L;

public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
// リクエストパラメータの文字エンコーディングを設定
request.setCharacterEncoding("Windows-31J");
// JavaBeansSendMailをインスタンス化
HelloMVC_Bean objBean = new HelloMVC_Bean();

objBean.setId(request.getParameter("user"));
objBean.setPassword(request.getParameter("passwd"));

// HelloMVC_Beanクラスをリクエスト属性にセット.これがないとJSP側で同じオブジェクトを使えません。
request.setAttribute("mvc",objBean);
   // 処理をHelloMVC.jspに転送
  getServletContext().getRequestDispatcher("/HelloMVC.jsp").
  forward(request,response);
  }
}



[HelloMVC_Bean.java]

package hellomvc;

public class HelloMVC_Bean {

// 各種パラメータを保存するプライベート変数を定義
  private String id;
  private String password;

// コンストラクタ
  public HelloMVC_Bean(){
  }

  // 各種プロパティのアクセサメソッド
  public String getId(){
  return id;
  }
  public String getPassword(){
                  return password;
          }

  public void setId(String id){
  this.id=id;
  }
  public void setPassword(String password){
  this.password=password;
  }

}



[HelloMVC.jsp]

<a href="https://docs.google.com/open?id=0B2K8r-qA0vpLTDJESFdwdWtKazg">ソースはこちら</a>[web.xml]
ソースはこちら

うまく実行できれば




①HTML(フォーム)から情報をServletに送信します。

②サーブレットでは

JavaBeanのクラスインスタンスを生成し
HelloMVC_Bean objBean = new HelloMVC_Bean();



objBean.setId(request.getParameter("user"));
objBean.setPassword(request.getParameter("passwd"));

パラメータを受け取り格納します。

その後JSPで同じオブジェクトを利用できるように、オブジェクトをJSPに転送します
// HelloMVC_Beanクラスをリクエスト属性にセット.これがないとJSP側で同じオブジェクトを使えません。
request.setAttribute("mvc",objBean);
   // 処理をHelloMVC.jspに転送
  getServletContext().getRequestDispatcher("/HelloMVC.jsp").
  forward(request,response);

③JSPでは同じオブジェクトを利用し、表示します。

この流れがMVC基本形です。
HTML,Servlet(C),JavaBeans(M),JSP(V)の連携を理解してください。

0 件のコメント:

コメントを投稿