Statement 객체를 이용한 로그인 예제
loginForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 관리 시스템 로그인 페이지</title>
<style>
table {
margin : auto;
width : 400px;
border : 1px solid gray;
test-align : center;
}
.td_title {
forn-weight : bold;
font-size : x-large;
}
</style>
</head>
<body>
<form name = "loginform" action = "loginProcess.jsp" method = "post">
<table>
<tr>
<td colspan = "2" class = "td_title">
로그인 페이지
</td>
</tr>
<tr>
<td><label for = "id">아이디 : </label></td>
<td><input type = "text" name = "id" id = "id"/></td>
</tr>
<tr>
<td><label for = "pass">비밀번호 : </label></td>
<td><input type = "password" name = "pass" id = "pass"/></td>
</tr>
<tr>
<td colspan = "2">
<a href = "javascript:loginform.submit()">로그인</a>
<a href = "joinForm.jsp">회원 가입</a>
</td>
</tr>
</table>
</form>
</body>
</html>
실행 화면
joinForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 관리 시스템 회원 가입 페이지</title>
<style>
table {
margin : auto;
width : 400px;
border : 1px solid gray;
text-align : center;
}
.td_title {
font-weight : bold;
font-size : x-large;
}
</style>
</head>
<body>
<form name = "joinform" action = "joinProcess.jsp" method = "post">
<table border = 1>
<tr>
<td colspan = "2" class = "td_title">
회원 가입 페이지
</td>
</tr>
<tr>
<td><label for = "id">아이디 : </label></td>
<td><input type = "text" name = "id" id = "id" /></td>
</tr>
<tr>
<td><label for = "pass">비밀번호 : </label></td>
<td><input type = "password" name = "pass" id = "pass" /></td>
</tr>
<tr>
<td><label for = "name">이름 : </label></td>
<td><input type = "text" name = "name" id = "name" /></td>
</tr>
<tr>
<td><label for = "age">나이 : </label></td>
<td><input type = "text" name = "age" id = "age" /></td>
</tr>
<tr>
<td><label for = "gender1"></label>성별 : </td>
<td>
<input type = "radio" name = "gender" value = "남" checked id = "gender1" />남자
<input type = "radio" name = "gender" value = "여" id = "gender2" />여자
</td>
</tr>
<tr>
<td><label for = "email">이메일 주소 : </label></td>
<td><input type = "text" name = "email" id = "email" /></td>
</tr>
<tr>
<td colspan = "2">
<a href = "javascript:joinform.submit()">회원가입</a>
<a href = "javascript:joinform.reset()">다시작성</a>
</td>
</tr>
</table>
</form>
</body>
</html>
실행 화면
joinProcess.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("id");
String pass = request.getParameter("pass");
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
String gender = request.getParameter("gender");
String email = request.getParameter("email");
Connection conn = null;
Statement stmt = null;
String driver = "org.mariadb.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/testdb3";
try {
Class.forName(driver);
conn = DriverManager.getConnection(url,"java","java");
stmt = conn.createStatement();
String sql = "INSERT INTO mem(id, pass, name, age, gender, email) VALUES('"+id+"','"+pass+"','"+name+"','"+age+"','"+gender+"','"+email+"')";
stmt.executeQuery(sql);
response.sendRedirect("loginForm.jsp");
} catch(Exception e) {
e.printStackTrace();
response.sendRedirect("joinForm.jsp");
} finally {
try {
stmt.close();
conn.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
%>
loginProcess.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%
Connection conn = null;
PreparedStatement pstmt = null;
String driver = "org.mariadb.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/testdb3";
String id = request.getParameter("id");
String pass = request.getParameter("pass");
ResultSet rs = null;
Class.forName(driver);
conn = DriverManager.getConnection(url,"java","java");
String sql = "SELECT * FROM mem WHERE id=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, id);
rs = pstmt.executeQuery();
while(rs.next()) {
String name = rs.getString(3);
if(rs.getString(1).equals(id) && rs.getString(2).equals(pass)) {
session.setAttribute("name", name);
response.sendRedirect("main.jsp");
}
}
conn.close();
pstmt.close();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인 처리</title>
</head>
<body>
<script>location.href="loginForm.jsp";</script>
</body>
</html>
main.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String name = (String)session.getAttribute("name");
String id = (String)session.getAttribute("id");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 관리 시스템 메인 페이지</title>
</head>
<body>
<h3>
'<%=name%>'님 환영합니다.
</h3>
<a href="member_list.jsp">관리자모드 접속(회원 목록 보기)</a>
</body>
</html>
실행 화면
member_list.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String driver = "org.mariadb.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/testdb3";
Class.forName(driver);
conn = DriverManager.getConnection(url,"java","java");
stmt = conn.createStatement();
String sql = "SELECT * FROM mem";
rs = stmt.executeQuery(sql);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 관리 시스템 관리자모드(회원목록보기)</title>
<style>
table {
margin: auto;
width: 400px;
border: 1px solid gray;
text-align: center;
}
.td_title {
font-weight: bold;
font-size: x-large;
}
</style>
</head>
<body>
<table>
<tr><td colspan=2 class = "td_title">회원목록</td></tr>
<%while(rs.next()) { %>
<tr>
<td>
<a href = "member_info.jsp?id=<%=rs.getString("id") %>"><%=rs.getString("id") %></a>
</td>
<td>
<a href = "member_delete.jsp?id=<%=rs.getString("id") %>">삭제</a>
</td>
</tr>
<% } %>
</table>
</body>
</html>
실행 화면
member_info.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%
String id = request.getParameter("id");
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
String driver = "org.mariadb.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/testdb3";
Class.forName(driver);
conn = DriverManager.getConnection(url,"java","java");
stmt = conn.createStatement();
String sql = "SELECT * FROM mem WHERE id='"+id+"'";
rs = stmt.executeQuery(sql);
} catch(Exception e) {
e.printStackTrace();
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원정보보기</title>
<style>
table {
margin: auto;
width: 400px;
border: 1px solid gray;
text-align: center;
}
</style>
</head>
<body>
<table>
<%while(rs.next()) { %>
<tr>
<td>아이디 :</td>
<td><%=rs.getString("id") %></td>
</tr>
<tr>
<td>비밀번호 :</td>
<td><%=rs.getString("pass") %></td>
</tr>
<tr>
<td>이름 :</td>
<td><%=rs.getString("name") %></td>
</tr>
<tr>
<td>나이 :</td>
<td><%=rs.getString("age") %></td>
</tr>
<tr>
<td>성별 :</td>
<td><%=rs.getString("gender") %></td>
</tr>
<tr>
<td>이메일 주소 :</td>
<td><%=rs.getString("email") %></td>
</tr>
<tr>
<td colspan=2><a href="member_list.jsp">리스트로 돌아가기</a></td>
</tr>
<% } %>
</table>
</body>
</html>
실행 화면
member_delete.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%
String id = request.getParameter("id");
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
String driver = "org.mariadb.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/testdb3";
Class.forName(driver);
conn = DriverManager.getConnection(url,"java","java");
stmt = conn.createStatement();
String sql = "DELETE FROM mem WHERE id='"+id+"'";
rs = stmt.executeQuery(sql);
response.sendRedirect("member_list.jsp");
} catch(Exception e) {
e.printStackTrace();
} finally {
try {
stmt.close();
conn.close();
} catch(Exception e) {
e.printStackTrace();
}
}
%>
삭제 누를 시 실행 화면