<이공계기술전문연수> 11. Servlet / JSP MVC2 실습(3) 회원정보 수정/회원 탈퇴/마이 페이지 / 회원 전체 관리 / 회원 정보 검색

2019. 11. 20. 11:13· 이공계전문기술연수/Servlet | JSP

Eclipse package

 

(1) org.kh.member.model.vo

package org.kh.member.model.vo;

import java.sql.Date;

public class Member {
	
	private String memberId;
	private String memberPw;
	private String memberName;
	private int age;
	private String email;
	private String phone;
	private Date enrollDate;
	public Member() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Member(String memberId, String memberPw, String memberName, int age, String email, String phone,
			Date enrollDate) {
		super();
		this.memberId = memberId;
		this.memberPw = memberPw;
		this.memberName = memberName;
		this.age = age;
		this.email = email;
		this.phone = phone;
		this.enrollDate = enrollDate;
	}
	public String getMemberId() {
		return memberId;
	}
	public void setMemberId(String memberId) {
		this.memberId = memberId;
	}
	public String getMemberPw() {
		return memberPw;
	}
	public void setMemberPw(String memberPw) {
		this.memberPw = memberPw;
	}
	public String getMemberName() {
		return memberName;
	}
	public void setMemberName(String memberName) {
		this.memberName = memberName;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	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 getEnrollDate() {
		return enrollDate;
	}
	public void setEnrollDate(Date enrollDate) {
		this.enrollDate = enrollDate;
	}
	

}

 

(2) org.kh.member.model.controller

 

<회원정보수정 controller>

package org.kh.member.controller;

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;

import org.kh.member.model.service.MemberService;
import org.kh.member.model.vo.Member;

import com.sun.javafx.collections.IntegerArraySyncer;

/**
 * Servlet implementation class UpdateServlet
 */
@WebServlet(name = "Update", urlPatterns = { "/update" })
public class UpdateServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public UpdateServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//1.인코딩
		request.setCharacterEncoding("utf-8");

		//2.변수저장
		String memberId = request.getParameter("memberId");
		String memberPw = request.getParameter("memberPw");
		String memberName = request.getParameter("memberName");
		int age = Integer.parseInt(request.getParameter("age"));
		String email = request.getParameter("email");
		String phone = request.getParameter("phone");
		
		//3.비지니스 로직
		
		MemberService service = new MemberService();
		Member m = new Member(memberId,memberPw,memberName,age,email,phone,null);
		
		int result = service.updateMember(m);
		
		//4.뷰 처리
		
		if(result > 0) {
			
			Member member = service.selectOne(memberId);
			HttpSession session = request.getSession(false);
			session.setAttribute("member", member);
			response.sendRedirect("/mypage?memberId="+memberId);


		}else{
			
			RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/views/common/msg.jsp");
			request.setAttribute("msg","정보변경실패");
			request.setAttribute("loc","/mypage?memberId="+memberId);
			rd.forward(request, response);
		}
		
	}
	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 

<회원탈퇴 controller>

package org.kh.member.controller;

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;

import org.kh.member.model.service.MemberService;
import org.kh.member.model.vo.Member;

/**
 * Servlet implementation class DeleteServlet
 */
@WebServlet(name = "Delete", urlPatterns = { "/delete" })
public class DeleteServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public DeleteServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		request.setCharacterEncoding("utf-8");

		//2.변수저장
		String memberId = request.getParameter("memberId");
		
		//3.비지니스 로직
		MemberService service = new MemberService();

		int result = service.deleteMember(memberId);
		
		//4. 뷰 처리
		
		if(result > 0) {
			HttpSession session = request.getSession(false);
			session.invalidate();
			request.setAttribute("msg", "삭제 성공");
		}else{
			request.setAttribute("msg", "삭제 실패");			
		}
		request.setAttribute("loc", "/");
		RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/views/common/msg.jsp");
		rd.forward(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 

<마이페이지 controller>

package org.kh.member.controller;

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 org.kh.member.model.service.MemberService;
import org.kh.member.model.vo.Member;

/**
 * Servlet implementation class MypageServlet
 */
@WebServlet(name = "Mypage", urlPatterns = { "/mypage" })
public class MypageServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public MypageServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//1. 인코딩
		request.setCharacterEncoding("utf-8");
		//2. 변수저장
		String memberId = request.getParameter("memberId");
		//3. 비지니스로직
		MemberService service = new MemberService();
		Member m = service.selectOne(memberId);
		//4. 뷰 처리
		if(m !=null) {
			request.setAttribute("member", m);
			RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/views/member/mypage.jsp");
			rd.forward(request, response);
		}else {
			response.sendRedirect("/");
		}
	
	}
	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 

