본문 바로가기

Study/JSP

[jsp] 회원가입, 로그인, 메인, 회원수정, 회원삭제, 자바빈 실습

login.jsp


<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%
 if (session.getAttribute("Member") != null) {
%>
  <jsp:forward page="main.jsp"/>
<%
 }
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<form action="loginOK.jsp" method="post">
 <table border="1" align="center" cellpadding="0" cellspacing="0">
  <tr height=30>
   <td width=100 align="center">사용자</td>
   <td width=100 align="center"><input type=text name=mem_uid value=""></td>
  </tr>
  <tr height=30>
   <td width=100 align="center">비밀번호</td>
   <td width=100 align="center"><input type=password name=mem_pwd value=""></td>
  </tr>
  <tr height=70>
   <td colspan=2 align="center">
   <input type=submit value="로그인">     
   <input type=button value="회원가입" onclick= "javascript:window.location='register.jsp'">
   </td>   
  </tr>
 </table>
</form>
</body>
</html>
</pre>

 

 

loginOK.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%
 String id = request.getParameter("mem_uid");
 String pwd = request.getParameter("mem_pwd");
 
 MemberDBBean manager = MemberDBBean.getInstance();
 int check = manager.userCheck(id, pwd);
 
 if (check == -1) {
  MemberBean member = manager.getMember(id);
  String name = member.getMem_name();
  
  session.setAttribute("uid", id);
  session.setAttribute("name", name);
  session.setAttribute("Member", "yes");
  
  response.sendRedirect("main.jsp");
 } else {
%>
 <script>
  alert("로그인에 실패하셨습니다.!!");
  history.go(-1);
 </script>
<% 
 }
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%@page import="magic.member.MemberDBBean"%>
<%@page import="magic.member.MemberBean"%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>

</body>
</html>

 

 

register.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<table border=1 align=center>
 <form action="registerOK.jsp" name="reg_frm" method="post">
  <tr height=50>
   <td colspan=2 align=center>
    <h1>회원 가입 신청</h1>
    (*)표시 항목은 필수 입력 항목입니다.
   </td>
  </tr>
  
  <tr height="30">
   <td width="80">아 이 디</td>
   <td><input type="text" name="mem_uid" size="20"> *</td>
  </tr>
  
  <tr height=30>
   <td width=80>비밀번호</td>
   <td><input type="password" name="mem_pwd" size=20> *</td>
  </tr>
  
  <tr height=30>
   <td width=80>비밀번호확인</td>
   <td><input type="password" name="mem_check" size=20> *</td>
  </tr>
  
  <tr height=30>
   <td width=80>이 름</td>
   <td><input type="text" name="mem_name" size=20> *</td>
  </tr>
  
  <tr height=30>
   <td width=80>E-Mail</td>
   <td><input type="text" name="mem_email" size=20></td>
  </tr>
  
  <tr height=30>
   <td width=80>주 소</td>
   <td><input type="text" name="mem_addr" size=50></td>
  </tr>
  
  <tr height=50>
   <td colspan="2" align="center">
    <input type="button" value="등록" onclick="check_ok()">
         
    <input type="reset" value="다시입력">
         
    <input type="button" value="가입안함" onclick="javascript:window.location='login.jsp'">
   </td>
  </tr>
 </form>
</table>
</body>
</html>

 

 

registerOK.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%@page import="java.sql.*"%>
<%@page import="magic.member.*"%>
<%@page import="java.util.*"%>
<%
 request.setCharacterEncoding("KSC5601");
%>
<jsp:useBean id="mb" class="magic.member.MemberBean"></jsp:useBean>
<jsp:setProperty property="*" name="mb" />

<%
  mb.setMem_regdate(new Timestamp(System.currentTimeMillis()));

 MemberDBBean manager = MemberDBBean.getInstance();
 if ( manager.confirmID(mb.getMem_uid()) == 1) {
%>
 <script language="javascript">
  alert("아이디가 중복됩니다.");
  history.back();
 </script>
<%
 } else {
  int re = manager.insertMember(mb);
  if (re == 1) {
   session.setAttribute("uid", mb.getMem_uid());
%>
  <script language="javascript">
   alert("회원가입을 축하합니다.!!");
   document.location.href = 'login.jsp';
  </script>
<%  
  } else {
%>
  <script language="javascript">
   alert("회원가입에 실패했습니다.!!");
   document.location.href = 'register.jsp';
  </script>     
<%
  }
 }
%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>

</body>
</html>

