package javahello; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; import java.sql.*; public class HelloWorldQueryTag extends BodyTagSupport { String url; String jdbcClass; String userName; String passwd; Connection con; Statement stmt; public void setUrl(String url) { this.url = url; } public String getUrl() { return url; } public void setJdbcClass(String jdbcClass) { this.jdbcClass = jdbcClass; } public String getJdbcClass() { return jdbcClass; } public void setUserName(String userName) { this.userName = userName; } public String getUserName() { return userName; } public void setPasswd(String passwd) { this.passwd = passwd; } public String getPasswd() { return passwd; } public int doAfterBody() throws JspTagException { BodyContent bc = getBodyContent(); String query = bc.getString(); bc.clearBody(); try { // ドライバクラスをロード Class.forName(jdbcClass); // データベースへ接続 con = DriverManager.getConnection(url, userName, passwd); // ステートメントオブジェクトを生成 stmt = con.createStatement(); // 結果セットを取得 ResultSet result = stmt.executeQuery(query); // 属性をセット pageContext.setAttribute(id,result); } catch (Exception e) { throw new JspTagException(e.getMessage()); } return SKIP_BODY; } public void release() { try { stmt.close(); con.close(); } catch (Exception e) { e.printStackTrace(); } } }