ちょっとWebアプリケーションを……
MySQLのSQLとOracleのそれが混ざってきそうな予感もするが、MySQLを使ったWebアプリでも作ってみようかなと言う気になった。要するに、JSP+TOMCAT+MySQLな感じで作ろうと思う。
今回、Servetは作らずにJSPからDAOをnewするような感じで作っていこうと思う。必要に合わせて、中間にコントロール層でも挟んでいこうと思っている。
とりあえず、簡単なログインもどきのところを作っていった。……そのまえに、仕様を固めないと空中分解の可能性大。
index.jsp
<%@page contentType="text/html; charset=Windows-31J" %> <html> <head><title>ログイン</title> </head> <body> ログイン <form method="post" action="login.jsp"> ユーザID<input type="text" name="id"><BR> パスワード<input type="text" name="pass"> <input type="submit" value="送信"> </form> </body> </html>
login.jsp
<%@page contentType="text/html; charset=Windows-31J" %> <%@ page import="jp.bne.tomokusaba.biz.*" %> <html> <head><title>ログイン</title> </head> <body> <% String id = request.getParameter("id"); String pass = request.getParameter("pass"); BizLogin login = new BizLogin(); if (login.login(id,pass)) { %> id = <%= id %><BR> pass = <%= pass %> <BR> <% } else { %> ユーザIDまたはパスワードが違います。 <% } %> </body> </html>
BizLogin.java
package jp.bne.tomokusaba.biz; import jp.bne.tomokusaba.dao.*; public class BizLogin { public boolean login(String id, String pass) throws Exception { Daologin login = new Daologin(); boolean result = false; try { login.getConnection(); result = login.login(id, pass); } catch (Exception e) { e.printStackTrace(); return false; } finally { login.closeConnection(); } return result; } }
Daologin.java
package jp.bne.tomokusaba.dao; public class Daologin extends SuperDAO { public Daologin() { } public boolean login(String id, String pass) throws Exception { try { String strSql = "select count(*) from user where id = ? and pass = ?"; stmt = con.prepareStatement(strSql); stmt.setString(1, id); stmt.setString(2, pass); rs = stmt.executeQuery(); String count = ""; while (rs.next()) { count = rs.getString(1); } if ("1".equals(count)) { return true; } else { return false; } } catch (Exception e) { System.out.println(e); } return false; } }
SuperDAO.java
package jp.bne.tomokusaba.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class SuperDAO { Connection con = null; PreparedStatement stmt = null; ResultSet rs = null; public boolean getConnection() throws Exception { try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/test?userUnicode=true&characterEncoding=Windows-31J"; String user = "java"; String pswd = "javauser"; con = DriverManager.getConnection(url, user, pswd); } catch (Exception e) { e.printStackTrace(); return false; } return true; } public boolean closeConnection() throws Exception { try { rs.close(); stmt.close(); con.close(); } catch (Exception e) { e.printStackTrace(); return false; } return true; } }