Servlets(+Beans+スコープ)⇒JSP

Servlets に Beans を組み込み、スコープを設定して JSP を呼び出します。

前田稔の超初心者のプログラム入門

プログラムの作成

  1. "C:\tomcat\webapps\piyo のフォルダー構成です。
    +がフォルダーで、・がプログラマが格納するファイルで、*がコンパイラなどで作成するファイルです。
    +piyo
        +WEB-INF
            +classes
                +mybean
                    ・msgbean.java      //msg を定義した Beans
                    *msgbean.class
                ・ConnectServlet.java   //スコープを分けて Beans を設定する Servlets
                *ConnectServlet.class
            ・web.xml                   //Servlets のマッピング
        ・connectJsp.jsp                //スコープ毎に Beans を表示する JSP
    
  2. ソースプログラムです。
    ファイル名 説明
    msgbean.java msg を定義した Beans
    connectservlet.java スコープを分けて Beans を設定する Servlets
    connectjsp.jsp スコープ毎に Beans を表示する JSP
    web.xml TEXT FILE を入力 を参照して各自で作成して下さい
  3. msgbean.java をコンパイルして msgbean.class を作成します。
    ConnectServlet.java をコンパイルして ConnectServlet.class を作成します。
    詳細は JSP Error Guide を参照して下さい。
  4. サーブレットを実行します。
    "C:\tomcat\bin\tomcat7w.exe" を選択して、管理者として実行から apache-tomcat を起動します。
    WWW ブラウザを起動して下記の URL を張り付けて下さい。
    userName=java でパラメータを渡します。
    http://localhost:8080/piyo/ConnectServlet?userName=java
    スコープごとに java が表示されたら完成です。

プログラムの説明

  1. "http://localhost:8080/piyo/ConnectServlet?userName=java" で ConnectServlet.class が呼び出されます。
    渡されたパラメータ(userName=java) を取得します。
    String userName = req.getParameter("userName");
  2. request, session, application の三種類のスコープで msgbean を設定します。
        msgbean reqObject = null;
        msgbean sesObject = null;
        msgbean appObject = null;
        //getAttributeメソッドで、オブジェクトを取得します。
        reqObject = (msgbean)req.getAttribute("reqObject");
        HttpSession session = req.getSession();
        sesObject = (msgbean)session.getAttribute("sesObject");
        ServletContext sc = getServletContext();
        appObject = (msgbean)sc.getAttribute("appObject");
        
  3. オブジェクトが取得出来ない場合、new で生成して設定します。
        if (reqObject==null)
        {   reqObject = new msgbean();
            req.setAttribute("reqObject", reqObject);
        }
        if (sesObject == null)
        {   sesObject = new msgbean();
            session.setAttribute("sesObject", sesObject); 
        }
        if (appObject == null)
        {   appObject = new msgbean();
            sc.setAttribute("appObject", appObject);
        }
        
  4. 三種類のオブジェクトに userName を設定します。
        // userNameデータを保存します。
        reqObject.setMsg("req" + userName);
        sesObject.setMsg("ses" + userName);
        appObject.setMsg("app" + userName);
        
  5. getRequestDispatcher() を使って connectJsp.jsp を呼び出します。
        // JSPを呼び出します。
        RequestDispatcher rd = req.getRequestDispatcher("./connectJsp.jsp");
        rd.forward(req, res);
        
  6. connectJsp.jsp では、三種類のスコープで msgbean を受けてメッセージを表示します。
        <jsp:useBean id="reqObject" class="mybean.msgbean" scope="request" />
        <jsp:useBean id="sesObject" class="mybean.msgbean" scope="session" />
        <jsp:useBean id="appObject" class="mybean.msgbean" scope="application" />
        
  7. 私はこのソースコードで問題無く表示されたのですが、環境によっては文字化けするかも知れません。 (^_^;)
    文字化けするときは JSP Error Guide を参照して下さい。
    スコープの説明は HTML⇒Servlets⇒JSP を参照して下さい。

Java Game Program