<회원전체출력(관리자) controller>

package org.kh.member.controller;

import java.io.IOException;
import java.util.ArrayList;

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;

import org.kh.member.model.service.MemberService;
import org.kh.member.model.vo.Member;

/**
 * Servlet implementation class AdminPageServlet
 */
@WebServlet(name = "AdminPage", urlPatterns = { "/adminPage" })
public class AdminPageServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public AdminPageServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		
		HttpSession session = request.getSession(false);
		Member m = (Member)session.getAttribute("member");
		String memberId = m.getMemberId();
//		String memberId 
//		=((Member)session.getAttribute("member")).getMemberId(); 위에 두줄 한줄로 표기
		
		if(memberId.equals("admin")) {
			MemberService service = new MemberService();
			ArrayList<Member> list = service.selectList();
			
			request.setAttribute("members", list);
			RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/views/member/adminPage.jsp");
			rd.forward(request, response);
		}else {
			RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/views/common/msg.jsp");
			request.setAttribute("msg", "당신은 관리자가 아닙니다");
			request.setAttribute("loc", "/");
			rd.forward(request, response);
		}

	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 

<회원정보검색 controller>

package org.kh.member.controller;

import java.io.IOException;
import java.util.ArrayList;

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 org.kh.member.model.service.MemberService;
import org.kh.member.model.vo.Member;

/**
 * Servlet implementation class SearchKeywordServlet
 */
