view -> member_list.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>
<div align = "center">
<hr width = "30%" color = "red">
<h3>MEMBER 테이블 전체 회원 목록 페이지</h3>
<hr width = "30%" color = "red">
<br/> <br/>
<table border = "1" width = "500">
<tr>
<th>회원 No.</th> <th>회원 이름</th> <th>회원 직업</th> <th>회원 등록일</th> <th>상세정보</th>
</tr>
<c:set var = "list" value = "${List }" />
<c:if test="${!empty list }"> <!-- 데이터가 있다면 -->
<c:forEach items = "${list }" var = "dto">
<tr>
<td> ${dto.getNum() } </td>
<td> ${dto.getMemname() } </td>
<td> ${dto.getJob() } </td>
<td> ${dto.getRegdate().substring(0,10) } </td>
<td>
<input type = "button" value = "상세정보" onclick = "location.href = 'content.go?num=${dto.getNum() }'">
</td>
</tr>
</c:forEach>
</c:if>
<c:if test="${empty list }">
<tr>
<td colspan = '2' align = "center">
<h3>전체 회원 리스트가 없습니다...</h3>
</td>
</tr>
</c:if>
</table>
<br/>
<input type = "button" value = "회원등록" onclick = "location.href='insert.go'">
<br/><br/>
<%-- 검색 관련 폼 태그 --%>
<form method = "post" action = "<%=request.getContextPath() %>/search.go">
<select name = "field">
<option value = "id">아이디</option>
<option value = "name">이름</option>
<option value = "job">직업</option>
<option value = "addr">주소</option>
</select>
<input type = "text" name = "keyword">
<input type = "submit" value = "검색">
</form>
</div>
</body>
</html>

다시 FrontController 클래스로 가서 else if를 작성

MemberInsertAction() 메서드를 만들자
=============================코드=============================
package com.member.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MemberInsertAction implements Action {
@Override
public String execute(HttpServletRequest request, HttpServletResponse response) {
// 회원 등록 폼 페이지로 이동시키는 비즈니스 로직
return "view/member_insert.jsp";
}
}
view -> member_insert 에서 파일을 생성하자
=============================코드=============================
<%@ 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>
<div align = "center">
<hr width = "30%" color = "marmoon">
<h3>MEMBER 테이블 회원 추가 폼 페이지</h3>
<hr width = "30%" color = "marmoon">
<br/> <br/>
<form method = "post" action = "<%=request.getContextPath() %>/insert_ok.go">
<table border = "1" width = "350">
<tr>
<th>회원 아이디</th>
<td>
<input type = "text" name = "mem_id">
</td>
</tr>
<tr>
<th>회원 이름</th>
<td>
<input type = "text" name = "mem_name">
</td>
</tr>
<tr>
<th>회원 비밀번호</th>
<td>
<input type = "password" name = "mem_pwd">
</td>
</tr>
<tr>
<th>회원 나이</th>
<td>
<input type = "text" name = "mem_age">
</td>
</tr>
<tr>
<th>회원 마일리지</th>
<td>
<input type = "text" name = "mem_mileage">
</td>
</tr>
<tr>
<th>회원 직업</th>
<td>
<input type = "text" name = "mem_job">
</td>
</tr>
<tr>
<th>회원 주소</th>
<td>
<input type = "text" name = "mem_addr">
</td>
</tr>
<tr>
<td colspan = "2" align = "center">
<input type = "submit" value = "회원추가">
<input type = "reset" value = "다시작성">
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
=============================실행=============================

회원등록 클릭!

회원추가를 클릭했을 때 보여지는 동작을 작성하자
FrontController 클래스로 가서
MemberInsertOkAction() 메서드 생성