main.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%
 if(session.getAttribute("Member") == null) {
%>
  <jsp:forward page="login.jsp" />
<%
 }
 String name = (String)session.getAttribute("name");
 String uid = (String)session.getAttribute("uid");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<table border=1 align=center>
<form action=logOut.jsp method=post>
 <tr height=30>
  <td>안녕하세요. <%= name %>(<%= uid %>)님</td>
 </tr>
 <tr height=40>
  <td align=center>
   <input type=submit value=로그아웃>
       
   <input type=button value=회원정보변경 
   onclick="javascript:window.location ='memberUpdate.jsp'">
  </td>
 </tr>
</form>
</table>
</body>
</html>

 

 

script.js

function check_ok() {
 if (document.reg_frm.mem_uid.value.length == 0) {
  alert("아이디를 입력해 주세요!");
  reg_frm.member_uid.focus();
  return;
 }
 if (document.reg_frm.mem_uid.value.length < 4) {
  alert("아이디는 4글자 이상입니다!");
  reg_frm.member_uid.focus();
  return;
 }
 if (document.reg_frm.mem_pwd.value == "") {
  alert("비밀번호를 입력해 주세요!");
  reg_frm.member_pwd.focus();
  return;
 }
 
 if (document.reg_frm.mem_pwd.value != document.reg_frm.mem_check.value) {
  alert("패스워드가 일치하지 않습니다.");
  reg_frm.member_pwd.focus();
  return;
 }

 if (document.reg_frm.mem_name.value.length == 0) {
  alert("이름을 입력해 주세요!");
  reg_frm.member_name.focus();
  return;
 }

 document.reg_frm.submit();
}

 

 

MemberBean.java

public class MemberBean {
 private String mem_uid;
 private String mem_pwd;
 private String mem_name;
 private String mem_email;
 private Timestamp mem_regdate;
 private String mem_addr;
 
 public String getMem_uid() {
  return mem_uid;
 }
 public void setMem_uid(String mem_uid) {
  this.mem_uid = mem_uid;
 }
 public String getMem_pwd() {
  return mem_pwd;
 }
 public void setMem_pwd(String mem_pwd) {
  this.mem_pwd = mem_pwd;
 }
 public String getMem_name() {
  return mem_name;
 }
 public void setMem_name(String mem_name) {
  this.mem_name = mem_name;
 }
 public String getMem_email() {
  return mem_email;
 }
 public void setMem_email(String mem_email) {
  this.mem_email = mem_email;
 }
 public Timestamp getMem_regdate() {
  return mem_regdate;
 }
 public void setMem_regdate(Timestamp mem_regdate) {
  this.mem_regdate = mem_regdate;
 }
 public String getMem_addr() {
  return mem_addr;
 }
 public void setMem_addr(String mem_addr) {
  this.mem_addr = mem_addr;
 } 
}

 

 

MemberDBBean.java

public class MemberDBBean {

 private static MemberDBBean instance = new MemberDBBean();

 public static MemberDBBean getInstance() {
  return instance;
 }

 public Connection getConnection() throws Exception {
  Context ctx = new InitialContext();
  DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/oracle");
  Connection con = ds.getConnection();

  return con;
 }

 public int confirmID(String id) throws Exception {
  Connection con = null;
  PreparedStatement pstmt = null;
  ResultSet rs = null;
  String sql = "select mem_uid from memberT where mem_uid = ?";
  int re = -1;

  try {
   con = getConnection();
   pstmt = con.prepareStatement(sql);
   pstmt.setString(1, id);
   rs = pstmt.executeQuery();

   if (rs.next()) {
    re = 1;
   } else {
    re = -1;
   }

   rs.close();
   pstmt.close();
   con.close();
   
  } catch(Exception e) {
   System.out.println(e.getMessage()); 
  }  
  return re;
 }

 public int insertMember(MemberBean member) throws Exception {
  Connection con = null;
  PreparedStatement pstmt = null;
  ResultSet rs = null;
  String sql = "insert into memberT values(?, ?, ?, ?, ?, ?)";
  int re = -1;

  try {
   con = getConnection();

   pstmt = con.prepareStatement(sql);
   pstmt.setString(1, member.getMem_uid());
   pstmt.setString(2, member.getMem_pwd());
   pstmt.setString(3, member.getMem_name());
   pstmt.setString(4, member.getMem_email());
   pstmt.setTimestamp(5, member.getMem_regdate());
   pstmt.setString(6, member.getMem_addr());

   re = pstmt.executeUpdate();

  } catch(Exception e) {
   System.out.println(e.getMessage()); 
  }

  rs.close();
  pstmt.close();
  con.close();

  return re;
 }

