解答例 - 実習課題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>");
}
}