회원 추가 폼 페이지에서 넘어온 데이터들을 DB로 넘겨줄
=============================코드=============================
package com.member.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.member.model.MemberDAO;
import com.member.model.MemberDTO;
public class MemberInsertOkAction implements Action {
@Override
public String execute(HttpServletRequest request, HttpServletResponse response) {
// 회원 추가 폼 페이지에서 넘어온 데이터들을 member 테이블의 회원으로 추가시키는 비지니스 로직
// 1단계 : 회원 추가 폼 페이지에서 넘어온 데이터들을 받아주어야 함
String member_id = request.getParameter("mem_id").trim();
String member_name = request.getParameter("mem_name").trim();
String member_pwd = request.getParameter("mem_pwd").trim();
int member_age = Integer.parseInt(request.getParameter("mem_age").trim());
int member_mileage = Integer.parseInt(request.getParameter("mem_mileage").trim());
String member_job = request.getParameter("mem_job").trim();
String member_addr = request.getParameter("mem_addr").trim();
// 2단계 : 데이터들을 DB에 전송을 해야 함. DTO객체를 이용하여 전송하면 됨
// 이때 DTO 객체의 setter() 메서드의 인자로 데이터들을 넘겨주어 멤버변수에 초기값으로 할당
MemberDTO dto = new MemberDTO();
dto.setMemid(member_id);
dto.setMemname(member_name);
dto.setPwd(member_pwd);
dto.setAge(member_age);
dto.setMileage(member_mileage);
dto.setJob(member_job);
dto.setAddr(member_addr);
// 3단계 : DAO 객체의 회원 추가 메서드 호출 시 인자에 DTO 객체를 넘겨주어
// member 테이블에 저장 하자
MemberDAO dao = MemberDAO.getInstance();
dao.insertMember(dto);
return null;
}
}
MemberDAO에
=============================코드=============================
// member 테이블에 회원을 추가하는 메서드
public int insertMember(MemberDTO dto) {
int result = 0, count = 0;
try {
openConn();
sql = "select max(mem_no) from member";
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery();
if(rs.next()) {
count = rs.getInt(1) + 1;
}
sql = "insert into member values(?, ?, ?, ?, ?, ?, ?, ?, sysdate)";
pstmt = con.prepareStatement(sql);
pstmt.setInt(1, count);
pstmt.setString(2, dto.getMemid());
pstmt.setString(3, dto.getMemname());
pstmt.setString(4, dto.getPwd());
pstmt.setInt(5, dto.getAge());
pstmt.setInt(6, dto.getMileage());
pstmt.setString(7, dto.getJob());
pstmt.setString(8, dto.getAddr());
result = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeConn(rs, pstmt, con);
}
return result;
}
MemberInsertOkAction() 로 가서 나머지 작성
=============================코드=============================
package com.member.action;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.member.model.MemberDAO;
import com.member.model.MemberDTO;
public class MemberInsertOkAction implements Action {
@Override
public String execute(HttpServletRequest request, HttpServletResponse response) throws IOException {
// 회원 추가 폼 페이지에서 넘어온 데이터들을 member 테이블의 회원으로 추가시키는 비지니스 로직
// 1단계 : 회원 추가 폼 페이지에서 넘어온 데이터들을 받아주어야 함
String member_id = request.getParameter("mem_id").trim();
String member_name = request.getParameter("mem_name").trim();
String member_pwd = request.getParameter("mem_pwd").trim();
int member_age = Integer.parseInt(request.getParameter("mem_age").trim());
int member_mileage = Integer.parseInt(request.getParameter("mem_mileage").trim());
String member_job = request.getParameter("mem_job").trim();
String member_addr = request.getParameter("mem_addr").trim();
// 2단계 : 데이터들을 DB에 전송을 해야 함. DTO객체를 이용하여 전송하면 됨
// 이때 DTO 객체의 setter() 메서드의 인자로 데이터들을 넘겨주어 멤버변수에 초기값으로 할당
MemberDTO dto = new MemberDTO();
dto.setMemid(member_id);
dto.setMemname(member_name);
dto.setPwd(member_pwd);
dto.setAge(member_age);
dto.setMileage(member_mileage);
dto.setJob(member_job);
dto.setAddr(member_addr);
// 3단계 : DAO 객체의 회원 추가 메서드 호출 시 인자에 DTO 객체를 넘겨주어
// member 테이블에 저장 하자
MemberDAO dao = MemberDAO.getInstance();
// -----------------------여기서부터 작성-----------------------
int check = dao.insertMember(dto);
PrintWriter out = response.getWriter();
if(check > 0) {
out.println("<script>");
out.println("alert('회원 추가 성공!')");
out.println("location.href='select.go'");
out.println("</script>");
}else {
out.println("<script>");
out.println("alert('회원 추가 실패...')");
out.println("history.back()");
out.println("</script>");
}
return null;
}
}