table.sql
create table smember(
num number not null,
id varchar2(12) unique not null,
name varchar2(30) not null,
passwd varchar2(12) not null,
email varchar2(50) not null,
phone varchar2(15),
reg_date date default sysdate not null,
constraint smember_pk primary key (num)
);
create sequence smember_seq;
main.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원관리 메인</title>
<!-- href="/ch03_JSP/css/style.css" ==> 컨텍스트 경로 -->
<!-- <link rel="stylesheet" href="/ch03_JSP/css/style.css" type="text/css"> -->
<!-- request.getContextPath() 를 명시해주면 주소의 이름이 바뀌더라도 문제가 없음 -->
<link rel="stylesheet" href="<%= request.getContextPath() %>/css/style.css" type="text/css">
</head>
<body>
<%
String user_id = (String)session.getAttribute("user_id");
%>
<div class="page-main">
<h1>회원관리 메인</h1>
<div class = "align-right">
<%
if(user_id == null){//로그인이 되지 않은 경우
%>
<a href="registerUserForm.jsp">회원가입</a>
<a href="loginForm.jsp">로그인</a>
<%
}else{//로그인이 된 경우
%>
<a href="myPage.jsp">MyPage</a>
[<b><%= user_id %></b>님 로그인 중]
<a href="logout.jsp">로그아웃</a>
<%
}
%>
</div>
</div>
</body>
</html>
kr.member.vo(폴더)
MemberVO.java -> 이클립스가 이름을 인식못하는 버그가 생겨서
MemberInfoVO.java 로 이름 수정
package kr.member.vo;
import java.sql.Date;
public class MemberInfoVO {
//프로퍼티
private int num;
private String id;
private String name;
private String passwd;
private String email;
private String phone;
private Date reg_date;
//비밀번호 체크
public boolean isCheckedPassword(String userPasswd) {
if(passwd.equals(userPasswd) ) {//비밀번호 일치
return true;
}
return false; //비밀번호 불일치
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPasswd() {
return passwd;
}
public void setPasswd(String passwd) {
this.passwd = passwd;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public Date getReg_date() {
return reg_date;
}
public void setReg_date(Date reg_date) {
this.reg_date = reg_date;
}
}
kr.member.dao(폴더)
MemberDAO.java
package kr.member.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import kr.member.vo.MemberInfoVO;
import kr.util.DBUtil;
public class MemberDAO {
/*
* 싱글턴 패턴은 생성자를 private으로 지정해서 외부에서 호출할 수 없도록 처리하고
* static 메서드를 호출해서 객체가 한 번만 생성되고 생성된 객체를
* 공유할 수 있도록 처리하는 방식을 의미함.
*/
//싱글턴 패턴 시작
private static MemberDAO instance = new MemberDAO();
public static MemberDAO getInstance() {
return instance;
}
private MemberDAO() {} //싱글턴 패턴 끝
//회원가입
public void insertMember(MemberInfoVO member) throws Exception{
Connection conn = null;
PreparedStatement pstmt = null;
String sql = null;
try {
//커넥션풀로부터 거넥션을 할당
conn = DBUtil.getConnection();
//SQL문 작성
sql = "INSERT INTO smember (num,id,name,passwd,email,phone)"
+ "VALUES (smember_seq.nextval,?,?,?,?,?)";
//PreparedStatement 객체 생성
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, member.getId());
pstmt.setString(2, member.getName());
pstmt.setString(3, member.getPasswd());
pstmt.setString(4, member.getEmail());
pstmt.setString(5, member.getPhone());
//SQL문 실행
pstmt.executeUpdate();
}catch(Exception e) {
throw new Exception(e);
}finally {
//자원 정리
DBUtil.executeClose(null, pstmt, conn);
}
}
//회원상세정보
public MemberInfoVO getMember(int num) throws Exception{
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
MemberInfoVO member = null;
String sql = null;
try {
//커네션풀로부터 커넥션을 할당
conn = DBUtil.getConnection();
//SQL문 작성
sql = "SELECT * FROM smember WHERE num=?";
//PreparedStatement 객체 생성
pstmt = conn.prepareStatement(sql);
//?에 데이터 바인딩
pstmt.setInt(1, num);
//SQL문실행
rs = pstmt.executeQuery();
if(rs.next()) {
member = new MemberInfoVO();
member.setNum(rs.getInt("num"));
member.setId(rs.getString("id"));
member.setName(rs.getString("name"));
member.setEmail(rs.getString("email"));
member.setPhone(rs.getString("phone"));
member.setReg_date(rs.getDate("reg_date"));
}
}catch(Exception e) {
throw new Exception(e);
}finally {
//자원 정리
DBUtil.executeClose(rs, pstmt, conn);
}
return member;
}
//아이디 중복 체크, 로그인 체크(MemberInfoVO가 전달되면 아이디가 중복된 것. MemberInfoVO가 null이라면 중복이 아닌것)
public MemberInfoVO checkMember(String id) throws Exception{
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
MemberInfoVO member = null;
String sql = null;
try {
//커넥션풀로부터 커넥션 할당
conn = DBUtil.getConnection();
//SQL문 작성
sql = "SELECT * FROM smember WHERE id=?";
//PreparedStatement 객체 생성
pstmt = conn.prepareStatement(sql);
//? 데이터 바인딩
pstmt.setString(1, id);
//SQL문 실행
rs = pstmt.executeQuery();
if(rs.next()) {
member = new MemberInfoVO();
member.setId(rs.getString("id"));
member.setNum(rs.getInt("num"));
member.setPasswd(rs.getString("passwd"));
}else {
}
}catch(Exception e) {
throw new Exception(e);
}finally {
DBUtil.executeClose(rs, pstmt, conn);
}
return member;
}
//회원정보 수정
public void updateMember(MemberInfoVO member) throws Exception{
Connection conn = null;
PreparedStatement pstmt = null;
String sql = null;
try {
//커넥션풀로부터 커넥션을 할당
conn = DBUtil.getConnection();
//SQL문 작성
sql = "UPDATE smember SET name=?,passwd=?,email=?,phone=?"
+ "WHERE num=?";
pstmt = conn.prepareStatement(sql);
//?에 데이터 바인딩
pstmt.setString(1, member.getName());
pstmt.setString(2, member.getPasswd());
pstmt.setString(3, member.getEmail());
pstmt.setString(4, member.getPhone());
pstmt.setInt(5, member.getNum());
//SQL문 실행
pstmt.executeUpdate();
}catch(Exception e) {
throw new Exception(e);
}finally {
//자원정리
DBUtil.executeClose(null, pstmt, conn);
}
}
//회원탈퇴(회원정보 삭제)
public void deleteMember(int num) throws Exception{
Connection conn = null;
PreparedStatement pstmt = null;
String sql = null;
try {
//커넥션풀로부터 커넥션을 할당
conn = DBUtil.getConnection();
//SQL문 작성
sql = "DELETE FROM smember WHERE num=?";
pstmt = conn.prepareStatement(sql);
//?에 데이터 바인딩
pstmt.setInt(1, num);
//SQL문 실행
pstmt.executeUpdate();
}catch(Exception e) {
throw new Exception(e);
}finally {
//자원정리
DBUtil.executeClose(null, pstmt, conn);
}
}
}
ch03_JSP => META-INF
username="C##user01"인것중C##을 삭제
위에 파일을 토대로 kr.util => -DBUtil.java 코드 수정
package kr.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class DBUtil {
//Connection 객체를 생성해서 반환
public static Connection getConnection() throws Exception{
Context initCtx = new InitialContext();
DataSource ds = (DataSource)initCtx.lookup("java:comp/env/jdbc/xe");
return ds.getConnection();
}
//자원정리
public static void executeClose(ResultSet rs, PreparedStatement pstmt,
Connection conn) {
if(rs!=null)try {rs.close();}catch(SQLException e) {}
if(pstmt!=null)try {pstmt.close();}catch(SQLException e) {}
if(conn!=null)try {conn.close();}catch(SQLException e) {}
}
}
registerUserForm.jsp
<%@ 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="<%= request.getContextPath() %>/css/style.css" type="text/css">
<script type="text/javascript" src="<%= request.getContextPath() %>/js/jquery-3.7.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
//아이디 중복 체크 결과 -> 0:아이디 중복 체크 미실시(아이디 중복),1:아이디 미중복
let count = 0;
$('#confirm_id').click(function(){
if($('#id').val().trim()==''){
alert('아이디를 입력하세요');
$('#id').val('').focus();
return;
}
//서버와 통신
$.ajax({
url:'confirmId.jsp',
type:'post',
data:{id:$('#id').val()},
dataType:'json',
success:function(param){
if(param.result == 'idDuplicated'){
count = 0;
$('#id_signed').text('아이디 중복').css('color','red');
$('#id').val('').focus();
}else if(param.result =='idNotFound'){
count = 1;
$('#id_signed').text('사용 가능 아이디').css('color','black');
}else{
count = 0;
alert('id중복체크 오류');
}
},
error:function(){
count = 0;
alert('네트워크 오류 발생');
}
});
});//end of click
//아이디 입력창에 데이터를 입력하면 중복체크 관련 정보 초기화(ID중복확인을 누른뒤 그 상태로 다른 값 입력시 내용이 사라짐)
$('#register_form #id').keydown(function(){
count = 0;
$('#id_signed').text('');
});//end of keydown
$('#register_form').submit(function(){
const items = document.querySelectorAll('.input-check');
for(let i=0;i<items.length;i++){
if(items[i].value.trim()==''){
const label = document.querySelector('label[for="'+items[i].id+'"]');
alert(label.textContent + '항목은 필수 입력');
items[i].value = '';
items[i].focus();
return false;
}
if(items[i].id =='id'&& count ==0){
alert('아이디 중복체크 필수');
return false;
}
}
});
});
</script>
</head>
<body>
<div class="page-main">
<h1>회원가입</h1>
<form action="registerUser.jsp" method="post" id="register_form">
<ul>
<li>
<label for ="id">아이디</label>
<input type="text" name="id" id="id"
size="7" maxlength="12" autocomplete="off" class="input-check">
<input type="button" id="confirm_id" value="ID중복확인">
<span id="id_signed"></span>
</li>
<li>
<label for ="name">이름</label>
<input type="text" name="name" id="name"
class="input-check" maxlength="10">
</li>
<li>
<label for ="passwd">비밀번호</label>
<input type="password" name="passwd" id="passwd"
class="input-check" maxlength="12">
</li>
<li>
<label for ="email">이메일</label>
<input type="email" name="email" id="email"
class="input-check" maxlength="50">
</li>
<li>
<label for ="phone">전화번호</label>
<input type="text" name="phone" id="phone" maxlength="15">
</li>
</ul>
<div class="align-center">
<input type="submit" value="등록">
<input type="button" value="홈으로" onclick="location.href='main.jsp'">
</div>
</form>
</div>
</body>
</html>
registerUser.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import ="kr.member.dao.MemberDAO" %>
<%
//전송된 데이터 인코딩 타입 지정
request.setCharacterEncoding("utf-8");
%>
<jsp:useBean id="member" class="kr.member.vo.MemberInfoVO"/>
<%-- request로부터 전송된 데이터를 읽어들여 자바빈에 저장 --%>
<jsp:setProperty property="*" name="member"/>
<%
MemberDAO dao = MemberDAO.getInstance();
dao.insertMember(member);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원가입</title>
<link rel="stylesheet" href="<%= request.getContextPath() %>/css/style.css" type="text/css">
</head>
<body>
<div class="page-main">
<h1>회원가입 완료</h1>
<div class="result-display">
<div class="align-center">
회원가입 성공!<p>
<button onclick="location.href='main.jsp'">홈으로</button>
</div>
</div>
</div>
</body>
</html>
comfirmId.jsp
<%@ page language="java" contentType="text/plain; charset=UTF-8"
pageEncoding="UTF-8" trimDirectiveWhitespaces="true"%>
<%@ page import ="kr.member.dao.MemberDAO" %>
<%@ page import ="kr.member.vo.MemberInfoVO" %>
<%
//전송된 데이터 인코딩 타입 지정
request.setCharacterEncoding("utf-8");
//전송된 데이터 반환
String id = request.getParameter("id");
MemberDAO dao = MemberDAO.getInstance();
MemberInfoVO member = dao.checkMember(id);
if(member !=null){//아이디 중복
%>
{"result":"idDuplicated"}
<%
}else{//아이디 미중복
%>
{"result":"idNotFound"}
<%
}
%>
loginForm.jsp
<%@ 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="<%= request.getContextPath() %>/css/style.css" type="text/css">
<script type="text/javascript" src="<%= request.getContextPath() %>/js/jquery-3.7.1.min.js"></script>
<script type="text/javascript">
$(function(){
//이벤트 연결
$('#login_form').submit(function(){
if($('#id').val().trim()==''){
alert('아이디를 입력하세요');
$('#id').val('').focus();
return false;
}
if($('#passwd').val().trim()==''){
alert('비밀번호를 입력하세요');
$('#passwd').val('').focus();
return false;
}
});
});
</script>
</head>
<body>
<div class="page-main">
<h1>로그인</h1>
<form action="login.jsp" method="post" id="login_form">
<ul>
<li>
<label for="id">아이디</label>
<input type="text" name="id" id="id" maxlength="12">
</li>
<li>
<label for="passwd">비밀번호</label>
<input type="password" name="passwd" id="passwd" maxlength="12">
</li>
</ul>
<div class="align-center">
<input type ="submit" value="로그인">
<input type ="button" value="홈으로" onclick = "location.href='main.jsp'">
</div>
</form>
</div>
</body>
</html>
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import ="kr.member.dao.MemberDAO" %>
<%@ page import ="kr.member.vo.MemberInfoVO" %>
<%
//전송된 데이터 인코딩 타입 지정
request.setCharacterEncoding("utf-8");
//전송된 데이터 반환
String id = request.getParameter("id");
String passwd = request.getParameter("passwd");
MemberDAO dao = MemberDAO.getInstance();
//id 존재 여부 확인
MemberInfoVO member = dao.checkMember(id);
boolean check = false;
if(member!=null){//id 존재
//사용자가 입력한 비밀번호와 table에 저장된 비밀번호 일치 여부 확인
check = member.isCheckedPassword(passwd);
}
if(check){//인증성공 (check가 true일 떄)
//로그인 처리
session.setAttribute("user_num", member.getNum());
session.setAttribute("user_id", id);
//main.jsp로 리다이렉트
response.sendRedirect("main.jsp");
}else{//인증실패
%>
<script type = "text/javascript">
alert('아이디 또는 비밀번호가 불일치합니다.');
history.go(-1);
</script>
<%
}
%>
logout.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//로그아웃
session.invalidate();
response.sendRedirect("main.jsp");
%>
myPage.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import ="kr.member.dao.MemberDAO" %>
<%@ page import ="kr.member.vo.MemberInfoVO" %>
<%
Integer user_num = (Integer)session.getAttribute("user_num");
if(user_num ==null){//로그인이 되지 않은 경우
response.sendRedirect("loginForm.jsp");
}else{//로그인 된 경우
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원상세정보</title>
<link rel="stylesheet" href="<%= request.getContextPath() %>/css/style.css" type="text/css">
</head>
<body>
<%
MemberDAO dao = MemberDAO.getInstance();
MemberInfoVO member = dao.getMember(user_num);
if(member.getPhone()==null){
member.setPhone(""); //전화번호가 null이라고 뜨는걸 빈칸으로 만듬
}
%>
<div class="page-main">
<h1>회원정보</h1>
<ul>
<li>아이디 : <%= member.getId() %></li>
<li>이름 : <%= member.getName() %></li>
<li>이메일 : <%= member.getEmail() %></li>
<li>전화번호 : <%= member.getPhone() %></li>
<li>가입일 : <%= member.getReg_date() %></li>
</ul>
<hr size="1" width="100%" noshade="noshade">
<div class="align-right">
<input type="button" value="회원정보수정" onclick="location.href='modifyUserForm.jsp'">
<input type="button" value="회원탈퇴" onclick="location.href='deleteUserForm.jsp'">
<input type="button" value="홈으로" onclick="location.href='main.jsp'">
</div>
</div>
</body>
</html>
<%
}
%>
modifyUserForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import ="kr.member.dao.MemberDAO" %>
<%@ page import ="kr.member.vo.MemberInfoVO" %>
<%
Integer user_num = (Integer)session.getAttribute("user_num");
if(user_num==null){//로그인이 되지 않는 경우
response.sendRedirect("loginForm.jsp");
}else{//로그인이 된 경우
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원정보수정</title>
<link rel="stylesheet" href="<%= request.getContextPath() %>/css/style.css" type="text/css">
<script type="text/javascript" src="<%= request.getContextPath() %>/js/jquery-3.7.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#modify_form').submit(function(){
const items = document.querySelectorAll('.input-check');
for(let i=0;i<items.length;i++){
if(items[i].value.trim()==''){
const label = document.querySelector('label[for="'+items[i].id+'"]');
alert(label.textContent + '항목은 필수 입력');
items[i].value = '';
items[i].focus();
return false;
}
}
});
});
</script>
</head>
<body>
<%
MemberDAO dao = MemberDAO.getInstance();
MemberInfoVO member = dao.getMember(user_num);
if(member.getPhone()==null){
member.setPhone("");
}
%>
<div class="page-main">
<h1>회원정보수정</h1>
<form action="modifyUser.jsp" method="post" id="modify_form">
<ul>
<li>
<label for ="name">이름</label>
<input type="text" name="name" id="name"
value="<%= member.getName() %>"
class="input-check" maxlength="10">
</li>
<li>
<label for ="passwd">비밀번호</label>
<!-- 비밀번호는 변경하기전에 보이면 안되기때문에 넣지않음 -->
<input type="password" name="passwd" id="passwd"
class="input-check" maxlength="12">
</li>
<li>
<label for ="email">이메일</label>
<input type="email" name="email" id="email"
value="<%= member.getEmail() %>"
class="input-check" maxlength="50">
</li>
<li>
<label for ="phone">전화번호</label>
<input type="text" name="phone" id="phone"
value="<%= member.getPhone() %>"
maxlength="15">
</li>
</ul>
<div class="align-center">
<input type="submit" value="수정">
<input type="button" value="홈으로" onclick="location.href='main.jsp'">
</div>
</form>
</div>
</body>
</html>
<%
}
%>
modifyUser.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import ="kr.member.dao.MemberDAO" %>
<%
Integer user_num = (Integer)session.getAttribute("user_num");
if(user_num==null){//로그인이 되지 않은 경우
response.sendRedirect("loginForm.jsp");
}else{//로그인이 된 경우
//전송된 데이터 인코딩 타입 지정
request.setCharacterEncoding("utf-8");
%>
<jsp:useBean id="member" class="kr.member.vo.MemberInfoVO"/>
<jsp:setProperty property="*" name="member"/>
<%
//num이 전송되지 않았기 때문에 session에 저장된 num을 사용
member.setNum(user_num);
MemberDAO dao = MemberDAO.getInstance();
dao.updateMember(member);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원정보수정 완료</title>
<link rel="stylesheet" href="<%= request.getContextPath() %>/css/style.css" type="text/css">
</head>
<body>
<div class="page-main">
<h1>회원정보 수정완료</h1>
<div class="result-display">
<div class="align-center">
회원정보수정 완료!<p>
<button onclick="location.href='myPage.jsp'">MyPage</button>
</div>
</div>
</div>
</body>
</html>
<%
}
%>
deleteUserForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
Integer user_num =(Integer)session.getAttribute("user_num");
if(user_num==null){//로그인이 되지 않는 경우
response.sendRedirect("loginForm.jsp");
}else{//로그인이 된 경우
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원탈퇴</title>
<link rel="stylesheet" href="<%= request.getContextPath() %>/css/style.css" type="text/css">
<script type="text/javascript" src="<%= request.getContextPath() %>/js/jquery-3.7.1.min.js"></script>
<script type="text/javascript">
$(function(){
//이벤트 연결
$('#delete_form').submit(function(){
if($('#id').val().trim()==''){
alert('아이디를 입력하세요');
$('#id').val('').focus();
return false;
}
if($('#passwd').val().trim()==''){
alert('비밀번호를 입력하세요');
$('#passwd').val('').focus();
return false;
}
if($('#cpasswd').val().trim()==''){
alert('비밀번호 확인을 입력하세요');
$('#cpasswd').val('').focus();
return false;
}
//비밀번호와 비밀번호 확인 일치 여부 체크
if($('#passwd').val()!=$('#cpasswd').val()){
alert('비밀번호와 비밀번호 확인이 불일치합니다.');
$('#cpasswd').val('').focus();
return false;
}
});
});
</script>
</head>
<body>
<div class="page-main">
<h1>회원탈퇴</h1>
<form id="delete_form" action="deleteUser.jsp" method="post">
<ul>
<li>
<label for="id">아이디</label>
<input type="text" name="id" id="id" maxlength="12">
</li>
<li>
<label for="passwd">비밀번호</label>
<input type="password" name="passwd" id="passwd" maxlength="12">
</li>
<li>
<label for="passwd">비밀번호 확인</label>
<input type="password" id="cpasswd" maxlength="12">
</li>
</ul>
<div class="align-center">
<input type="submit" value="회원탈퇴">
<input type="button" value="홈으로" onclick="location.href='main.jsp'">
</div>
</form>
</div>
</body>
</html>
<%
}
%>
deleteUser.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import ="kr.member.dao.MemberDAO" %>
<%@ page import ="kr.member.vo.MemberInfoVO" %>
<%
String user_id = (String)session.getAttribute("user_id");
if(user_id==null){//로그인이 되지 않은 경우
response.sendRedirect("loginForm.jsp");
}else{//로그인이 된 경우
//전송된 데이터 인코딩 타입 지정
request.setCharacterEncoding("utf-8");
//전송된 데이터를 반환
String id = request.getParameter("id");
String passwd = request.getParameter("passwd");
//id, 비밀번호 일치 여부 체크
MemberDAO dao = MemberDAO.getInstance();
MemberInfoVO member = dao.checkMember(id);
boolean check = false;
//아이디가 등록되어 있고 로그인한 아이디와 일치할 경우
if(member!=null && user_id.equals(id)){ //user_id=> 세션에 저장되어있는 id. equals(id)=> 내가 입력한 id
//비밀번호 일치 여부 체크
check = member.isCheckedPassword(passwd);
}
if(check){//인증 성공
//회원 정보 삭제
dao.deleteMember(member.getNum());
//로그아웃
session.invalidate();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 탈퇴</title>
<link rel="stylesheet" href="<%= request.getContextPath() %>/css/style.css" type="text/css">
</head>
<body>
<div class="page-main">
<h1>회원 탈퇴 완료</h1>
<div class="result-display">
회원탈퇴가 완료되었습니다.<p>
<button onclick="location.href='main.jsp'">홈으로</button>
</div>
</div>
</body>
</html>
<%
}else{
%>
<script type="text/javascript">
alert('아이디 또는 비밀번호가 불일치합니다.');
history.go(-1);
</script>
<%
}
}
%>
실행영상
'쌍용교육(JAVA) > JSP' 카테고리의 다른 글
쌍용교육 -JSP수업 52일차 employee(실습) (0) | 2024.05.02 |
---|---|
쌍용교육 -JSP수업 51~52일차 board (0) | 2024.04.30 |
쌍용교육 -JSP수업 50일차 javaBeans (0) | 2024.04.29 |
쌍용교육 -JSP수업 50일차 ajax(4) (0) | 2024.04.29 |
쌍용교육 -JSP수업 49일차 ajax(3) (0) | 2024.04.26 |