目次へ

解答例 - 実習課題3 - 5.includeとforward

(実習課題3)

以下の条件を満たすサーブレットアプリケーションを作成しなさい。

  • 動物を表すクラスを作成し、そのクラスは「名前」「身長」「体重」を表すインスタンス変数、および適当な「set」「get」メソッドを持つものとする。
  • サーブレットアプリケーションは入力ページと出力ページを持ち、入力ページで上記3要素を入力する。出力ページでは、3要素の表示を行う。
  • 3要素全てが入力されていない場合には、出力ページを表示せずに、再度入力ページで入力を促すようにする事。
  • 出力ページに表示をする前に、入力された要素をログファイルに書き出すようにする事。
  • 「入力ページ」「出力ページ」「処理を行うサーブレット」の3つのサーブレットを作成する事。

解答例

/*
 * Animal.java TECHSCORE Java Servlet5章 実習課題3
 * 
 * Copyright (c) 2004 Four-Dimensional Data, Inc.
 */
package com.techscore.servlet.chapter5.exercise3;

public class Animal {
    private String name = "";

    private int height = 0;

    private int weight = 0;

    public int getHeight() {
        return height;
    }

    public void setHeight(int height) {
        this.height = height;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getWeight() {
        return weight;
    }

    public void setWeight(int weight) {
        this.weight = weight;
    }

    public boolean isValid() {
        if (!name.equals("") && !(weight == 0) && !(height == 0)) {
            return true;
        }
        return false;
    }
}
/*
 * InputServlet.java TECHSCORE Java Servlet5章 実習課題3
 *
 * Copyright (c) 2004 Four-Dimensional Data, Inc.
 */
package com.techscore.servlet.chapter5.exercise3;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class InputServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        StringBuffer buffer = new StringBuffer();
        buffer.append("<html><head>
        <title>Servlet5章Exercise3");
        buffer.append("</title></head><body>");
        buffer.append("<form action=\"\">");
        buffer.append("名前<input type=\"text\" name=\"name\"><br>");
        buffer.append("身長<input type=\"text\" name=\"height\"><br>");
        buffer.append("体重<input type=\"text\" name=\"weight\"><br>");
        buffer.append("<input type=\"submit\" value=\"送信\" method=\"get\">");
        buffer.append("</form>");
        buffer.append("</body></html>");

        response.setContentType("text/html; charset=Shift_JIS");
        PrintWriter writer = response.getWriter();
        writer.println(buffer.toString());
    }
}
/*
 * OutputServlet.java TECHSCORE Java Servlet5章 実習課題3
 * 
 * Copyright (c) 2004 Four-Dimensional Data, Inc.
 */
package com.techscore.servlet.chapter5.exercise3;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class OutputServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        Animal animal = (Animal) request.getAttribute("animal");
        StringBuffer buffer = new StringBuffer();
        buffer.append("<html><head>
        <title>Servlet5章Exercise3");
        buffer.append("</title></head><body>");
        buffer.append("名前:").append(animal.getName()).append("<br>");
        buffer.append("身長:").append(animal.getHeight()).append("<br>");
        buffer.append("体重:").append(animal.getWeight()).append("<br>");
        buffer.append("</body></html>");
        response.setContentType("text/html; charset=Shift_JIS");
        PrintWriter writer = response.getWriter();
        writer.println(buffer.toString());
        
    }
}
/*
 * ProsessServlet.java TECHSCORE Java Servlet5章 実習課題3
 * 
 * Copyright (c) 2004 Four-Dimensional Data, Inc.
 */
package com.techscore.servlet.chapter5.exercise3;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ProcessServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        String name = request.getParameter("name");
        String height = request.getParameter("height");
        String weight = request.getParameter("weight");

        Animal animal = new Animal();
        animal.setName(name);
        try {
            animal.setHeight(Integer.parseInt(height));
            animal.setWeight(Integer.parseInt(weight));
        } catch (NumberFormatException e) {
            this.getServletContext().getNamedDispatcher("servlet5-3input")
                    .include(request, response);
        }
        if (animal.isValid()) {
            request.setAttribute("animal", animal);
            this.getServletContext().getNamedDispatcher("servlet5-3output")
                    .include(request, response);
        } else {
            this.getServletContext().getNamedDispatcher("servlet5-3input")
                    .include(request, response);
        }
    }
}

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp