乱数で石の個数を決める



石の個数を乱数で決める Servlets のサンプルプログラムです。

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

プログラムの作成

  1. ImgView.java を "C:\tomcat\webapps\piyo\WEB-INF\classes\ のフォルダーに格納して下さい。
    前のページで HelloWorld.java を格納したフォルダーです。
    +がフォルダーで、・がプログラマが格納するファイルで、*がコンパイラなどで作成するファイルです。
    フォルダーの構成とファイルの配置が重要で、一つ間違えると動かなくなります。 (^_^;)
    プログラムで使用する画像(Jewel.gif)は、piyo に images のフォルダーを作成して格納します。
    +piyo
        +WEB-INF
            +classes
                ・HelloWorld.java   //前のページで格納したファイル(今回は不要)
                *HelloWorld.class
                ・ImgView.java      //石を並べて表示する Servlets
                *ImgView.class
            +lib
            ・web.xml               //Servlets のマッピング
        +images
            ・画像ファイル          //石の画像ファイル(Jewel.gif)
    
  2. 乱数で石の個数を決めて並べて描画する ImgView.java です。
    乱数を使うので java.util.* を import しています。
    //★ 乱数で石の個数を決める    前田 稔
    //javac -classpath C:\tomcat\lib\servlet-api.jar ImgView.java
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.util.*;
    
    public class ImgView extends HttpServlet
    {   public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException,IOException
        {   response.setContentType("text/html;charset=Shift_JIS");
            PrintWriter out=response.getWriter();
            Random  rand = new Random();
            int  n = rand.nextInt(10)+1;
            out.println("<html><head>");
            out.println("<title>Image View</title>");
            out.println("</head><body>");
            out.println("<h1>Servlets Image View-3</h1>");
            for(int i=0; i<n; i++)
                out.println("<img src='../images/Jewel.gif'>");
            out.println("</body></html>");
            out.close();
        }
    }
    
  3. "C:\tomcat\webapps\piyo\WEB-INF\web.xml に ImgView の定義を追加します。
    今回つくった ImgView.class を imageview という名前で登録します。
    マッピングは hello と同様に /imageview に設定します。
    <?xml version="1.0" encoding="ISO-8859-1"?>
    
    <web-app>
    <servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>HelloWorld</servlet-class>
    </servlet>
    
    <servlet>
    <servlet-name>imageview</servlet-name>
    <servlet-class>ImgView</servlet-class>
    </servlet>
    
    <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
    </servlet-mapping>
    
    <servlet-mapping>
    <servlet-name>imageview</servlet-name>
    <url-pattern>/imageview</url-pattern>
    </servlet-mapping>
    
    </web-app>
    
  4. ImgView.java をコンパイルして ImgView.class を作成します。
    このとき servlet-api.jar を classpath で指定しなければなりません。
    コンパイルの詳細は JSP Error Guide を参照して下さい。
  5. プログラムで描画する画像は ImgView.class と同じフォルダーに格納しても描画出来ないようです。
    img タグでは相対的に Jewel.gif を参照します。
    ../ は piyo を指すので、piyo/images/Jewel.gif が画像ファイルです。
    サーバーサイドでは、大文字/小文字の区別(J が大文字)が必要です。
    "<img src='../images/Jewel.gif'>
  6. サーブレットを実行します。
    apache-tomcat を立ち上げて、WWW ブラウザに URL を張り付けて下さい。
    "imageview" は web.xml で設定した servlet-name です。
    http://localhost:8080/piyo/imageview
    imageview が呼ばれると、ImgView.java(class)の doGet() が呼び出されます。
    ここで吐き出したソースコードがブラウザに渡されて表示されます。

Java Game Program