[JSP Study] Statement 로그인 예제

Noah97·2022년 5월 31일
0

JspStudy

목록 보기
14/18
post-thumbnail

Statement를 이용한 로그인 예제

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>&nbsp;&nbsp;
					<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>&nbsp;&nbsp;
					<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();
		}
	}
%>

삭제 누를 시 실행 화면

데이터 삭제!
profile
안녕하세요 반갑습니다😊

0개의 댓글