IT 공부/KH 정보교육원

회원가입, 회원수정 페이지

Zinisang 2021. 5. 25. 10:28

회원가입 작성페이지

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>회원가입 작성페이지</title>
	<script src="js/member.js"></script>
	<link rel="stylesheet" href="css/form.css">
	<link rel="stylesheet" href="css/button.css">
</head>

<body>
	<%@ include file="top.jsp" %>
	
<table width="40%" align="center">
	<tr>
		<td align="center">
			
			<table width="100%">
				<form action="memberInsert.do" method="post" name="frm">
					<table class="table" width="100%">
					<tr align="center">
						<td colspan="2"><b>회원가입</b></td>
					</tr>
					</table>
					<table class="table2">
					<tr>
						<td width="35%">아이디</td>
						<td width="65%">
							<input type="text" name="co_id" size="40" required placeholder="4자리 이상" />*
							<input type="hidden" name="reid" size="40" />
							<input class="button" type="button" value="중복확인" onclick="idCheck()" />
						</td>
					</tr>			
					<tr>
						<td>비밀번호</td>
						<td><input type="password" name="co_pwd" size="40" required />*</td>
					</tr>			
					<tr>
						<td>비밀번호 확인</td>
						<td><input type="password" name="co_repwd" size="40" required />*</td>
					</tr>
		<!-- 		-----로그인정보-----		 -->
		
					<tr>
						<td width="35%">회사명</td>
						<td width="65%"><input type="text" name="co_name" size="40" required />*</td>
					</tr>
					<tr>
						<td>사업자 번호</td>
						<td><input type="text" name="co_num" size="40" required />*</td>
					</tr>
					<tr>
						<td>회사 대표명</td>
						<td><input type="text" name="co_ceo" size="40" required />*</td>
					</tr>
					<tr>
						<td>회사주소</td>
						<td><input type="text" name="co_add" size="40" /></td>
					</tr>
					<tr>
						<td>회사 연락처</td>
						<td><input type="tel" name="co_tel" size="40" /></td>
					</tr>	
					</table>					
		<!-- 		-----회사정보-----		 -->
					<tr>
						<td colspan="2" align="center">
							<input class="button" type="submit" value="회원가입" onclick="memberinsertCheck()"  />
							&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
							<input class="button" type="reset" value="다시쓰기" />
						</td>
					</tr>															
				</form>
			</table>
			
		</td>
	</tr>
</table>	
	
	<%@ include file="bottom.jsp" %>			
</body>
</html>

 

 

회원정보 수정 페이지

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>회원정보 수정페이지</title>
	<script src="js/member.js"></script>
	<link rel="stylesheet" href="css/form.css">
	<link rel="stylesheet" href="css/button.css">
		
</head>

<body>
	<%@ include file="top.jsp" %>
	
<table width="600px" name="frm" align="center">
	<tr>
		<td align="center">
			
			<table width="100%" class="table">
				<tr align="center">
					<td><b>회원정보 수정</b></td>
				</tr>
			</table>
				
			<table class="table2" width="100%">
				<form action="memberUpdate.do" method="post" name="frm">
					<tr>
						<td width="35%">아이디</td>
						<td width="65%">${GETMEMBER.getCo_id() }</td>
					</tr>			
					<tr>
						<td>비밀번호</td>
						<td><input type="password" name="co_pwd" size="40" required /></td>
					</tr>			
					<tr>
						<td>비밀번호 확인</td>
						<td><input type="password" name="co_repwd" size="40" required /></td>
					</tr>
				
		<!-- 		-----로그인정보-----		 -->
		
					<tr>
						<td width="35%">회사명</td>
						<td width="65%"><input type="text" name="co_name" size="40" value="${GETMEMBER.getCo_name() }" required /></td>
					</tr>
					<tr>
						<td>사업자 번호</td>
						<td><input type="text" name="co_num" size="40" value="${GETMEMBER.getCo_num() }" required /></td>
					</tr>
					<tr>
						<td>회사 대표명</td>
						<td><input type="text" name="co_ceo" size="40" value="${GETMEMBER.getCo_ceo() }" required /></td>
					</tr>
					<tr>
						<td>회사주소</td>
						<td><input type="text" name="co_add" size="40" value="${GETMEMBER.getCo_add() }" /></td>
					</tr>
					<tr>
						<td>회사 연락처</td>
						<td><input type="tel" name="co_tel" size="40" value="${GETMEMBER.getCo_tel() }" /></td>
					</tr>	
					
					</table>				
					<table>
					<tr>
						<td colspan="2" align="center">
							<input class="button" type="submit" value="회원정보 수정" />
							&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
							<input class="button" type="reset" value="다시쓰기" />
							&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
							<input class="button" type="button" value="아이디삭제" onclick="memberDelete()" />								
						</td>
					</tr>	
					</table>
		<!-- 		-----회사정보-----		 -->
					
					<input type="hidden" value="${GETMEMBER.getCo_id()}" name="co_id">															
				</form>
			</table>
			
		</td>
	</tr>