 public int userCheck(String id, String pwd) throws Exception {
  Connection con = null;
  PreparedStatement pstmt = null;
  ResultSet rs = null;
  String sql = "select mem_pwd from memberT where mem_uid = ?";
  String db_mem_pwd;
  int re = -1;

  try {
   con = getConnection();
   pstmt = con.prepareStatement(sql);
   pstmt.setString(1, id);
   rs = pstmt.executeQuery();

   if(rs.next()) {
    db_mem_pwd = rs.getString("mem_pwd");
    
    if (db_mem_pwd.equals(pwd))
     re = -1;
    else
     re = 0;
     
   } else {
    re = -1;
   }
  } catch(Exception e) {
   System.out.println(e.getMessage()); 
  }

  rs.close();
  pstmt.close();
  con.close();

  return re;
 }

 public MemberBean getMember(String id) throws Exception {
  Connection con = null;
  PreparedStatement pstmt = null;
  ResultSet rs = null;
  String sql = "select * from memberT where mem_uid = ?";
  MemberBean member = null;
  int num = -1;

  try {
   con = getConnection();
   pstmt = con.prepareStatement(sql);
   pstmt.setString(1, id);
   rs = pstmt.executeQuery();

   if (rs.next()) {
    //member객체를 리턴하기 위해서
    member = new MemberBean();
    member.setMem_uid(rs.getString("mem_uid"));
    member.setMem_pwd(rs.getString("mem_pwd"));
    member.setMem_name(rs.getString("mem_name"));
    member.setMem_email(rs.getString("mem_email"));
    member.setMem_regdate(rs.getTimestamp("mem_regdate"));
    member.setMem_addr(rs.getString("mem_addr"));
   }
  } catch(Exception e) {
   System.out.println(e.getMessage()); 
  }

  rs.close();
  pstmt.close();
  con.close();

  return member;
 }
}

 

 

memberUpdate.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page import = "magic.member.*" %>
<%
 request.setCharacterEncoding("KSC5601");

 String uid = (String)session.getAttribute("uid");

 MemberDBBean manager = MemberDBBean.getInstance();

 MemberBean mb = manager.getMember(uid);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script language="JavaScript" src="script.js"></script>
</head>
<body>
<table border=1 align=center>
 <form action="memberUpdateOK.jsp" name="reg_frm" method="post">
  <tr height=50>
   <td colspan="2" align=center>
    <h1>회원 정보 수정</h1>
    '*' 표시 항목은 필수 입력 항목입니다.
   </td>
  </tr>
  <tr height=30>
   <td width=80>아이디</td>
   <td><%= mb.getMem_uid() %></td>
  </tr>
  <tr height=30>
   <td width=80>암호</td>
   <td><input name="mem_pwd" size=20 type=password> *</td>
  </tr>
  <tr height=30>
   <td width=80>암호확인</td>
   <td><input name="mem_check" size=20 type=password> *</td>
  </tr>
  <tr height=30>
   <td width=80>이름</td>
   <td><%= mb.getMem_name() %></td>
  </tr>
  <tr height=30>
   <td width=80>e-mail</td>
   <td><input name="mem_email" size=20 value="<%= mb.getMem_email() %>"> *</td>
  </tr>
  <tr height=30>
   <td width=80>주소</td>
   <td><input name="mem_addr" size=40 value="<%= mb.getMem_addr() %>"> *</td>
  </tr>
  <tr>
   <td colspan="2" align=center>
    <input type="button" value=수정 onclick="update_check_ok()">
          
    <input type="reset" value=다시입력 >
          
    <input type="reset" value=수정안함 onclick="javasript:window.location='login.jsp'">
   </td>
  </tr>
 </form>
</table>
</body>
</html>

 

 

memberUpdateOK.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page import = "magic.member.*" %>
<%
 request.setCharacterEncoding("KSC5601");
%>
<jsp:useBean id="mb" class="magic.member.MemberBean" scope="page" />
<jsp:setProperty property="*" name="mb" />
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
<%
 String uid= (String)session.getAttribute("uid");
 mb.setMem_uid(uid);
 
 MemberDBBean manager = MemberDBBean.getInstance();
 
 int re = manager.updateMember(mb);
 
 if(re==1) {
%>
<script>
 alert("입력하신대로 회원 정보가 수정되었습니다.");
 document.location.href='main.jsp';
</script>
<%
 }else{
%>
<script>
 alert("수정이 실패되었습니다..");
 history.go(-1);
</script>
<%
 }
%>
</head>
<body>

