index.jsp |
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- index.jsp -->
<html>
<head>
<title>회원관리</title>
</head>
<body>
<h1 align="center">스프링으로 공부하는 회원관리프로그램</h1>
<ul><li>
<h3><a href="index_member.do">회원관리 프로그램으로 가기</a></h3>
</li></ul>
</body>
</html>
MemberController.java |
package member;
import java.util.List;
import java.util.Map;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import member.dao.MemberDAO;
import member.dto.MemberDTO;
import member.mybatis.MemberMapper;
@Controller // annotation
public class MemberController {
// 메서드
@RequestMapping("/index_member.do")
public String IndexMember() {
return "index_member";
}
}
// 회원 조회(memberAll.do)
memberAll.jsp |
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- memberAll.jsp -->
<%@ include file="top.jsp"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<div align="center">
<hr color="green" width="300">
<c:if test="${empty param.mode}">
<h2>회 원 목 록 페 이 지</h2>
</c:if>
<c:if test="${not empty param.mode}">
<h2>회 원 찾 기</h2>
<form name="f" action="memberAll.do" method="post">
<input type="hidden" name="mode" value="${param.mode}"/>
<select name="search">
<option value="name">회원명</option>
<option value="id">아이디</option>
</select>
<input type="text" name="searchString">
<input type="submit" value="찾기">
</form>
</c:if>
<hr color="green" width="300">
<table border="0" width="100%" class="outline">
<tr>
<th class="m1">번호</th>
<th class="m1">이름</th>
<th class="m1">아이디</th>
<th class="m1">이메일</th>
<th class="m1">전화번호</th>
<th class="m1">가입일</th>
<th class="m1">수정 | 삭제</th>
</tr>
<c:if test="${empty listMember}">
<tr>
<td colspan="7">등록된(찾으시는) 회원이 없습니다.</td>
</tr>
</c:if>
<c:forEach var="dto" items="${listMember}">
<tr>
<td align="center">${dto.no} </td>
<td align="center">${dto.name}</td>
<td align="center">${dto.id}</td>
<td align="center">${dto.email}</td>
<td align="center">${dto.allHp}</td>
<td align="center">${dto.joindate}</td>
<td align="center">
<a href="member_update.do?no=${dto.no}">수정</a> |
<a href="member_delete.do?no=${dto.no}">삭제</a>
</td>
</tr>
</c:forEach>
</table>
</div>
<%@ include file="bottom.jsp"%>
// 회원가입 여부 확인 입력 폼(memberSsn.do)
MemberController.java |
@RequestMapping("/memberSsn.do")
public String SSnMember() {
return "memberSsn";
}
memberSsn.jsp |
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- memberSsn.jsp -->
<html>
<head>
<title>회원가입유무</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div align="center">
<hr color="green" width="300">
<h2>회 원 가 입 유 무</h2>
<hr color="green" width="300">
<form name="f" action="checkMember.do" method="post">
<table border="0" width="500" class="outline">
<tr>
<th>회원명</th>
<td><input type="text" name="name" class="box"></td>
</tr>
<tr>
<th>주민번호</th>
<td><input type="text" name="ssn1" class="box">
- <input type="password" name="ssn2" class="box"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="전송">
<input type="reset" value="취소">
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
// 회원가입 여부 확인 처리(checkMember.do)
MemberController.java |
@RequestMapping("/checkMember.do")
public String CheckMember(HttpServletRequest req, @RequestParam Map<String, String> params) {
boolean isMember = MemberMapper.checkMember(params);
if(isMember) {
req.setAttribute("msg", "회원가입되어 있습니다. 로그인해주세요.");
return "forward:windowClose.jsp";
}else {
HttpSession session = req.getSession();
session.setAttribute("name", params.get("name"));
session.setAttribute("ssn1", params.get("ssn1"));
session.setAttribute("ssn2", params.get("ssn2"));
req.setAttribute("msg", "회원가입 페이지로 이동합니다.");
req.setAttribute("url", "member_input.do");
return "forward:message.jsp";
}
}
// 회원가입 입력 폼(member_input.do - GET)
MemberController.java |
@RequestMapping(value="/member_input.do", method=RequestMethod.GET)
public String InputMember() {
return "member_input";
}
member_input.jsp |
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<title>회원가입</title>
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript">
function check(){
if (f.id.value==""){
alert("아이디를 입력해 주세요")
f.id.focus()
return
}
if (f.passwd.value==""){
alert("비밀번호를 입력해 주세요")
f.passwd.focus()
return
}
document.f.submit()
}
</script>
</head>
<body onload="f.id.focus()">
<form name="f" method="POST" action="member_input.do">
<table width="600" align="center" class="outline">
<tr>
<td colspan="2" align=center class="m2">회원가입</td>
</tr>
<tr>
<td width="150" class="m3">이름</td>
<td class="m3">
<input type="text" name="name" class="box" value="${name}" disabled>
<input type="hidden" name="name" value="${name}"/>
</td>
</tr>
<tr>
<td width="150" class="m3">아이디</td>
<td class="m3">
<input type="text" name="id" class="box">
</td>
</tr>
<tr>
<td width="150" class="m3">비밀번호</td>
<td class="m3">
<input type="password" name="passwd" class="box">
</td>
</tr>
<tr>
<td width="150" class="m3">주민번호</td>
<td class="m3">
<input type="text" name="ssn1" class="box" value="${ssn1}" readOnly> -
<input type="password" name="ssn2" class="box" value="${ssn2}" readOnly>
</td>
</tr>
<tr>
<td width="150" class="m3">이메일</td>
<td class="m3">
<input type="text" name="email" class="box">
</td>
</tr>
<tr>
<td width="150" class="m3">연락처</td>
<td class="m3">
<input type="text" name="hp1" class="box" size="3" maxlength="3"> -
<input type="text" name="hp2" class="box" size="4" maxlength="4"> -
<input type="text" name="hp3" class="box" size="4" maxlength="4">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<a href="javascript:check()">[전송]</a>
<a href="#">[취소]</a>
</td>
</tr>
</table>
</form>
</body>
</html>
// 회원가입 처리(member_input.do - POST)
MemberController.java |
@RequestMapping(value="/member_input.do", method=RequestMethod.POST)
public String InputOkMember(HttpServletRequest req, @ModelAttribute MemberDTO dto) {
int res = MemberMapper.insertMember(dto);
if(res>0) {
req.setAttribute("msg", "회원 가입 성공!");
return "forward:windowClose.jsp";
} else {
req.setAttribute("msg", "회원 가입 실패! 회원가입 페이지로 이동합니다.");
req.setAttribute("url", "memberSsn.do");
return "forward:message.jsp";
}
}
// 회원 삭제 (member_delete.do)
MemberController.java |
@RequestMapping("/member_delete.do")
public String DeleteMember(HttpServletRequest req, String no) {
int res = MemberMapper.deleteMember(Integer.parseInt(no));
if(res>0) {
req.setAttribute("msg", "회원 삭제 성공! 회원 목록 페이지로 이동합니다.");
req.setAttribute("url", "memberAll.do");
return "forward:message.jsp";
} else {
req.setAttribute("msg", "회원 삭제 실패! 회원 목록 페이지로 이동합니다.");
req.setAttribute("url", "memberAll.do");
return "forward:message.jsp";
}
}
// 회원 수정 폼 (member_update.do - GET)
MemberController.java |
@RequestMapping(value="/member_update.do", method=RequestMethod.GET)
public String UpdateMember(HttpServletRequest req, @RequestParam int no) {
MemberDTO dto = MemberMapper.getMemberNo(no);
req.setAttribute("getMember", dto);
return "member_update";
}
member_update.jsp |
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- member_update.jsp -->
<%@ include file="top.jsp"%>
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript">
function check(){
if (f.passwd.value == ""){
alert("비밀번호를 입력해 주세요!!")
f.passwd.focus()
return false
}
document.f.submit()
}
</script>
<form name="f" method="POST" action="member_update.do">
<input type="hidden" name="no" value="${getMember.no}"/>
<table width="600" align="center" class="outline">
<tr>
<td colspan="2" align=center class="m2">회원수정</td>
</tr>
<tr>
<td width="150" class="m3">이름</td>
<td class="m3">
<input type="text" name="name" class="box" value="${getMember.name}" disabled>
<input type="hidden" name="name" value="${getMember.name}"/>
</td>
</tr>
<tr>
<td width="150" class="m3">아이디</td>
<td class="m3">
<input type="text" name="id" class="box" value="${getMember.id}" readOnly>
</td>
</tr>
<tr>
<td width="150" class="m3">비밀번호</td>
<td class="m3">
<input type="password" name="passwd" class="box" value="${getMember.passwd}">
</td>
</tr>
<tr>
<td width="150" class="m3">주민번호</td>
<td class="m3">
<input type="text" name="ssn1" class="box" value="${getMember.ssn1}" readOnly> -
<input type="password" name="ssn2" class="box" value="${getMember.ssn2}" readOnly>
</td>
</tr>
<tr>
<td width="150" class="m3">이메일</td>
<td class="m3">
<input type="text" name="email" class="box" value="${getMember.email}">
</td>
</tr>
<tr>
<td width="150" class="m3">연락처</td>
<td class="m3">
<input type="text" name="hp1" class="box" size="3" maxlength="3" value="${getMember.hp1}"> -
<input type="text" name="hp2" class="box" size="4" maxlength="4" value="${getMember.hp2}"> -
<input type="text" name="hp3" class="box" size="4" maxlength="4" value="${getMember.hp3}">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<a href="javascript:check()">[수정]</a>
<a href="#">[취소]</a>
</td>
</tr>
</table>
</form>
<%@ include file="bottom.jsp"%>
// 회원 수정 처리 (member_update.do - POST)
MemberController.java |
@RequestMapping(value="/member_update.do", method=RequestMethod.POST)
public String UpdateOkMember(HttpServletRequest req, @ModelAttribute MemberDTO dto) {
int res = MemberMapper.updateMember(dto);
if(res>0) {
req.setAttribute("msg", "회원 수정 성공! 회원 목록 페이지로 이동합니다.");
req.setAttribute("url", "memberAll.do");
return "forward:message.jsp";
} else {
req.setAttribute("msg", "회원 수정 실패! 회원 목록 페이지로 이동합니다.");
req.setAttribute("url", "memberAll.do");
return "forward:message.jsp";
}
}
// 로그인 폼 (login.do - GET)
MemberController.java |
@RequestMapping(value="/login.do", method=RequestMethod.GET)
public String LoginMember() {
return "login";
}
login.jsp |
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ include file="../member/top.jsp"%>
<!-- login.jsp-->
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript">
function checkMember(){
window.open("memberSsn.do", "check", "width=640, height=400")
}
function searchMember(mode){
window.open("searchMember.do?mode="+mode, "search", "width=650, height=400")
}
function loginCheck(){
if (f.id.value==""){
alert("아이디를 입력해 주세요!!")
f.id.focus()
return
}
if (f.passwd.value==""){
alert("비밀번호를 입력해 주세요!!")
f.passwd.focus()
return
}
document.f.submit()
}
</script>
<div align="center">
<br>
<img src="img/bottom.gif" width=570 height="40" border="0" alt="">
<br>
<p>
<img src="img/tm_login.gif" width=100 height="13" border="0" align="center" ALT="회원 로그인">
<form name="f" action="login.do" method="post">
<table width="60%" align="center" height="120">
<tr>
<td align="right" width="30%">
<img src="img/id01.gif"
width="28" height="11" border="0" alt="아이디">
</td>
<td width="40%">
<c:if test="${empty cookie['saveId']}">
<!-- cookie라는 객체안에 savID라는 이름이 있나? -->
<input type="text" name="id" tabindex="1">
</c:if>
<c:if test="${not empty cookie['saveId']}">
<input type="text" name="id" tabindex="1" value="${cookie['saveId'].value}">
<!-- cookie라는 객체의 savID의 value를 가져옴(name이나 value 중에 가져옴) -->
<!-- cookie.saveId.value로 해도 동일함 -->
</c:if>
</td>
<td rowspan="2" width="30%" valign="middle">
<a href="javascript:loginCheck()">
<img src="img/bt_login.gif" border="0" alt="로그인" tabindex="3"> <br>
</a>
<nobr>
<c:if test="${empty cookie['saveId']}">
<input type="checkbox" name="saveId">
</c:if>
<c:if test="${not empty cookie['saveId']}">
<input type="checkbox" name="saveId" checked>
</c:if>
<font face="굴림" size="2">아이디 기억하기</font>
</nobr>
</td>
</tr>
<tr>
<td align="right">
<img src="img/pwd.gif"
width="37" height="11" alt="비밀번호">
</td>
<td>
<input type="password" name="passwd" tabindex="2">
</td>
</tr>
<tr>
<td colspan="3" align="center">
<a href="javascript:checkMember()">
<img src="img/bt_join.gif" width="60" height="22" alt="회원가입">
</a>
<a href="javascript:searchMember('id')">
<img src="img/bt_search_id.gif" width="60" height="22" alt="아이디 찾기">
</a>
<a href="javascript:searchMember('pw')">
<img src="img/bt_search_pw.gif" width="60" height="22" alt="비밀번호 찾기">
</a>
</td>
</tr>
</table>
</form>
</div>
<%@ include file="../member/bottom.jsp"%>
MemberController.java |
@RequestMapping(value="/login.do", method=RequestMethod.POST)
public String LoginOkMember(HttpServletRequest req, HttpServletResponse resp, @RequestParam Map<String, String> params) {
int res = MemberMapper.loginCheck(params.get("id"), params.get("passwd"));
switch(res) {
case MemberDAO.OK :
MemberDTO dto = MemberMapper.getMemberId(params.get("id"));
Cookie ck = new Cookie("saveId", params.get("id"));
if (params.get("saveId") == null) {
ck.setMaxAge(0);
}else {
ck.setMaxAge(24*60*60);
}
resp.addCookie(ck);
HttpSession session = req.getSession();
session.setAttribute("mbId", dto);
req.setAttribute("msg", dto.getName()+"님이 로그인 하셨습니다.");
req.setAttribute("url", "index_member.do");
break;
case MemberDAO.NOT_ID :
req.setAttribute("msg", "없는 아이디 입니다. 다시 확인 후 로그인을 해 주세요");
req.setAttribute("url", "login.do");
break;
case MemberDAO.NOT_PW :
req.setAttribute("msg", "비밀번호가 틀렸습니다. 다시 확인 후 로그인을 해 주세요");
req.setAttribute("url", "login.do");
break;
}
return "forward:message.jsp";
}
// 로그아웃 (logout.do)
MemberController.java |
@RequestMapping("/logout.do")
public ModelAndView LogoutMember(HttpServletRequest req) {
HttpSession session = req.getSession();
session.invalidate();
ModelAndView mav = new ModelAndView("forward:message.jsp");
mav.addObject("msg", "로그아웃 완료");
mav.addObject("url", "index_member.do");
return mav;
}
'KDT - 풀스택 개발 과정 > MyBatis' 카테고리의 다른 글
[DAY_46] MyBatis - 학생관리, 게시판 관리 (0) | 2024.05.29 |
---|