</table>	
	
	<%@ include file="bottom.jsp" %>			
</body>
</html>

 

회원삭제 페이지

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>비밀번호</title>
	<link rel="stylesheet" href="css/check.css">	
	<link rel="stylesheet" href="css/button.css">
</head>
<body>

	<form action="memberDelete.do">
	<br />	<br />
	<div class="content" align="left">
		비밀번호 입력를 입력하세요. 	<br />
		<input type="password" name="co_pwd"><br />
		<input class="button" type="submit" value="입력">
	</div>

	<input type="hidden" name="co_id" value="${loginUser}">
	
	</form>
	

</body>
</html>

 

회원가입 처리 메서드

package com.semi.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.semi.dto.MemberDTO;

public class MemberDAO {
	
	public static MemberDAO instance = null;
	private ConnDAO pool;
	
	public MemberDAO() {
		pool = ConnDAO.getInstance();
	}
	public static MemberDAO getInstance()  {
		if(instance == null) {
			instance = new MemberDAO();
		}
		return instance;
	}

	public int userCheck(String co_id, String co_pwd) {
		// 아이디 , 비밀번호 확인 결과값 (-1 : 아이디 오류, 0 : 비밀번호, 1 : 성공)
		int result = -1;   
		
		String query="select co_pwd from company_tbl where co_id=?";
		Connection con=null;
		PreparedStatement pstmt=null;
		ResultSet rs=null;
		
		try {
			con = pool.getConnection();
			pstmt=con.prepareStatement(query);
			pstmt.setString(1, co_id);
			rs=pstmt.executeQuery();
			
			if(rs.next()) {
				if(rs.getString("co_pwd") != null && rs.getString("co_pwd").equals(co_pwd)) {
					result=1;	// 아이디, 비밀번호 모두 맞을 경우
				}else {
					result=0;   // 아이디만 맞을 경우
				}
				
			}else {
				result=-1;    // 아이디가 틀릴 경우
			}
			
		}catch(SQLException e) {
			System.out.println("userCheck() 에러 " + e.getMessage());
		}finally {
			try {
				if(rs != null) { rs.close(); }
				if(pstmt != null) { pstmt.close(); }
				if(con != null) { con.close(); }
			}catch(SQLException e) {
				System.out.println("userCheck() close 에러 " + e.getMessage());
			}
		}

		return result;
	}

	public MemberDTO getMember(String co_id) {
		MemberDTO dto = null;
		
		String query="select * from company_tbl where co_id=?";
		Connection con=null;
		PreparedStatement pstmt=null;
		ResultSet rs=null;
		
		try {
			con = pool.getConnection();
			pstmt=con.prepareStatement(query);
			pstmt.setString(1, co_id);
			rs=pstmt.executeQuery();
			
			if(rs.next()) {
				dto=new MemberDTO();
				dto.setCo_id(rs.getString("co_id"));
				dto.setCo_pwd(rs.getString("co_pwd"));
				dto.setCo_name(rs.getString("co_name"));
				dto.setCo_num(rs.getString("co_num"));
				dto.setCo_ceo(rs.getString("co_ceo"));
				dto.setCo_add(rs.getString("co_add"));
				dto.setCo_tel(rs.getString("co_tel"));
			}
			
		}catch(SQLException e) {
			System.out.println("getMember() 에러 " + e.getMessage());
		}finally {
			try {
				if(rs!=null) { rs.close(); }
				if(pstmt!=null) { pstmt.close(); }
				if(con!=null) { con.close(); }
			}catch(SQLException e) {
				System.out.println("getMember() close 에러 " + e.getMessage());
			}
		}
		
		return dto;
	}

	public int confirmID(String co_id) {
		int result = -1;  // 아이디 검색 결과 (아이디 존재 : 1 / 존재하지 않으면 -1)
		
		String query="select co_id from company_tbl where co_id=?";
		Connection con=null;
		PreparedStatement pstmt=null;
		ResultSet rs=null;
		
		try {
			con = pool.getConnection();
			pstmt=con.prepareStatement(query);
			pstmt.setString(1, co_id);
			rs=pstmt.executeQuery();
			
			if(rs.next()) {
				result=1;
			}else {
				result=-1;
			}
			
		}catch(SQLException e) {
			System.out.println("confirmID() 에러  " +e.getMessage());
		}finally {
			try {
				if(rs != null) { rs.close();}
				if(pstmt != null) { pstmt.close();}
				if(con != null) { con.close();}
			}catch(SQLException e) {
				System.out.println("confirmID() close 에러 " +e.getMessage());
			}
		}

		return result;
	}

	public int insertMember(MemberDTO dto) {
		int result = -1;
		
		String query="insert into company_tbl values (?, ?, ?, ?, ?, ?, ?)";
		Connection con=null;
		PreparedStatement pstmt=null;
		
		try {
			con = pool.getConnection();
			pstmt=con.prepareStatement(query);
			pstmt.setString(1, dto.getCo_id());
			pstmt.setString(2, dto.getCo_pwd());
			pstmt.setString(3, dto.getCo_name());
			pstmt.setString(4, dto.getCo_num());
			pstmt.setString(5, dto.getCo_ceo());
			pstmt.setString(6, dto.getCo_add());
			pstmt.setString(7, dto.getCo_tel());
			
			result=pstmt.executeUpdate();
			
		}catch(SQLException e) {
			System.out.println("insertMember() 에러 " + e.getMessage());
		}finally {
			try {
				if(pstmt != null) { pstmt.close(); }
				if(con != null) { con.close(); }
			}catch(SQLException e) {
				System.out.println("insertMember() close 에러 " + e.getMessage());
			}
		}

		return result;
	}

	public int updateMember(MemberDTO dto) {
		int result = -1;
		
		String query="update company_tbl set co_pwd=?, co_name=?, co_num=?, co_ceo=?, co_add=?, co_tel=? where co_id=?";
		Connection con=null;
		PreparedStatement pstmt=null;
		
		try {
			con = pool.getConnection();
			pstmt=con.prepareStatement(query);
			pstmt.setString(1, dto.getCo_pwd());
			pstmt.setString(2, dto.getCo_name());
			pstmt.setString(3, dto.getCo_num());
			pstmt.setString(4, dto.getCo_ceo());
			pstmt.setString(5, dto.getCo_add());
			pstmt.setString(6, dto.getCo_tel());
			pstmt.setString(7, dto.getCo_id());
			
			result=pstmt.executeUpdate();
			
		}catch (SQLException e) {
			System.out.println("updateMember() 에러 " +e.getMessage());
		}finally {
			try {
				if(pstmt != null) {pstmt.close();}
				if(con != null) {con.close();}
			}catch (SQLException e) {
				System.out.println("updateMember() close 에러" +e.getMessage());
			}
		}

		return result;
	}

	public int deleteMember(String co_id) {
		int result = -1;
		
		String query="delete from company_tbl where co_id=?";
		Connection con=null;
		PreparedStatement pstmt=null;
		
		
		try {
			con = pool.getConnection();
			pstmt=con.prepareStatement(query);
			pstmt.setString(1, co_id);
			result= pstmt.executeUpdate();
			
			
			
		}catch(SQLException e) {
			System.out.println("deleteMember() 에러  " +e.getMessage());
		}finally {
			try {
				
				if(pstmt != null) { pstmt.close();}
				if(con != null) { con.close();}
			}catch(SQLException e) {
				System.out.println("deleteMember() close 에러 " +e.getMessage());
			}
		}

		return result;
	}
	
}

 

회원가입 처리 서블릿 (insert)

package com.semi.member;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.semi.dao.MemberDAO;
import com.semi.dto.MemberDTO;

@WebServlet("/memberInsert.do")
public class MemberInsertServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//로그인 화면에서 회원가입 버튼을 눌렀을때 회원가입 페이지로 이동
				RequestDispatcher rd=request.getRequestDispatcher("memberInsert.jsp");
				rd.forward(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//회원가입화면에서 모두 입력하고 확인버튼 누를때
				request.setCharacterEncoding("UTF-8");
				
				MemberDTO dto=new MemberDTO();
				dto.setCo_id(request.getParameter("co_id"));
				dto.setCo_pwd(request.getParameter("co_pwd"));
				dto.setCo_name(request.getParameter("co_name"));
				dto.setCo_num(request.getParameter("co_num"));
				dto.setCo_ceo(request.getParameter("co_ceo"));
				dto.setCo_add(request.getParameter("co_add"));
				dto.setCo_tel(request.getParameter("co_tel"));
				
				MemberDAO dao=MemberDAO.getInstance();
				int confirm = dao.confirmID(request.getParameter("co_id"));	//중복체크를 해서 1이나 -1을 받는다.
				
				if(confirm == 1) {							//	1(중복된 결과)을 받았을 경우, index.jsp로 페이지를 이동시킨다.
					response.sendRedirect("tempStay.jsp");
				}else {										// 그렇지 않을 경우 회원가입을 진행한다.
					int result=dao.insertMember(dto);
					HttpSession session=request.getSession();
					if(result==1) {
						session.setAttribute("loginUser", dto.getCo_id()); 	//초기 로그인 화면에서 아이디를 바로 출력
						session.setAttribute("message", "회원가입에 성공 했습니다.");
					}else {
						session.setAttribute("message", "회원가입 실패!");
					}
					
					RequestDispatcher rd=request.getRequestDispatcher("login.jsp");
					rd.forward(request, response);
				}
	}

}

 

회원가입 처리 서블릿 (update)

package com.semi.member;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.semi.dao.MemberDAO;
import com.semi.dto.MemberDTO;

@WebServlet("/memberUpdate.do")
public class MemberUpdateServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
				
		System.out.println(request.getParameter("co_id"));
		MemberDTO dto=new MemberDTO();
		
		dto.setCo_id(request.getParameter("co_id"));
		dto.setCo_pwd(request.getParameter("co_pwd"));
		dto.setCo_name(request.getParameter("co_name"));
		dto.setCo_num(request.getParameter("co_num"));
		dto.setCo_ceo(request.getParameter("co_ceo"));
		dto.setCo_add(request.getParameter("co_add"));
		dto.setCo_tel(request.getParameter("co_tel"));
		
		MemberDAO dao=MemberDAO.getInstance();
		int result=dao.updateMember(dto);
		
		HttpSession session=request.getSession();
		if(result==1) {
			session.setAttribute("GETMEMBER", dto); 	
			session.setAttribute("message", "회원정보수정에 성공 했습니다.");
			RequestDispatcher rd=request.getRequestDispatcher("main.jsp");
			rd.forward(request, response);	
		}else {
			session.setAttribute("message", "회원정보수정 실패!");
			RequestDispatcher rd=request.getRequestDispatcher("main.jsp");
			rd.forward(request, response);	
		}
	}

}

 

