로그인 페이지
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" %>
<!DOCTYPE html>
<c:set var="root" value="${pageContext.request.contextPath}"/>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="${root}/javascript/member/rutil.js"></script>
</head>
<body>
<jsp:include page="../../../index.jsp"/>
<br /><br />
<div align="center">
<form action="${root}/member/loginOk.do" method="post" onsubmit="return idCheckFun(this)">
<table>
<tr>
<td>회원 ID</td>
<td>
<input type="text" name="id"/>
</td>
</tr>
<tr>
<td>비밀번호</td>
<td>
<input type="password" name="password"/>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="확인"/>
<input type="reset" name="취소"/>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
LoginOk.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri = "http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<c:set var="root" value="${pageContext.request.contextPath}"/>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:if test="${memberLevel!=null}">
<c:set var= "id" value="${id}" scope="session"/>
<c:set var= "memberLevel" value="${memberLevel}" scope="session"/>
<script type="text/javascript">
alert("로그인 성공");
location.href = "${root}/member/main.do";
</script>
</c:if>
<c:if test="${memberLevel==null}">
<script type="text/javascript">
alert("아이디와 비밀번호를 확인하세요");
location.href = "${root}/member/login.do";
</script>
</c:if>
</body>
</html>
LoginCommand.java
package com.java.member.command;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.java.command.Command;
public class LoginCommand implements Command {
@Override
public String proRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
return "/WEB-INF/views/member/login.jsp";
}
}
LoginCommandOk.java
package com.java.member.command;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.java.command.Command;
import com.java.member.model.MemberDao;
public class LoginCommandOk implements Command {
@Override
public String proRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
String id = request.getParameter("id");
String password = request.getParameter("password");
logger.info(logMsg + id + "\t" + password);
String memberLevel = MemberDao.getInstance().loginCheck(id, password);
logger.info(logMsg + memberLevel);
request.setAttribute("memberLevel", memberLevel);
request.setAttribute("id", id);
return "/WEB-INF/views/member/loginOk.jsp";
}
}
main.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<jsp:include page="../../../index.jsp"/>
<br /><br />
<h3>안녕하세요! ${id} 님 즐거운 시간되세요. </h3>
</body>
</html>
mainCommand.java
package com.java.member.command;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.java.command.Command;
public class mainCommand implements Command {
@Override
public String proRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
return "/WEB-INF/views/member/main.jsp";
}
}
rutil.js
function idCheckFun(obj){
alert("OK");
}
로그인 후 결과창
로그인 성공 후 페이지(member_level=ma 관리자인 경우 관리자 페이지 라고 화면에 출력)
로그아웃 페이지
logout.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:set var="root" value="${pageContext.request.contextPath}"/>
<c:remove var="id" scope="session"/>
<c:remove var="memberLevel" scope="session"/>
<script type="text/javascript">
alert("로그아웃 되었습니다.");
location.href = "${root}/member/login.do";
</script>
</body>
</html>
LoginOutCommand.java
package com.java.member.command;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.java.command.Command;
public class LoginOutCommand implements Command {
@Override
public String proRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpSession session = request.getSession();
// if(!session.isNew()) {
// String id = (String) session.getAttribute("id");
// String memberLevel = (String) session.getAttribute("memberLevel");
// logger.info(logMsg + id + "\t" + memberLevel);
// }
return "/WEB-INF/views/member/logout.jsp";
}
}
회원수정 페이지
update.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<c:set var="root" value="${pageContext.request.contextPath}" />
<html>
<head>
<meta charset="UTF-8">
<title>회원가입page</title>
<link rel="stylesheet" href="${root}/css/member/joinStyle.css?ver=1">
<script type="text/javascript" src="${root}/javascript/member/register.js"></script>
</head>
<body>
<jsp:include page="../../../index.jsp"/>
<br /><br />
<form id="joinform" name="joinform" action="${root}/member/updateOk.do" method="post"
onsubmit="return createFrom(this)">
<h4 style="text-align: center;">회원가입(*필수입력사항입니다.)</h4>
<div class="menu" style="border-bottom-width: 0px;">
<input type="hidden" name="num" value="${memberDto.num}"/>
<div id="id">아이디</div>
<span>*
<input type="text" class="UserInfo" name="id" size="12" value="${memberDto.id}" readonly="readonly"/>
</span>
</div>
<div class="menu " style="border-bottom-width: 0px;">
<div id="id">비밀번호</div>
<span>* <input type="password" class="checkInfo" name="password" size="12" value="${memberDto.password}"/>
</span>
</div>
<div class="menu " style="border-bottom-width: 0px;">
<div id="id">비밀번호확인</div>
<span>* <input type="password" class="checkInfo" name="passwordCheck" size="12" value="${memberDto.password}"/>
</span>
</div>
<div class="menu " style="border-bottom-width: 0px;">
<div id="id">이름</div>
<span>* <input type="text" class="checkInfo" name="name" size="12" value="${memberDto.name}" disabled="disabled"/>
</span>
</div>
<div class="menu " style="border-bottom-width: 0px;">
<div id="id">주민번호</div>
<span>*
<input type="text" class="checkInfo" name="jumin1" size="6" value="${memberDto.jumin1}" disabled="disabled"/>
<span>-</span>
<input type="text" class="checkInfo" name="jumin2" size="7" value="${memberDto.jumin2}" disabled="disabled"/>
</span>
</div>
<div class="menu" style="border-bottom-width: 0px;">
<div id="id" style="margin-left: 10px,">이메일</div>
<span>
<input type="email" name="email" size="25" value="${memberDto.email}" />
</span>
</div>
<div class="menu" style="border-bottom-width: 0px;">
<div id="id">우편번호</div>
<span>
<input type="text" name="zipcode" size="30" value="${memberDto.zipcode}"/>
<button type="button" onclick="searchZipcode('${root}')">우편번호검색</button>
</span>
</div>
<div class="menu" style="border-bottom-width: 0px;">
<div id="id">주소</div>
<span> <input type="text" name="address" size="50" value="${memberDto.address}" />
</span>
</div>
<div class="menu" style="border-bottom-width: 0px;">
<div id="id">직업</div>
<span> <select name="job">
<option>직업을 선택하세요.</option>
<option value=' '>무직</option>
<option value='programmer'>프로그래머</option>
<option value='designer'>디자이너</option>
</select>
<%-- ${memberDto.job} --%>
</span>
<script type="text/javascript">
joinform.job.value = "${memberDto.job}"
</script>
</div>
<div class="menu" style="border-bottom-width: 0px;">
<div id="id">메일수신</div>
<span> <input type="radio" id="yes" name="mailing" value="yes" />
<label for="yes">yes</label> <input type="radio" id="no"
name="mailing" value="no" /> <label for="no">no</label>
<%-- ${memberDto.mailing} --%>
</span>
<script type="text/javascript">
for(var i = 0; i<joinform.mailing.length; i++){
if(joinform.mailing[i].value == "${memberDto.mailing}"){
joinform.mailing[i].checked = true;
}
}
</script>
</div>
<div class="menu" style="border-bottom-width: 0px;">
<div id="id">관심분야</div>
<span>
<input type="checkbox" size="12" name="interest" value="경제"/>
<label for="경제" >경제</label>
<input type="checkbox" size="12" name="interest" value="IT"/>
<label for="IT" >IT</label>
<input type="checkbox" size="12" name="interest" value="음악"/>
<label for="음악" >음악</label>
<input type="checkbox" size="12" name="interest" value="미술"/>
<label for="미술" >미술</label>
<input type="hidden" name="resultInterest"/>
<%-- ${memberDto.interest} --%>
</span>
<c:forTokens var="interest" items="${memberDto.interest}" delims=",">
<script type="text/javascript">
for(var i = 0; i<joinform.interest.length; i++){
if(joinform.interest[i].value == "${interest}"){
joinform.interest[i].checked = true;
}
}
</script>
</c:forTokens>
</div>
<div class="menu" style="text-align: center;">
<span>
<input type="submit" value="수정" />
<input type="reset" value="취소" />
</span>
</div>
</form>
</body>
</html>
updateOk.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:set var="root" value="${pageContext.request.contextPath}"/>
<c:if test="${check > 0 }">
<script type="text/javascript">
alert("회원 수정 되었습니다.");
location.href="${root}/member/main.do";
</script>
</c:if>
<c:if test="${check == 0 }">
<script type="text/javascript">
alert("회원 수정 되지 않았습니다.");
location.href="${root}/member/update.do";
</script>
</c:if>
</body>
</html>
updateCommand.java
package com.java.member.command;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.java.command.Command;
import com.java.member.model.MemberDao;
import com.java.member.model.MemberDto;
public class UpdateCommand implements Command {
@Override
public String proRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
HttpSession session = request.getSession();
String id = (String) session.getAttribute("id");
logger.info(logMsg + id);
MemberDto memberDto = MemberDao.getInstance().updateId(id);
logger.info(logMsg + memberDto.toString());
request.setAttribute("memberDto", memberDto);
return "/WEB-INF/views/member/update.jsp";
}
}
updateOkCommand.java
package com.java.member.command;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.java.command.Command;
import com.java.member.model.MemberDao;
import com.java.member.model.MemberDto;
public class UpdateOkCommand implements Command {
@Override
public String proRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
request.setCharacterEncoding("utf-8");
MemberDto memberDto = new MemberDto();
// id가 disabled 이기 때문에 값을 넘겨주지 않아 세션을 사용한다.
/* HttpSession session = request.getSession();
memberDto.setId((String) session.getAttribute("id"));*/
memberDto.setNum(Integer.parseInt(request.getParameter("num")));
memberDto.setPassword(request.getParameter("password"));
memberDto.setEmail(request.getParameter("email"));
memberDto.setZipcode(request.getParameter("zipcode"));
memberDto.setAddress(request.getParameter("address"));
memberDto.setJob(request.getParameter("job"));
memberDto.setMailing(request.getParameter("mailing"));
memberDto.setInterest(request.getParameter("interest"));
logger.info(logMsg + memberDto);
int check = MemberDao.getInstance().update(memberDto);
logger.info(logMsg + check);
request.setAttribute("check", check);
return "/WEB-INF/views/member/updateOk.jsp";
}
}
회원탈퇴 페이지
delete.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<jsp:include page="../../../index.jsp"/>
<c:set var="root" value="${pageContext.request.contextPath}"/>
<div align="center">
<form action="${root}/member/deleteOk.do" method="post">
<table>
<tr>
<td>회원아이디</td>
<td><input type="text" name="id" value="${id}" readonly="readonly"/></td>
</tr>
<tr>
<td>비밀번호</td>
<td><input type="password" name="password"/></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="회원탈퇴"/>
<input type="reset" value="취소"/>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
deleteOk.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:set var="root" value="${pageContext.request.contextPath}"/>
<c:choose>
<c:when test="${check > 0}">
<c:remove var="id" scope="session"/>
<c:remove var="memberLevel" scope="session"/>
<script type="text/javascript">
alert("회원탈퇴가 완료되었습니다.");
location.href = "${root}/member/register.do";
</script>
</c:when>
<c:when test="${check == 0}">
<script type="text/javascript">
alert("회원탈퇴 되지 않았습니다.");
location.href = "${root}/member/delete.do";
</script>
</c:when>
</c:choose>
</body>
</html>
DeleteCommand.java
package com.java.member.command;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.java.command.Command;
public class DeleteCommand implements Command {
@Override
public String proRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
return "/WEB-INF/views/member/delete.jsp";
}
}
DeleteOkCommand.java
package com.java.member.command;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.java.command.Command;
import com.java.member.model.MemberDao;
public class DeleteOkCommand implements Command {
@Override
public String proRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
String id = request.getParameter("id");
String password = request.getParameter("password");
logger.info(logMsg + id + "\t" + password);
int check = MemberDao.getInstance().delete(id, password);
logger.info(logMsg + check);
request.setAttribute("check", check);
return "/WEB-INF/views/member/deleteOk.jsp";
}
}
회원탈퇴 결과 창
Oracle SQL Developer에서 member테이블의 데이터를 조회해보면 id가 'bbb'인 관리자계정이 삭제되었다.
'Coding > JSP' 카테고리의 다른 글
[MVC/DB연동] 회원가입 페이지 (아이디 중복체크, 유효성검사, 우편번호 검색 기능) (1) (0) | 2022.04.08 |
---|---|
[MVC/DB연동] 파일업로드 기능 (0) | 2022.04.08 |
JSTL(JSP Standard Tag Library) 다운로드 / c:set, c:remove (0) | 2022.04.04 |
EL, JSTL (0) | 2022.04.04 |
[Servlet] Cookie(쿠키)/ Session(세션) (0) | 2022.04.04 |