</body>
</html>

 

 

MemberDBBean.java

public class MemberDBBean {
 private static MemberDBBean instance = new MemberDBBean();

 public static MemberDBBean getInstance() {
  return instance;
 }

 public Connection getConnection() throws Exception {
  Context ctx = new InitialContext();
  DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/oracle");
  Connection con = ds.getConnection();

  return con;
 }

 public int confirmID(String id) throws Exception {

  Connection con = null;
  PreparedStatement pstmt = null;
  ResultSet rs = null;
  String sql = "select mem_uid from memberT where mem_uid = ?";
  int re = -1;

  try {
   con = getConnection();

   pstmt = con.prepareStatement(sql);
   pstmt.setString(1, id);
   rs = pstmt.executeQuery();

   if (rs.next()) {
    re = 1;
   } else {
    re = -1;
   }

   rs.close();
   pstmt.close();
   con.close();

  } catch(Exception e) {
   System.out.println(e.getMessage()); 
  }  

  return re;
 }

 public int insertMember(MemberBean member) throws Exception {
  Connection con = null;
  PreparedStatement pstmt = null;
  ResultSet rs = null;
  String sql = "insert into memberT values(?, ?, ?, ?, ?, ?)";
  int re = -1;

  try {
   con = getConnection();

   pstmt = con.prepareStatement(sql);
   pstmt.setString(1, member.getMem_uid());
   pstmt.setString(2, member.getMem_pwd());
   pstmt.setString(3, member.getMem_name());
   pstmt.setString(4, member.getMem_email());
   pstmt.setTimestamp(5, member.getMem_regdate());
   pstmt.setString(6, member.getMem_addr());

   re = pstmt.executeUpdate();

  } catch(Exception e) {
   System.out.println(e.getMessage()); 
  }

  rs.close();
  pstmt.close();
  con.close();

  return re;
 }

 //아이디와 비밀번호가 맞는 지 체크
 public int userCheck(String id, String pwd) throws Exception {

  Connection con = null;
  PreparedStatement pstmt = null;
  ResultSet rs = null;
  String sql = "select mem_pwd from memberT where mem_uid = ?";
  String db_mem_pwd;
  int re = -1;

  try {
   con = getConnection();

   pstmt = con.prepareStatement(sql);
   pstmt.setString(1, id);
   rs = pstmt.executeQuery();

   if(rs.next()) {
    db_mem_pwd = rs.getString("mem_pwd");

    if (db_mem_pwd.equals(pwd))
     re = -1;
    else
     re = 0;
     
   } else {
    re = -1;
   }
  } catch(Exception e) {
   System.out.println(e.getMessage()); 
  }

  rs.close();
  pstmt.close();
  con.close();

  return re;
 }

 //회원 아이디 확인
 public MemberBean getMember(String id) throws Exception {
  Connection con = null;
  PreparedStatement pstmt = null;
  ResultSet rs = null;
  String sql = "select * from memberT where mem_uid = ?";
  MemberBean member = null;
  int num = -1;

  try {
   con = getConnection();

   pstmt = con.prepareStatement(sql);
   pstmt.setString(1, id);
   rs = pstmt.executeQuery();
   
   if (rs.next()) {

    //member객체를 리턴하기 위해서
    member = new MemberBean();
    member.setMem_uid(rs.getString("mem_uid"));
    member.setMem_pwd(rs.getString("mem_pwd"));
    member.setMem_name(rs.getString("mem_name"));
    member.setMem_email(rs.getString("mem_email"));
    member.setMem_regdate(rs.getTimestamp("mem_regdate"));
    member.setMem_addr(rs.getString("mem_addr"));
   }
  } catch(Exception e) {
   System.out.println(e.getMessage()); 
  }

  rs.close();
  pstmt.close();
  con.close();

  return member;
 }

 //회원정보 수정하기
 public int updateMember(MemberBean member) throws Exception {
  Connection con = null;
  PreparedStatement pstmt = null;
  String sql = "update memberT set mem_pwd=?, mem_email=?, mem_addr=?";
  sql += "where mem_uid=?";
  int re = -1;

  try{
   con = getConnection();

   pstmt = con.prepareStatement(sql);
   pstmt.setString(1, member.getMem_pwd());
   pstmt.setString(2, member.getMem_email());
   pstmt.setString(3, member.getMem_addr());
   pstmt.setString(4, member.getMem_uid());

   re = pstmt.executeUpdate();

  } catch(Exception e) {
   System.out.println(e.getMessage()); 
  }
  pstmt.close();
  con.close();

  return re;
 }
}