회원가입 처리 서블릿 (delete)

package com.semi.member;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.semi.dao.MemberDAO;


@WebServlet("/memberDelete.do")
public class MemberDeleteServler extends HttpServlet {
	private static final long serialVersionUID = 1L;


	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String co_id=request.getParameter("co_id");
				
		MemberDAO dao=MemberDAO.getInstance();
		int result=dao.deleteMember(co_id);
		
		if(result==1) {
			
			HttpSession session = request.getSession();
			session.invalidate();		
			
		}else {
			request.setAttribute("message", "회원정보 삭제 실패");
		}
		
		RequestDispatcher rd=request.getRequestDispatcher("main.jsp");
		rd.forward(request, response);
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	}

}

 

회원가입 처리 서블릿 (detail)

package com.semi.member;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.semi.dao.MemberDAO;
import com.semi.dto.MemberDTO;

@WebServlet("/memberdetail.do")
public class MemberDetailServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String co_id = request.getParameter("co_id");
		
		MemberDAO dao = MemberDAO.getInstance();
		
		MemberDTO dto = new MemberDTO();
		
		dto = dao.getMember(co_id);
		
		HttpSession session = request.getSession();
		session.setAttribute("GETMEMBER", dto);
		
		RequestDispatcher rd = request.getRequestDispatcher("memberUpdate.jsp");
		rd.forward(request, response);
		
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	}

}

 

회원가입 시 아이디 중복확인 서블릿

package com.semi.member;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.semi.dao.MemberDAO;


@WebServlet("/idCheck.do")
public class IdcheckServler extends HttpServlet {
	private static final long serialVersionUID = 1L;

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//회원가입페이지에서 중복확인 버튼을눌렀을때.
				String co_id=request.getParameter("co_id");
				
				MemberDAO dao=MemberDAO.getInstance();
				int result=dao.confirmID(co_id);
				
				request.setAttribute("co_id", co_id);
				request.setAttribute("result", result);
				
				RequestDispatcher rd=request.getRequestDispatcher("idCheck.jsp");
				rd.forward(request, response);
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	}

}

 

회원가입 과정에필요한 js function 들

function loginCheck() {
	if (document.frm.co_id.value.length == "") {
		alert("아이디를 써주세요");
		frm.co_id.focus();
		return false;
	}
	if (document.frm.co_pwd.value == "") {
		alert("암호는 반드시 입력해야 합니다.");
		frm.co_pwd.focus();
		return false;
	}
	return true;
}

function idCheck() {
	if (document.frm.co_id.value == "") {
		alert('아이디를 입력하여 주십시오.');
		document.frm.co_id.focus();
		return;
	}
	var url = "idCheck.do?co_id=" + document.frm.co_id.value;
	window.open(url, "_blank_1", "toolbar=no, menubar=no, scrollbars=yes, resizable=no, width=450, height=200");
}

function idok(co_id) {
	opener.frm.co_id.value = document.frm.co_id.value;
	opener.frm.reid.value = document.frm.co_id.value;
	self.close();
}

function memberinsertCheck() {
	if (document.frm.co_name.value.length == 0) {
		alert("이름을 써주세요.");
		frm.co_name.focus();
		return false;
	}
	if (document.frm.co_id.value.length == 0) {
		alert("아이디를 써주세요");
		frm.co_id.focus();
		return false;
	}
	if (document.frm.co_id.value.length < 4) {
		alert("아이디는 4글자이상이어야 합니다.");
		frm.co_id.focus();
		return false;
	}
	if (document.frm.co_pwd.value == "") {
		alert("암호는 반드시 입력해야 합니다.");
		frm.co_pwd.focus();
		return false;
	}
	if (document.frm.co_pwd.value != document.frm.co_repwd.value) {
		alert("암호가 일치하지 않습니다.");
		frm.co_pwd.focus();
		return false;
	}
	if (document.frm.reid.value.length == 0) {
		alert("중복 체크를 하지 않았습니다.");
		frm.co_id.focus();
		return false;
	}
	return true;
}