目次へ

解答例 - 実習課題1 - 2.サーブレットの基本

(実習課題1)

以下のサーブレットプログラムを作成しなさい。

  • 任意のデータベース・テーブルを表示するサーブレットプログラム。
  • データベースへの接続の際に使用するユーザ名・パスワードなどは、全てWebアプリケーションの設定ファイルに記述すること。
  • SQL文も設定ファイルに持たせること。
  • 接続のために必要な前準備は、全て「init」メソッド内の処理で完了するようにしておくこと。

解答例

/*
 * DisplayDbTableServlet.java TECHSCORE Java Servlet2章 実習課題1
 * 
 * Copyright (c) 2004 Four-Dimensional Data, Inc.
 */
package com.techscore.servlet.chapter2.exercise1;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

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

public class DisplayDbTableServlet extends HttpServlet {

    private String sql = null;

    private String url = null;

    private String username = null;

    private String password = null;

    private String driverClassName = null;

    private Connection getConnection() throws SQLException {
        Connection conn = null;
        try {
            Class.forName(driverClassName);
            conn = DriverManager.getConnection(url, username, password);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        return conn;
    }

    public void init() throws ServletException {
        url = getInitParameter("url");
        username = getInitParameter("username");
        password = getInitParameter("password");
        driverClassName = getInitParameter("driverClassName");
        sql = getInitParameter("sql");
    }

    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html; charset=Shift_JIS");
        PrintWriter writer = response.getWriter();
        writer.println("<html><head>
        <title>"
                + "Servlet2章Exercise2</title></head><body>");
        Connection connection = null;
        try {
            connection = getConnection();
            Statement statement = connection.createStatement();
            ResultSet result = statement.executeQuery(sql);
            StringBuffer buffer = new StringBuffer();
            buffer.append("<table border=\"1\">");
            while (result.next()) {
                buffer.append("<tr><td>").append(result.getInt(1)).append(
                        "</td>");
                buffer.append("<td>").append(result.getString(2)).append(
                        "</td>");
                buffer.append("<td>").append(result.getString(3)).append(
                        "</td>");
                buffer.append("<td>").append(result.getInt(4)).append(
                        "</td></tr>");
            }
            buffer.append("</table>");
            writer.println(buffer.toString());
            result.close();
            statement.close();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException e) {
                }
            }
        }
        writer.println("</body></html>");
    }
}

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp