오늘의 코드
회원가입을 jsp로 만들어 보았다.
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인</title>
</head>
<body>
<%
// TODO : <a> 태그를 이용하여 memberRegister.jsp 이동 링크 생성
// TODO : 로그인 form 생성. sction="loginAuth.do" method="post"
%>
<h2>로그인하기</h2>
<form action="loginAuth.do" method="post">
<label for="userid">사용자 ID:</label>
<input type="text" id="userid" name="userid" required><br><br>
<label for="password">비밀번호:</label>
<input type="password" id="password" name="password" required><br><br>
<input type="submit" value="로그인">
<a href="memberRegister.jsp">회원가입</a>
</form>
</body>
</html>
loginResult.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>
<%
// TODO : 세션을 이용"userid님, 환영합니다.라고 화면에 출력"
// TODO : 회원 정보 보기 버튼 생성
// TODO : 로그아웃 버튼 생성
String userid = (String) session.getAttribute("userid");
if(userid == null){
userid = request.getParameter("userid");
if(userid != null) {
out.println("<script>alert('" + userid + "님 환영합니다!!');</script>");
} else {
out.println("<script>alert('로그인 해주세요!!'); location.href='login.jsp';</script>");
}
}
%>
<!-- location.href로 이동하면 servlet에서 doGet()을 호출
ㄴ GET방식으로 동작
-->
<button onclick="location.href='select.do'">회원정보</button>
<button onclick="logoutForm()">로그아웃</button>
<script>
function logoutForm() {
if(confirm('로그아웃 하시겠습니까?')) {
location.href="logout.do";
} else {
location.href="loginResult.jsp";
}
}
</script>
</body>
</html>
memberRegister.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>
<%
// TODO : 회원 가입 form 생성. action="register.do" method="post"
%>
<h2>회원 가입하기</h2>
<form action="register.do" method="post">
<label for="userid">사용자 ID:</label>
<input type="text" id="userid" name="userid" required><br><br>
<label for="password">비밀번호:</label>
<input type="password" id="password" name="password" required><br><br>
<label for="email">이메일:</label>
<input type="email" id="email" name="email" required><br><br>
<label for="emailAgree">이메일 수신 동의:</label>
<input type="checkbox" id="emailAgree" name="emailAgree" value="agree"><br><br>
<label for="interest">관심 분야:</label><br>
<input type="checkbox" id="interest1" name="interest" value="서버 개발">
<label for="interest1">서버 개발</label><br>
<input type="checkbox" id="interest2" name="interest" value="서버 폭팔">
<label for="interest2">서버 폭팔</label><br>
<!-- 관심 분야가 여러 개일 경우에는 반복문을 사용하여 동적으로 생성할 수도 있습니다. --><br>
<label for="phone">전화번호:</label>
<input type="tel" id="phone" name="phone"><br><br>
<label for="introduce">자기 소개:</label><br>
<textarea id="introduce" name="introduce" rows="4" cols="50"></textarea><br><br>
<input type="submit" value="제출">
</form>
</body>
</html>
memberResult.jsp
<%@page import="edu.web.member.MemberVO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 정보</title>
</head>
<body>
<%
// TODO : 회원 정보 출력
// TODO : 회원 수정 버튼 생성(경로 : memberUpdate.jsp)
// TODO : 회원 탈퇴 버튼 생성(경로 : delete.do)
String userid = (String) session.getAttribute("userid");
if(userid == null){
response.sendRedirect("login.jsp");
}
MemberVO vo = (MemberVO) request.getAttribute("vo");
%>
<h1>회원 정보</h1>
<form id="updateForm" action="" method="post">
<label for="userid">사용자 아이디:</label>
<input type="text" id="userid" name="userid" value="<%=vo.getUserid() %>" readonly> <br>
<label for="password">비밀번호:</label>
<input type="password" id="password" name="password" value="<%=vo.getPassword() %>" readonly> <br>
<label for="email">이메일:</label>
<input type="email" id="email" name="email" value="<%=vo.getEmail() %>" readonly> <br>
<label for="emailAgree">이메일 동의:</label>
<%if(vo.getEmailAgree().equals("agree")) { %>
<input type="checkbox" id="emailAgree" name="emailAgree" value="<%=vo.getEmailAgree() %>"
checked="checked" > <br>
<% } else { %>
<input type="checkbox" id="emailAgree" name="emailAgree" value="<%=vo.getEmailAgree() %>"> <br>
<% } %>
<input type="hidden" name="emailAgree" value="<%= vo.getEmailAgree() %>">
<label for="interest">관심 사항:</label>
<% for(String interests : vo.getInterest()) { %>
<input type="text" id="interest" name="interest" value="<%=interests %>" readonly> <br>
<% } %>
<label for="phone">전화번호:</label>
<input type="text" id="phone" name="phone" value="<%=vo.getPhone() %>" readonly> <br>
<label for="introduce">자기 소개:</label>
<textarea id="introduce" name="introduce" readonly><%=vo.getIntroduce() %></textarea><br>
<input type="button" onclick="location.href='loginResult.jsp'" value="뒤로가기">
<input type="button" onclick="updateForm()" value="회원정보수정">
<input type="button" onclick="deleteForm()" value="회원 탈퇴">
</form>
<script>
document.getElementById("emailAgree").disabled = true;
function updateForm() {
let form = document.getElementById("updateForm");
form.action = "memberUpdate.jsp";
form.submit();
}
function deleteForm() {
if(confirm('정말로 탈퇴 하시겠습니까?')) {
let form = document.getElementById("updateForm");
form.action = "delete.do";
form.submit();
} else { location.href='select.do'; };
}
</script>
</body>
</html>
memberUpdate.jsp
<%@page import="edu.web.member.MemberVO"%>
<%@ 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>
<%
// TODO : 로그인된 사용자 아이디를 저장
// TODO : form action="update.do" method="post"생성
// TODO : userid를 제외한 모든 정보 수정 가능하게 input 태그 작성
// userid는 읽기만 가능하도록 input 태그 생성
String id = (String) session.getAttribute("userid");
if (id == null) {
response.sendRedirect("login.jsp");
}
String userid = request.getParameter("userid");
String password = request.getParameter("password");
String email = request.getParameter("email");
String emailAgree = request.getParameter("emailAgree");
String[] interest = request.getParameterValues("interest");
String phone = request.getParameter("phone");
String introduce = request.getParameter("introduce");
if (password == "") {
out.print("<script>alert('페스워드를 입력해 주세요'); location.href='memberUpdate.jsp'</script>");
return;
}
// 서버측 입력값 검증
String checked = "checked";
String develServer = null;
String boomServer = null;
for (String interests : interest) {
if(interests.equals("서버 개발")) {
develServer = "checked";
} else if (interests.equals("서버 폭팔")) {
boomServer = "checked";
}
}
%>
<h1>회원 정보 수정</h1>
<form action="update.do" method="post">
<label for="userid">사용자 아이디:</label> <input type="text" id="userid"
name="userid" value="<%=userid%>" readonly> <br> <label
for="password">비밀번호:</label> <input type="password" id="password"
name="password" value="<%=password%>"> <br> <label
for="email">이메일:</label> <input type="email" id="email" name="email"
value="<%=email%>"> <br> <label for="emailAgree">이메일
동의:</label>
<%
if (emailAgree.equals("agree")) {
%>
<input type="checkbox" id="emailAgree" name="emailAgree" value="agree"
checked="checked"> <br>
<%
} else {
%>
<input type="checkbox" id="emailAgree" name="emailAgree" value="agree">
<br>
<%
}
%>
<label for="interest">관심 분야:</label><br>
<input type="checkbox" id="interest2" name="interest" value="서버 개발" <%=develServer %>>
<label for="interest2">서버 개발</label><br>
<input type="checkbox" id="interest2" name="interest" value="서버 폭팔" <%=boomServer %>>
<label for="interest2">서버 폭팔</label><br>
<label for="phone">전화번호:</label> <input type="text" id="phone"
name="phone" value="<%=phone%>"> <br> <label
for="introduce">자기 소개:</label>
<textarea id="introduce" name="introduce"><%=introduce %></textarea> <br>
<input type="button" onclick="location.href='select.do'" value="뒤로가기">
<input type="submit" value="수정 확인">
</form>
</body>
</html>
package edu.web.member;
public interface DBConnection {
// DB 접속에 필요한 상수 정의
public static final String URL = "jdbc:oracle:thin:@localhost:1521:xe";
public static final String USER = "scott";
public static final String PASSWORD = "tiger";
// DB 테이블 컬럼 상수 정의
public static final String TABLE_NAME = "TEST_MEMBER";
public static final String COL_USERID = "USERID";
public static final String COL_PASSWORD = "PASSWORD";
public static final String COL_EMAIL = "EMAIL";
public static final String COL_EMAIL_AGREE = "EMAIL_AGREE";
public static final String COL_INTEREST = "INTEREST";
public static final String COL_PHONE = "PHONE";
public static final String COL_INTRODUCE = "INTRODUCE";
// INSERT INTO TEST_MEMBER VALUES
// (?, ?, ?, ?, ?, ?, ?)
public static final String SQL_INSERT = "INSERT INTO " + TABLE_NAME
+ " VALUES (?, ?, ?, ?, ?, ?, ?)";
// SELECT USERID FROM TEST_MEMBER WHERE USERID = 'test' AND PASSWORD = 'test';
public static final String SQL_LOGIN = "SELECT " + COL_USERID
+ " FROM " + TABLE_NAME + " WHERE " + COL_USERID + " = ? "
+ " AND " + COL_PASSWORD + " = ?";
// SELECT * FROM TEST_MEMBER WHERE USERID = 'test';
public static final String SQL_SELECT = "SELECT * FROM "
+ TABLE_NAME + " WHERE " + COL_USERID + " = ? ";
// UPDATE TEST_MEMBER SET PASSWORD = 'UPDATE@TEST.COM',
/*
* EMAIL = '', EMAIL_AGREE = '', INTEREST = '', PHONE = '', INTRODUCE = '' WHERE
* USERID = 'test';
*/
public static final String SQL_UPDATE = "UPDATE " + TABLE_NAME
+ " SET " + COL_PASSWORD + " = ?, " + COL_EMAIL + " = ?, " + COL_EMAIL_AGREE + " = ?, "
+ COL_INTEREST + " = ?, " + COL_PHONE + " = ?, " + COL_INTRODUCE + " = ? "
+ " WHERE " + COL_USERID + " = ?";
// DELETE TEST_MEMBER WHERE USERID = 'test';
public static final String SQL_DELETE = "DELETE " + TABLE_NAME
+ " WHERE " + COL_USERID + " = ?";
}
MemberDAO.java
package edu.web.member;
public interface MemberDAO {
// 맴버 등록
public abstract int insert(MemberVO vo);
// 로그인
public abstract int login(String id, String pw);
// 맴버 정보 검색
public abstract MemberVO select(String id);
// 맴버 정보 수정
public abstract int update(String id, MemberVO vo);
// 맴버 정보 삭제
public abstract int delete(String id);
}
MemberDAOImple.java
package edu.web.member;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import oracle.jdbc.OracleDriver;
public class MemberDAOImple implements MemberDAO, DBConnection {
private static MemberDAOImple instance = null;
public static MemberDAOImple getInstance() {
if (instance == null) {
instance = new MemberDAOImple();
}
return instance;
}
@Override
public int insert(MemberVO vo) {
System.out.println("insert() 호출");
int result = 0;
Connection conn = null;
PreparedStatement pstmt = null;
try {
DriverManager.registerDriver(new OracleDriver());
conn = DriverManager.getConnection(URL, USER, PASSWORD);
System.out.println("DB 연결 성공");
pstmt = conn.prepareStatement(SQL_INSERT);
pstmt.setString(1, vo.getUserid());
pstmt.setString(2, vo.getPassword());
pstmt.setString(3, vo.getEmail());
pstmt.setString(4, vo.getEmailAgree());
pstmt.setString(5, vo.getInterestJoin());
pstmt.setString(6, vo.getPhone());
pstmt.setString(7, vo.getIntroduce());
result = pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
pstmt.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return result;
}
@Override
public int login(String id, String pw) {
System.out.println("login() 호출");
int result = 0;
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
DriverManager.registerDriver(new OracleDriver());
conn = DriverManager.getConnection(URL, USER, PASSWORD);
System.out.println("DB 연결 성공");
pstmt = conn.prepareStatement(SQL_LOGIN);
pstmt.setString(1, id);
rs = pstmt.executeQuery();
while (rs.next()) {
if (rs.getString(1).equals(id)) {
result = 1;
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
pstmt.close();
conn.close();
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println(result);
return result;
}
@Override
public MemberVO select(String id) {
System.out.println("select() 호출");
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
MemberVO vo = null;
try {
DriverManager.registerDriver(new OracleDriver());
conn = DriverManager.getConnection(URL, USER, PASSWORD);
System.out.println("DB 연결 성공");
pstmt = conn.prepareStatement(SQL_SELECT);
pstmt.setString(1, id);
rs = pstmt.executeQuery();
while (rs.next()) {
String userid = rs.getString(1);
String password = rs.getString(2);
String email = rs.getString(3);
String email_agree = rs.getString(4);
String interest = rs.getString(5);
String[] interests = interest.split(",");
for(String po : interests) {
System.out.println(po); // 로그
}
String phone = rs.getString(6);
String introduce = rs.getString(7);
vo = new MemberVO(userid, password, email, email_agree, interests, phone, introduce);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
pstmt.close();
conn.close();
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return vo;
}
@Override
public int update(String id, MemberVO vo) {
System.out.println("update() 호출");
int result = 0;
Connection conn = null;
PreparedStatement pstmt = null;
try {
DriverManager.registerDriver(new OracleDriver());
conn = DriverManager.getConnection(URL, USER, PASSWORD);
System.out.println("DB 연결 성공");
pstmt = conn.prepareStatement(SQL_UPDATE);
pstmt.setString(1, vo.getPassword());
pstmt.setString(2, vo.getEmail());
pstmt.setString(3, vo.getEmailAgree());
pstmt.setString(4, vo.getInterestJoin());
pstmt.setString(5, vo.getPhone());
pstmt.setString(6, vo.getIntroduce());
pstmt.setString(7, vo.getUserid());
result = pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
pstmt.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return result;
}
@Override
public int delete(String id) {
System.out.println("delete() 호출");
int result = 0;
Connection conn = null;
PreparedStatement pstmt = null;
try {
DriverManager.registerDriver(new OracleDriver());
conn = DriverManager.getConnection(URL, USER, PASSWORD);
System.out.println("DB 연결 성공");
pstmt = conn.prepareStatement(SQL_DELETE);
pstmt.setString(1, id);
result = pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
pstmt.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return result;
}
}
MemberVO.java
package edu.web.member;
import java.util.Arrays;
public class MemberVO {
private String userid;
private String password;
private String email;
private String emailAgree;
private String[] interest;
private String phone;
private String introduce;
public MemberVO() {
super();
// TODO Auto-generated constructor stub
}
public MemberVO(String userid, String password, String email, String emailAgree, String[] interest, String phone,
String introduce) {
super();
this.userid = userid;
this.password = password;
this.email = email;
this.emailAgree = emailAgree;
this.interest = interest;
this.phone = phone;
this.introduce = introduce;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getEmailAgree() {
return emailAgree;
}
public void setEmailAgree(String emailAgree) {
this.emailAgree = emailAgree;
}
public String[] getInterest() {
return interest;
}
public void setInterest(String[] interest) {
this.interest = interest;
}
public String getInterestJoin() {
String result =
(interest == null) ? "없음" : String.join(",", interest);
return result;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getIntroduce() {
return introduce;
}
public void setIntroduce(String introduce) {
this.introduce = introduce;
}
@Override
public String toString() {
return "MemberVO [userid=" + userid + ", password=" + password + ", email=" + email + ", emailAgree="
+ emailAgree + ", interest=" + Arrays.toString(interest) + ", phone=" + phone + ", introduce="
+ introduce + "]";
}
}
Servlet들
Delete
package edu.web.member;
import java.io.IOException;
import java.io.PrintWriter;
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;
// TODO : memberResult.jsp에서 이동
// 로그인된 사용자 아이디를 가져와서 DB에 회원 정보 삭제
// 삭제 성공 후에 login.jsp 페이지로 이동
@WebServlet("/delete.do")
public class DeleteServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static MemberDAO dao;
public DeleteServlet() {
dao = MemberDAOImple.getInstance();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
HttpSession session = request.getSession();
String userId = (String) session.getAttribute("userid");
PrintWriter out = response.getWriter();
if(userId != null) {
// 이후에 MemberVO 객체를 이용하여 원하는 작업을 수행합니다.
int result = dao.delete(userId);
if(result == 1) {
out.println("<script>alert('회원 탈퇴 성공'); location.href='/Homepage_MJH/login.jsp';</script>");
System.out.println("회원 탈퇴 성공");
} else {
out.println("<script>alert('회원 탈퇴 실패'); location.href='select.do';</script>");
System.out.println("회원 탈퇴 실패");
}
} else {
// 사용자가 로그인하지 않은 상태일 때 수행할 작업
response.sendRedirect("login.jsp");
}
}
}
Login
package edu.web.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;
/*
* TODO : login.jsp 에서 입력받은 아이디, 패스워드를 DB의 데이터와 비교해서
* 데이터가 일치하면 - 로그인 세션 생성 및 로그인 성공(loginResult.jsp)로 이동
* (아이디 값에 대한 세션 생성. 세션 만료 시간 60초)
* 데이터가 일치하지 않으면 - login.jsp로 이동(심심하면 실패 alert 띄우기)
* */
@WebServlet("/loginAuth.do")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static MemberDAO dao;
public LoginServlet() {
dao = MemberDAOImple.getInstance();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
// request에서 파라미터 값을 읽어옵니다.
String userid = request.getParameter("userid");
String password = request.getParameter("password");
// 이후에 MemberVO 객체를 이용하여 원하는 작업을 수행합니다.
int result = dao.login(userid, password);
System.out.println(result);
if(result == 1) {
session.setMaxInactiveInterval(60); // 60초
// 세션에 키-값 저장하기
session.setAttribute("userid", userid);
System.out.println(userid);
request.setAttribute("userid", userid);
RequestDispatcher dis = request.getRequestDispatcher("/loginResult.jsp");
dis.forward(request, response);
} else {
response.sendRedirect("/Homepage_MJH/login.jsp");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
Logout
package edu.web.member;
import java.io.IOException;
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;
// TODO : 로그인된 사용자만 접근 가능.
// userid 세션을 제거하고, login.jsp로 이동
@WebServlet("/logout.do")
public class LogoutServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public LogoutServlet() {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
String userid = (String) session.getAttribute("userid");
if(userid != null) {
session.invalidate();
response.sendRedirect("/Homepage_MJH/login.jsp");
} else {
response.sendRedirect("/Homepage_MJH/login.jsp");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
Register
package edu.web.member;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
// TODO : memberRegister.jsp에서 전송된 데이터를 DB에 저장
// DB 저장 후에 login.jsp로 이동(심심하면 alert도 띄우기)
@WebServlet("/register.do")
public class RegisterServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static MemberDAO dao;
public RegisterServlet() {
dao = MemberDAOImple.getInstance();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// sendRedirect() : 특정 경로로 이동
// request는 소멸되기 때문에 데이터를 전송할 수 없음
response.sendRedirect("/Homepage_MJH/login.jsp");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
// request에서 파라미터 값을 읽어옵니다.
String userid = request.getParameter("userid");
String password = request.getParameter("password");
String email = request.getParameter("email");
String emailAgree = request.getParameter("emailAgree");
String[] interest = request.getParameterValues("interest");
String phone = request.getParameter("phone");
String introduce = request.getParameter("introduce");
// MemberVO 객체를 생성하고 파라미터 값을 설정합니다.
MemberVO member = new MemberVO(userid, password, email, emailAgree, interest, phone, introduce);
// 이후에 MemberVO 객체를 이용하여 원하는 작업을 수행합니다.
int result = dao.insert(member);
System.out.println(result);
out.println("<script>alert('회원 등록 성공'); location.href='/Homepage_MJH/login.jsp';</script>");
}
}
Select
package edu.web.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;
// TODO : loginResult.jsp에서 이동
// 로그인된 사용자의 정보를 DB에서 select
// select된 MemberVO 데이터를 memberResult.jsp로 전송
@WebServlet("/select.do")
public class SelectServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static MemberDAO dao;
public SelectServlet() {
dao = MemberDAOImple.getInstance();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
String userid = (String) session.getAttribute("userid");
if(userid != null) {
MemberVO vo = dao.select(userid);
System.out.println("회원정보 조회 성공");
request.setAttribute("vo", vo);
RequestDispatcher dis = request.getRequestDispatcher("/memberResult.jsp");
dis.forward(request, response);
} else {
// 사용자가 로그인하지 않은 상태일 때 수행할 작업
response.sendRedirect("login.jsp");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
Update
package edu.web.member;
import java.io.IOException;
import java.io.PrintWriter;
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;
// TODO : memberUpdate.jsp에서 전송된 데이터로 DB 회원 정보 수정
// 회원 정보 수정에 성공하면 memberResult.jsp에 MemberVO 데이터 전송하여 출력
@WebServlet("/update.do")
public class UpdateServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static MemberDAO dao;
public UpdateServlet() {
dao = MemberDAOImple.getInstance();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
HttpSession session = request.getSession();
String userId = (String) session.getAttribute("userid");
PrintWriter out = response.getWriter();
if(userId != null) {
// request에서 파라미터 값을 읽어옵니다.
String userid = request.getParameter("userid");
String password = request.getParameter("password");
String email = request.getParameter("email");
String emailAgree = request.getParameter("emailAgree");
String[] interest = request.getParameterValues("interest");
String phone = request.getParameter("phone");
String introduce = request.getParameter("introduce");
// MemberVO 객체를 생성하고 파라미터 값을 설정합니다.
MemberVO member = new MemberVO(userid, password, email, emailAgree, interest, phone, introduce);
System.out.println(member);
// 이후에 MemberVO 객체를 이용하여 원하는 작업을 수행합니다.
int result = dao.update(userId, member);
if(result == 1) {
out.println("<script>alert('회원정보 수정 성공'); location.href='select.do';</script>");
System.out.println("회원정보 수정 성공");
} else {
out.println("<script>alert('회원정보 수정 실패'); location.href='select.do';</script>");
System.out.println("회원정보 수정 실패");
}
} else {
// 사용자가 로그인하지 않은 상태일 때 수행할 작업
response.sendRedirect("login.jsp");
}
}
}
이렇게 회원가입및 수정 삭제를 완성시켰다.