@WebServlet(name = "SearchKeyword", urlPatterns = { "/searchKeyword" })
public class SearchKeywordServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public SearchKeywordServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//1.인코딩
		request.setCharacterEncoding("utf-8");
		//2. 변수저장
		String type = request.getParameter("type");
		String keyword = request.getParameter("keyword");
		//
		MemberService service = new MemberService();
		ArrayList<Member> list = service.searchKeyword(type,keyword);
		//
		RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/views/member/adminPage.jsp");
		request.setAttribute("memberList", list);
		rd.forward(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 

(3) org.kh.member.model.service

package org.kh.member.model.service;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;

import org.kh.common.JDBCTemplate;
import org.kh.member.model.dao.MemberDao;
import org.kh.member.model.vo.Member;


public class MemberService {
	
    //마이 페이지
	public Member selectOne(String memberId) {
		Connection conn = JDBCTemplate.getConnection();
		MemberDao dao = new MemberDao();
        Member m = dao.selectOne(conn,memberId);
		JDBCTemplate.close(conn);
		return m;
		}
    //회원정보 변경
	public int updateMember(Member m) {
		Connection conn = JDBCTemplate.getConnection();
		MemberDao dao = new MemberDao();
		int result = dao.updateMember(conn, m);
		
		if(result > 0) {
			JDBCTemplate.commit(conn);
		}else {
			JDBCTemplate.rollback(conn);
		}
		JDBCTemplate.close(conn);
		
		return result;
	}
    //회원탈퇴
	public int deleteMember(String id) {
		Connection conn = JDBCTemplate.getConnection();
		MemberDao dao = new MemberDao();
		int result = dao.deleteMember(conn, id);
		
		if(result>0) {
			JDBCTemplate.commit(conn);
		}else {
			JDBCTemplate.rollback(conn);
		}
		JDBCTemplate.close(conn);
		
		
		return result;
	}
    
    //회원전체관리 출력
	public ArrayList<Member> selectList(){
		Connection conn = JDBCTemplate.getConnection();
		MemberDao dao = new MemberDao();
		ArrayList<Member> list = dao.selectList(conn);
		
		return list;
	}
    //회원정보 검색
	public ArrayList<Member> searchKeyword(String type, String keyword){
		Connection conn = JDBCTemplate.getConnection();
		ArrayList<Member> list = null;
		MemberDao dao = new MemberDao();
		switch(type) {
		case "memberId" : list = dao.searchKeywordId(conn,keyword); break;
		case "memberName" : list = dao.searchKeywordName(conn,keyword); break;
		}
		JDBCTemplate.close(conn);
		return list;
	}

}

 

(4) org.kh.member.model.dao

package org.kh.member.model.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import org.kh.common.JDBCTemplate;
import org.kh.member.model.vo.Member;

public class MemberDao {


	//마이페이지
	public Member selectOne(Connection conn, String memberId) {
		Member m = null;
		PreparedStatement pstmt = null;
		ResultSet rset = null;

		String query = "select * from member where member_id=?";

		try {
			pstmt = conn.prepareStatement(query);
			pstmt.setString(1, memberId);
			rset = pstmt.executeQuery();
			if (rset.next()) {
				m = new Member();
				m.setAge(rset.getInt("age"));
				m.setEmail(rset.getString("email"));
				m.setEnrollDate(rset.getDate("enroll_date"));
				m.setMemberId(rset.getString("member_id"));
				m.setMemberName(rset.getString("member_name"));
				m.setMemberPw(rset.getString("member_pw"));
				m.setPhone(rset.getString("phone"));

			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			JDBCTemplate.close(rset);
			JDBCTemplate.close(pstmt);
		}
		return m;
	}
    
    //회원정보수정
	public int updateMember(Connection conn, Member m) {

		int result = 0;
		PreparedStatement pstmt = null;
		String query = "update member set member_pw=? ,member_name=?, age=?, email=?, phone=? where member_id=?";

		try {
			pstmt = conn.prepareStatement(query);
			pstmt.setString(1, m.getMemberPw());
			pstmt.setString(2, m.getMemberName());
			pstmt.setInt(3, m.getAge());
			pstmt.setString(4, m.getEmail());
			pstmt.setString(5, m.getPhone());
			pstmt.setString(6, m.getMemberId());
			result = pstmt.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			JDBCTemplate.close(pstmt);
		}
		return result;

	}
    
    //회원탈퇴
	public int deleteMember(Connection conn, String id) {

		int result = 0;
		PreparedStatement pstmt = null;
		String query = "delete from member where member_id = ?";

		try {
			pstmt = conn.prepareStatement(query);
			pstmt.setString(1, id);
			result = pstmt.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			JDBCTemplate.close(pstmt);
		}
		return result;
	}
    
    //회원 전체 출력
	public ArrayList<Member> selectList(Connection conn) {

		PreparedStatement pstmt = null;
		ResultSet rset = null;
		ArrayList<Member> list = new ArrayList<Member>();
		Member m = null;
		String query = "select * from member";

		try {
			pstmt = conn.prepareStatement(query);
			rset = pstmt.executeQuery();
			while (rset.next()) {
				m = new Member();
				m.setMemberId(rset.getString("member_id")); 
				m.setMemberPw(rset.getString("member_pw"));
				m.setMemberName(rset.getString("member_name"));
				m.setAge(rset.getInt("age"));
				m.setEmail(rset.getString("email"));
				m.setPhone(rset.getString("phone"));
				list.add(m);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			JDBCTemplate.close(pstmt);
			JDBCTemplate.close(rset);
		}
		return list;
	}
    
    //관리자가 회원전체 출력시 아이디로 검색
	public ArrayList<Member> searchKeywordId(Connection conn, String keyword) {
		PreparedStatement pstmt = null;
		ResultSet rset = null;
		String query = "select * from member where member_id=?";
		ArrayList<Member> list = new ArrayList<Member>();
		try {
			pstmt = conn.prepareStatement(query);
			pstmt.setString(1, keyword);
			rset = pstmt.executeQuery();
			while (rset.next()) {
				Member m = new Member();
				m.setMemberId(rset.getString("member_Id")); // 
				m.setMemberPw(rset.getString("member_Pw"));
				m.setMemberName(rset.getString("member_Name"));
				m.setAge(rset.getInt("age"));
				m.setEmail(rset.getString("email"));
				m.setPhone(rset.getString("phone"));
				list.add(m);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			JDBCTemplate.close(pstmt);
			JDBCTemplate.close(rset);
		}
		return list;
	}

	//관리자가 회원전체 출력시 이름으로 검색
	public ArrayList<Member> searchKeywordName(Connection conn, String keyword) {

		PreparedStatement pstmt = null;
		ResultSet rset = null;
		String query = "select * from member where member_name like (?)"; // ( ) 없어도 상관없음!!
		ArrayList<Member> list = new ArrayList<Member>();
		try {
			pstmt = conn.prepareStatement(query);
			pstmt.setString(1, "%" + keyword + "%");
			rset = pstmt.executeQuery();
			while (rset.next()) {
				Member m = new Member();
				m.setMemberId(rset.getString("member_Id")); // 안에 들어가는 값 db??
				m.setMemberPw(rset.getString("member_Pw"));
				m.setMemberName(rset.getString("member_Name"));
				m.setAge(rset.getInt("age"));
				m.setEmail(rset.getString("email"));
				m.setPhone(rset.getString("phone"));
				list.add(m);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			JDBCTemplate.close(pstmt);
			JDBCTemplate.close(rset);
		}
		return list;
	}

}

 

 

(5)View

 

<mypage.jsp>

<%@page import="org.kh.member.model.vo.Member"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>

<%
	Member member = (Member)request.getAttribute("member");

	//변수명을 member로 한 이유는 header.jsp에서 이미 변수명 m이 있기때문에
	//겹치므로 member로 설정을 한다!!!
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ include file="/WEB-INF/views/common/header.jsp"%>
	<section>
	<form action="/update" method="post"
		style="width: 800px; margin: 0 auto; color: black;">
		<h1>회원정보</h1>
		<table class="table">
			<tr>
				<th>아이디</th>
				<td><input type="text" name="memberId" class="form-control"
					value="<%=member.getMemberId()%>" readonly></td>
			</tr>
			<tr>
				<th>비밀번호</th>
				<td><input type="password" name="memberPw" class="form-control"
					value="<%=member.getMemberPw()%>"></td>
			</tr>
			<tr>
				<th>이름</th>
				<td><input type="text" name="memberName" class="form-control"
					value="<%=member.getMemberName()%>"></td>
			</tr>
			<tr>
				<th>나이</th>
				<td><input type="text" name="age" class="form-control"
					value="<%=member.getAge()%>"></td>
			</tr>
			<tr>
				<th>이메일</th>
				<td><input type="text" name="email" class="form-control"
					value="<%=member.getEmail()%>"></td>
			</tr>
			<tr>
				<th>연락처</th>
				<td><input type="text" name="phone" class="form-control"
					value="<%=member.getPhone()%>"></td>
			</tr>
			<tr>
				<th>가입일</th>
				<td><input type="text" name="enrollDate" class="form-control"
					value="<%=member.getEnrollDate()%>" readonly></td>
			</tr>
			<tr>
				<th colspan="2" style="text-align:center;">
					<button class="btn btn-outline-danger btn-lg" 
					type="submit">수정하기</button>
				<%if(m.getMemberId().equals("admin")){ %>
					<button class="btn btn-outline-danger btn-lg" type="button"
					 onclick="location.href='/adminPage'">회원관리</button>
				<%}else{%>
					<button class="btn btn-outline-danger btn-lg" type="button"
				   	onclick="location.href='/delete?memberId=<%=member.getMemberId()%>'">회원탈퇴</button>
				<%}%>
				</th>
				
			</tr>
		</table>
	</form>
	</section>
</body>
</html>

<adminPage.jsp> 첫번째 방법!!

<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
       <%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <!--    
    
    ArrayList<Member> members = (ArrayList<Member>)request.getAttribute("memberList");
    
    -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ include file="/WEB-INF/views/common/header.jsp"%>
	
	<section>
		<div style="margin:0 auto;width:500px; text-align:center;">
			<form action="/searchKeyword" method="post">
				<select name="type" class="form-control" style="display: inline-block; width:100px;
				height:30px; font-size:0.8em;">
				
					<c:if test="${empty type }">			<!-- null check! -> empty -->
						<option value ="memberId">아이디</option>
						<option value ="memberName">이름</option>
					</c:if>
					
					<c:if test="${not empty type && type=='memberName'}">			<!-- null check! -> empty -->
						<option value ="memberId">아이디</option>
						<option value ="memberName" selected="selected">이름</option>
					</c:if>
					
					<c:if test="${not empty type && type=='memberId'}">			<!-- null check! -> empty -->
						<option value ="memberId" selected="selected">아이디</option>
						<option value ="memberName">이름</option>
					</c:if>
				</select>
				
				<input type="text" class="form-control" style="display:inline-block; width:200px;
				height:30px; font-size:0.8em;" name="keyword" value="${keyword }">
				<button type="submit" class="btn btn-outline-secondary btn-sm">조회</button>
			</form>
		
		</div>
	<table class="table table-hover" style="text-alingn:center; margin: 0 auto; color: black;">
		<tr>
			<th>아이디</th><th>이름</th><th>나이</th>
			<th>이메일</th><th>전화번호</th><th>탈퇴</th>
		</tr>
		<c:forEach items="${members }" var="m" varStatus="i">
			<tr>		
				<td>${m.memberId }</td>
				<td>${m.memberName }</td>
				<td>${m.age }</td>
				<td>${m.email }</td>
				<td>${m.phone }</td>
				<td><button class="btn btn-outline-info btn-sm" onclick="location.href='/deleteMember?memberid=${m.memberId}'">탈퇴</button></td>
			</tr>
		</c:forEach>
	</table>
	</section>
	
	
</body>
</html>

 

<adminPage.jsp> 두번째 방법!!!

<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
    <%
    ArrayList<Member> members = (ArrayList<Member>)request.getAttribute("memberList");
    %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ include file="/WEB-INF/views/common/header.jsp"%>
	
	
	<section>
		<div style="margin:0 auto;width:500px; text-align:center;">
			<form action="/searchKeyword">
				<select name="type" class="form-control" style="display: inline-block; width:100px;
				height:30px; font-size:0.8em;">
					<option value ="memberId">아이디</option>
					<option value ="memberName">이름</option>
				</select>
				<input type="text" class="form-control" style="display:inline-block; width:200px;
				height:30px; font-size:0.8em;" name="keyword">
				<button type="submit" class="btn btn-outline-secondary btn-sm">조회</button>
			</form>
		
		</div>
	<table class="table" style="width: 1000px; margin: 0 auto; color: black;">
		<tr>
			<th>아이디</th><th>이름</th><th>나이</th>
			<th>이메일</th><th>전화번호</th><th>탈퇴</th>
		</tr>
		<%for(Member listMember : members){%>
			<form action="/adminPage" method="post">
			<tr>
				<td><%=listMember.getMemberId()%></td>
				<td><%=listMember.getMemberName()%></td>
				<td><%=listMember.getAge() %></td>
				<td><%=listMember.getEmail() %></td>
				<td><%=listMember.getPhone() %></td>
				<td><button type="button" class="btn btn-outline-info btn sm" 
				onclick="location.href='/delete?memberId=<%=listMember.getMemberId()%>'">탈퇴</button></td>
			</tr>
			</form>
		<%}%>	
		
			
	</table>
	</section>
	
	
</body>
</html>

 

<searchId.jsp>

<%@page import="org.kh.member.model.vo.Member"%>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <% 
   		 Member member = (Member)request.getAttribute("members");
    
    
    
    %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<style>
		*{
			text-align : center;
		}
	</style>
	<%@ include file="/WEB-INF/views/common/header.jsp" %>
	<section>
	
	<div id="div1">
	<h3>아이디 찾기</h3>
	<form action="/searchId" method="post">
	<table class ="table" style="margin:0 auto;width:700px;">
		<tr>
			<td><input type="text" name="name" class="form-control" placeholder="이름을 입력하세요"></td>
		</tr>
		<br>
		<tr>
			<td><input type="text" name="email" class="form-control" placeholder="이메일을 입력하세요"></td>
		</tr>
		<br>
		<tr>
			<td><input type="text" name="phone" class="form-control" placeholder="전화번호를 입력하세요 (- 제외)"></td>
		</tr>
	</table>
	<button type="submit" class= "btn btn-outline-info btn sm">검색</button>
	</form>
	</div>
	</section>
	
	
</body>
</html>

 

<searchPw.jsp>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<style>
		*{
			text-align : center;
		}
	</style>
	<%@ include file="/WEB-INF/views/common/header.jsp" %>
	<section>
	<h3>비밀번호 찾기</h3>
	<form action="/searchPw" method="post">
	<table class ="table" style="margin:0 auto;width:700px;">
		<tr>
			<td><input type="text" name="id" class="form-control" placeholder="아이디를 입력하세요"></td>
		</tr>
		<br>
		<tr>
			<td><input type="text" name="name" class="form-control" placeholder="이름을 입력하세요"></td>
		</tr>
		<br>
		<tr>
			<td><input type="text" name="email" class="form-control" placeholder="이메일을 입력하세요"></td>
		</tr>
	</table>
	<button type="submit" class= "btn btn-outline-info btn sm">검색</button>
	</form>
	</section>

</body>
</html>

 

 

'이공계전문기술연수 > Servlet | JSP' 카테고리의 다른 글

<이공계기술전문연수> 13. Servlet / JSP MVC2 실습(5) 공지사항  (0) 2019.11.21
<이공계기술전문연수> 12. Servlet / JSP MVC2 실습(4) 아이디찾기 / 비밀번호찾기 / 아이디 중복체크  (2) 2019.11.20
<이공계기술전문연수> 10. Servlet / JSP MVC2 실습(2) 회원가입/로그인/로그아웃  (0) 2019.11.20
<이공계기술전문연수> 9. Servlet / JSP MVC2 실습(1) package / lib  (0) 2019.11.20
<이공계기술전문연수> 8. Servlet / JSP jspTag(JSTL)  (0) 2019.11.19
'이공계전문기술연수/Servlet | JSP' 카테고리의 다른 글
  • <이공계기술전문연수> 13. Servlet / JSP MVC2 실습(5) 공지사항
  • <이공계기술전문연수> 12. Servlet / JSP MVC2 실습(4) 아이디찾기 / 비밀번호찾기 / 아이디 중복체크
  • <이공계기술전문연수> 10. Servlet / JSP MVC2 실습(2) 회원가입/로그인/로그아웃
  • <이공계기술전문연수> 9. Servlet / JSP MVC2 실습(1) package / lib
임쟌
임쟌
임쟌
Jian's Blog
임쟌
전체
오늘
어제

공지사항

  • [자기소개]
  • 쟌's Blog (227)
    • Language (32)
      • Python (8)
      • Go (24)
      • Java (0)
    • Framework (10)
      • Django (9)
      • Gin (1)
      • Spring boot (0)
      • Fiber (0)
    • Database (10)
      • PostgreSQL (8)
      • MySQL (0)
      • Redis (2)
    • Server (51)
      • Linux (16)
      • Git (12)
      • Oracle Cloud Infrastructure (13)
      • Mac (4)
      • Docker (4)
      • RabbitMQ (0)
      • ETC (2)
    • Operating System (0)
      • OS (0)
    • Algorithm (22)
      • Go (22)
      • Python (0)
    • Exam Certification (4)
    • Daily Life (27)
      • Review (21)
      • Diary (6)
    • 이공계전문기술연수 (71)
      • Java (17)
      • Database (8)
      • HTML | CSS (13)
      • JavaScript | jQuery (6)
      • Servlet | JSP (16)
      • Spring Framework (11)

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
임쟌
<이공계기술전문연수> 11. Servlet / JSP MVC2 실습(3) 회원정보 수정/회원 탈퇴/마이 페이지 / 회원 전체 관리 / 회원 정보 검색
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.