반응형
📌member 테이블 구현
📌구현해야 할 JSP 페이지
로그인
loginForm.jsp | 로그인 하기 위한 페이지 |
loginProcess.jsp | 로그인을 실제로 처리하는 페이지 |
회원가입
joinForm.jsp | 회원 가입을 위한 페이지 |
joinProcess.jsp | 회원 가입을 실제로 처리하는 페이지 |
메인 페이지
main.jsp | 로그인 후 main 페이지 |
회원 관리(관리자) 페이지
memberList.jsp | 회원 목록 페이지 |
memberInfo.jsp | 회원 정보 페이지 |
memberDelete.jsp | 회원 삭제 페이지 |
원래 실제로 일을 처리하는 페이지인 XXXProcess.jsp들은 jsp 파일로 생성하지 않고 Servlet 파일로 생성하지만 여기선 JSP 파일로만 구현해보도록 하겠다.
📌로그인
loginForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<html>
<head>
<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="loginform" action="loginProcess.jsp" method="post">
<table>
<tr>
<td colspan="2" class = "td_title">
로그인 페이지
</td>
</tr>
<tr>
<td style="text-align : right"><label style= "font-weight: bold" for = "id">아이디 : </label></td>
<td><input type="text" name="id" id = "id"/></td>
</tr>
<tr>
<td style="text-align : right"><label style= "font-weight: bold" 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>
36: 로그인 링크를 클릭하면 javascript를 사용하여 loginform 객체의 submit() 메소드를 호출하여 loginProcess.jsp 페이지로 보낸다. 이와 같이 명령어 말고 <input type="submit" value="로그인"> 로 작성하는 것도 물론 가능하다.
loginProcess.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%
String id=request.getParameter("id");
String pass=request.getParameter("pass");
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/testDB";
String sql = "SELECT * FROM member WHERE id=?";
try {
Class.forName(driver);
conn=DriverManager.getConnection(url,"아이디","비밀번호");
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,id);
rs=pstmt.executeQuery();
if(rs.next()){
if(pass.equals(rs.getString("password"))){
session.setAttribute("id",id); //session 영역에 "id"라는 이름의 속성 값을 생성
out.println("<script>");
out.println("location.href='main.jsp'");
out.println("</script>");
}
}
//로그인에 실패할 경우 "loginForm.jsp" 페이지로 이동한다.
out.println("<script>");
out.println("location.href='loginForm.jsp'");
out.println("</script>");
}catch(Exception e){
e.printStackTrace();
}finally{
try{
rs.close();
pstmt.close();
conn.close();
}
catch(Exception e){
e.printStackTrace();
}
}
%>
📌회원 가입
joinForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<html>
<head>
<title>회원관리 시스템 회원가입 페이지</title>
<style>
table{
margin : auto;
width : 400px;
border : 1px solid gray;
text-align: center;
}
.td_title{
font-weight: bold;
font-size: x-large;
}
.td_align{
font-weight: bold;
text-align: right;
}
</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 class = "td_align"><label for = "id">아이디 </label></td>
<td><input type="text" name="id" id = "id"/></td>
</tr>
<tr>
<td class = "td_align"><label for = "pass">비밀번호 </label></td>
<td><input type="password" name="pass" id = "pass"/></td>
</tr>
<tr>
<td class = "td_align"><label for = "name">이름 </label></td>
<td><input type="text" name="name" id = "name"/></td>
</tr>
<tr>
<td class = "td_align"><label for = "age">나이 </label></td>
<td><input type="text" name="age" id = "age"/>
</td>
</tr>
<tr>
<td class = "td_align"><label for = "male"></label>성별 </td>
<td>
<input type="radio" name="gender" value="남" checked id = "male"/>남자
<input type="radio" name="gender" value="여" id = "female"/>여자
</td>
</tr>
<tr>
<td class = "td_align"><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"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%
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;
PreparedStatement pstmt=null;
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/testDB";
String sql = "INSERT INTO member VALUES (?,?,?,?,?,?)";
try {
Class.forName(driver);
conn=DriverManager.getConnection(url,"아이디","비밀번호");
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,id);
pstmt.setString(2,pass);
pstmt.setString(3,name);
pstmt.setInt(4,age);
pstmt.setString(5,gender);
pstmt.setString(6,email);
int result=pstmt.executeUpdate();
if(result!=0){
out.println("<script>");
out.println("location.href='loginForm.jsp'");
out.println("</script>");
}else{
out.println("<script>");
out.println("location.href='joinForm.jsp'");
out.println("</script>");
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
pstmt.close();
conn.close();
}
catch(Exception e){
e.printStackTrace();
}
}
%>
📌메인 페이지
main.jsp
<!-- 관리자 메인 페이지(main.jsp) -->
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%
String id=null;
if (session.getAttribute("id")!=null){
id=(String)session.getAttribute("id");
}else{
out.println("<script>");
out.println("location.href='loginForm.jsp'");
out.println("</script>");
}
%>
<html>
<head>
<title>회원관리 시스템 메인 페이지</title>
</head>
<body>
<h3><%=id %> 로 로그인하셨습니다.</h3>
<%if(id.equals("admin")){%> <!-- 관리자 id: admin -->
<a href="memberList.jsp">관리자모드 접속(회원 목록 보기)</a>
<%}%>
</body>
</html>
📌회원 관리(관리자) 페이지
memberList.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%
String id=null;
if ((session.getAttribute("id")==null) ||
(!((String)session.getAttribute("id")).equals("admin"))) {
out.println("<script>");
out.println("location.href='loginForm.jsp'");
out.println("</script>");
}
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/testDB";
String sql = "SELECT * FROM member";
try {
Class.forName(driver);
conn=DriverManager.getConnection(url,"아이디","비밀번호");
pstmt=conn.prepareStatement(sql);
rs=pstmt.executeQuery();
}catch(Exception e){
e.printStackTrace();
}
%>
<html>
<head>
<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 border=1>
<tr><td colspan=4 class="td_title">회원 목록</td></tr>
<%int cnt=0;
while(rs.next()){
cnt+=1; %>
<tr>
<td>
<%=cnt%>
</td>
<td>
<%=rs.getString("id") %>
</td>
<td>
<a href="memberInfo.jsp?id=<%=rs.getString("id") %>">
보기
</a>
</td>
<td>
<a href="memberDelete.jsp?id=<%=rs.getString("id") %>">삭제</a>
</td>
</tr>
<%} %>
</table>
</body>
</html>
memberInfo.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%
String id=null;
if ((session.getAttribute("id")==null) ||
(!((String)session.getAttribute("id")).equals("admin"))) {
out.println("<script>");
out.println("location.href='loginForm.jsp'");
out.println("</script>");
}
String info_id=request.getParameter("id");
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/testDB";
String sql = "SELECT * FROM member WHERE id=?";
try {
Class.forName(driver);
conn=DriverManager.getConnection(url,"아이디","비밀번호");
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,info_id);
rs=pstmt.executeQuery();
rs.next();
}catch(Exception e){
e.printStackTrace();
}
%>
<html>
<head>
<title>회원관리 시스템 관리자모드(회원 정보 보기)</title>
<style>
table{
margin : auto;
width : 400px;
border : 1px solid gray;
text-align: center;
}
</style>
</head>
<body>
<table border=1>
<tr>
<td>아이디 </td>
<td><%=rs.getString("id") %></td>
</tr>
<tr>
<td>비밀번호 </td>
<td><%=rs.getString("password") %></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="memberDelete.jsp?id=<%=rs.getString("id") %>">삭제</a></td>
</tr>
<tr>
<td colspan=2><a href="memberList.jsp">리스트로 돌아가기</a></td>
</tr>
</table>
</body>
</html>
memberDelete.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%
String id=null;
if ((session.getAttribute("id")==null) ||
(!((String)session.getAttribute("id")).equals("admin"))) {
out.println("<script>");
out.println("location.href='loginForm.jsp'");
out.println("</script>");
}
String delete_id=request.getParameter("id");
Connection conn=null;
PreparedStatement pstmt=null;
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/testDB";
String sql = "DELETE FROM member WHERE id=?";
try {
Class.forName(driver);
conn=DriverManager.getConnection(url,"아이디","비밀번호");
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,delete_id);
pstmt.executeUpdate();
out.println("<script>");
out.println("location.href='memberList.jsp'");
out.println("</script>");
}catch(Exception e){
e.printStackTrace();
}finally{
try{
pstmt.close();
conn.close();
}
catch(Exception e){
e.printStackTrace();
}
}
%>
📌결과
guest 삭제 후
반응형
'JSP & Servlet > 실습' 카테고리의 다른 글
[JSP & Servlet] 게시판 만들기 (feat. MySQL) - DAO(Data Access Object) (0) | 2022.06.27 |
---|---|
[JSP & Servlet] 게시판 만들기 (feat. MySQL) - Service 클래스 (0) | 2022.06.27 |
[JSP & Servlet] 게시판 만들기 (feat. MySQL) - Action 클래스 (0) | 2022.06.26 |
[JSP & Servlet] 게시판 만들기 (feat. MySQL) - Controller 클래스 (0) | 2022.06.26 |
[JSP & Servlet] 게시판 만들기 (feat. MySQL) - 테이블 생성 및 vo(Value Object) (0) | 2022.06.26 |