데일리로그C:
article thumbnail
Published 2023. 2. 27. 17:27
230227_web2(3) admin JAVA/model2

!!총정리!!

DAO (model) : dbconnection 과 동일한 역할
--> connection con 선언

MemberDAO : insert, update, delete, select 등등 해당
--> stmt, pstmt, rs 선언
--> DAO 와 연결
--> public 메소드 선언
      1) d.getCon() 으로 DB 문 열기
      2) 연결 등등 하기
      3) try catch 구문
          : try에 String sql =" " ;  pstmt, rs 등등, while문이나 if문
          : catch(예외처리)에 e.printStackTrace(); 예외처리 구문 적기 --> 리턴값 없음 //  e: 참조변수
      4) return 처리(void 경우 제외 **)

* 예외 발생 시 : try -> catch -> finally 순으로  //  그렇지 않을 경우 : try -> catch 순


Servlet  (controller)
--> @WebServlet("  ")  변경하기
--> doget : 그외에 전부다
      1) DB 연결하기
      2) 해당 변수로 나머지 정보들 전부 끌어오기 ( request.setAttribute("객체명", 객체))
           or
           
      3) forward : 두줄!!!!

--> dopost : 전페이지에서 form(method ="post")로 보내는 것들 
      1) 객체.set변수(request.getParameter("변수")); 형식으로 가져온 변수를 객체에 담기
      2) DB 연결 : (ex) AdminMemberDAO adao = new AdminMemberDAO();
      3) DB객체명.메소드(객체) 생성 (ex) adao.updateMember(m);
      4) 페이지 이동 response.sendRedirect("경로?보낼변수명="+변수);
           (ex) response.sendRedirect("/admin/member/modify?id="+m.getId());

jsp : 사용자한테 보여지는 것들
--> table, form 등등 만들기

--> value 저장 : ${ 변수} 로 설정

 

* include 할때

<jsp:include page="/admin/include/header.jsp"/>  --> 안먹을 때 종종 있음

<%@ include file="/admin/include/header.jsp" %>  --> 되도록 이걸로 사용하기!!

 

** public 메소드 자료형


1. 리턴값 없음 : void

2. 리턴값 있음
-- 내가 지정한 객체명
-- String 
-- int

 

[회원관리]
 
admin > include > header.jsp  --> 링크 걸기

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>관리자 영역</title>

<!-- jquery 사용 -->
<script src="http://code.jquery.com/jquery-1.12.4.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.4.1.min.js"></script>

<style>
	* {
		padding:0px;
		margin:0px;
		font-size:13px;
	}
</style>

</head>
<body>
session_id : ${sessionScope.id} <br>
session_name : ${sessionScope.name} <br>
session_level : ${sessionScope.level} <br>

<table width=100% border=0>
	<tr>
		<td>
			<a href="/admin/">[관리자 첫페이지]</a>
			<a href="/">[사용자 첫페이지]</a>
		</td>
		<td align=right>
			<c:choose>
				<c:when test="${sessionScope.id == null }">
					<a href="/member/login">[로그인]</a>
					<a href="/member/join">[회원가입]</a>
					<a href="/member/join2">[회원가입2]</a>
				</c:when>
				<c:otherwise>
					<c:if test="${sessionScope.level == '10'}"><a href="/admin/">[관리자]</a></c:if>
					<a href="/member/logout">[로그아웃]</a>
					<a href="/member/modify">[회원수정]</a>
					<a href="/member/list">[회원목록]</a>	
				</c:otherwise>
			</c:choose>
		</td>
	</tr>
	<tr>
		<td colspan=2 align=center>
			<a href="/admin/member/list">[회원관리]</a>
			<a href="/admin/bbs/list">[게시판관리]</a>
			<a href="/admin/product/list">[상품관리]</a>
			<a href="/admin/cart/list">[장바구니관리]</a>
			<a href="/admin/order/list">[주문관리]</a>
		</td>
	</tr>
</table>
<hr>

  
admin > include > footer.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<hr>
<table width=100% border=0>
	<tr>
		<td align=center>카피라이터</td>
	</tr>
</table>

</body>
</html>

 

admin > index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%@ include file="/admin/include/header.jsp" %>

<table width=100% border=0>
	<tr>
		<td align=center>admin index 내용</td>
	</tr>
</table>

<%@ include file="/admin/include/footer.jsp" %>

 
admin > controller > index.java (servlet)

package admin;

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;


@WebServlet("/admin/")
public class Index extends HttpServlet {
	private static final long serialVersionUID = 1L;
       

    public Index() {
        super();
    }

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//System.out.println("==========관리자 indesx==============");
  
		// forward
		RequestDispatcher dis = request.getRequestDispatcher("index.jsp");
		dis.forward(request, response);
	}

	
	

}

 
dao package > AdminMemberDAO.java. (class)

package dao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.LinkedList;

import dao.DAO;
import model.Member;

public class AdminMemberDAO {

	// 사용할 객체를 미리 선언
	Statement stmt;
	PreparedStatement pstmt;
	ResultSet rs;
		
	DAO d = new DAO();
	
	// 회원목록
	public LinkedList<Member> listAllMember() {
		// DB 문 두드리기
		d.getCon();
		
		//목록 읽어오기
		LinkedList<Member> list = new LinkedList<Member>();
		
		try {
			
			String sql="select * from member4";
			
			pstmt = d.con.prepareStatement(sql);
			rs = pstmt.executeQuery();
			
			while(rs.next()) {
				Member m = new Member();
				
				m.setId(rs.getString("id"));
				m.setPass(rs.getString("pass"));
				m.setName(rs.getString("name"));
				m.setAge(rs.getInt("age"));
				m.setGender(rs.getString("gender"));
				m.setEmail(rs.getString("email"));
				m.setLevel(rs.getString("level"));
				
				list.add(m);
				
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
		
	}
	
	// 아이디 확인
	public int checkId(Member m) {
		d.getCon();
		
		int num=0;
		try {
			String sql = "select count(*) from member4 where id=?";
			
			pstmt = d.con.prepareStatement(sql);
			pstmt.setString(1, m.getId());
			
			rs = pstmt.executeQuery();
			
			if(rs.next()) {
				num = rs.getInt(1);
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return num;
	}
	
	
	// 회원가입
	public int insertMemberAdmin(Member m) {
		d.getCon(); 
		int num = 0; 
		try {
			String sql = "insert into member4 values (?,?,?,?,?,?,?)";
			
			pstmt = d.con.prepareStatement(sql);
			
			pstmt.setString(1, m.getId()); 
			pstmt.setString(2, m.getPass());
			pstmt.setString(3, m.getName());
			pstmt.setInt(4, m.getAge());
			pstmt.setString(5, m.getGender());
			pstmt.setString(6, m.getEmail());
			pstmt.setString(7, m.getLevel());
			
			num = pstmt.executeUpdate();
			
		} catch(Exception e) {
			
		} finally {
			try {
				pstmt.close();
				d.con.close(); 
				
			} catch (Exception e2) {
				e2.printStackTrace(); // catch에는 이 문구 적거나 생략
			}
			
		}
		return num;
	}
	
	// 회원 1명 정보 가져오기
	public Member oneMember(String id) {
		d.getCon();
		
		Member m = new Member();
		
		try {
			String sql = "select * from member4 where id=?";
			
			pstmt = d.con.prepareStatement(sql);
			pstmt.setString(1, id);
			
			rs = pstmt.executeQuery();
			
			if(rs.next()) {
				m.setId(rs.getString("id"));
				m.setPass(rs.getString("pass"));
				m.setName(rs.getString("name"));
				m.setAge(rs.getInt("age"));
				m.setGender(rs.getString("gender"));
				m.setEmail(rs.getString("email"));
				m.setLevel(rs.getString("level"));
				
			}
			rs.close();
			pstmt.close();
			d.con.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return m;
	}
	
	// 회원수정
	public void updateMember(Member m) {
		d.getCon();
		
		try {
			String sql = "update member4 set pass=?, name=?, age=?, gender=?, email=?, level=? where id=?";
			
			pstmt = d.con.prepareStatement(sql);
			
			pstmt.setString(1, m.getPass());
			pstmt.setString(2, m.getName());
			pstmt.setInt(3, m.getAge());
			pstmt.setString(4, m.getGender());
			pstmt.setString(5, m.getEmail());
			pstmt.setString(6, m.getLevel());
			pstmt.setString(7, m.getId());
			
			
			pstmt.executeUpdate();
			
			pstmt.close();
			d.con.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	// 회원삭제
	public void deleteMember(String id) {
		d.getCon();
		
		try {
			String sql="update member4 set pass='', name='', age=0, gender='', email='', level='' where id=?";
			
			pstmt = d.con.prepareStatement(sql);
			pstmt.setString(1, id); 
			
			pstmt.executeUpdate();
			
			pstmt.close();
			d.con.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
}

 

 

admin > controller > MemberList.java

package admin.controller;

import java.io.IOException;
import java.util.LinkedList;

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 dao.AdminMemberDAO;
import model.Member;


@WebServlet("/admin/member/list")
public class MemberList extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    
    public MemberList() {
        super();
    }


	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		AdminMemberDAO dao = new AdminMemberDAO(); 
		
		LinkedList<Member> listAll = dao.listAllMember(); 
		
		request.setAttribute("list", listAll); 
		
		RequestDispatcher dis = request.getRequestDispatcher("list.jsp");  //forward 두줄
		dis.forward(request, response);
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	}

}

 
admin > member > list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%@ include file="/admin/include/header.jsp" %>

<center>
<table width=600 border=0 align=center>
	<tr>
		<td align=center class="td_title"><b>회원관리</b></td>
	</tr>
	<tr>
		<td align=right><a href="/admin/member/join">[회원추가]</a></td> <!-- 관리자가 회원 추가할때 -->
	</tr>
</table>

<table width=600 border=1>
	<tr>
		<td>id</td>
		<td>pass</td>
		<td>name</td>
		<td>age</td>
		<td>gender</td>
		<td>email</td>
		<td>level</td>
		<td>MODE</td>
	</tr>
	
	<!-- var = 내가 지정한 객체명  items = MemberList.java 에서 가지고 온 객체 리스트 -->
	<c:forEach var="a" items="${list}"> 
		<tr>
			<td>${a.id}</td>
			<td>${a.pass}</td>
			<td>${a.name}</td>
			<td>${a.age}</td>
			<td>${a.gender}</td>
			<td>${a.email}</td>
			<td>${a.level}</td>
			<td>
				<a href="/admin/member/modify?id=${a.id }">[수정]</a>
				<a href="/admin/member/delete?id=${a.id }">[삭제]</a>
			</td>
		</tr>
	</c:forEach>
</table>
</center>

<%@ include file="/admin/include/footer.jsp" %>

 
admin > controller > Join.java

package admin.controller;

import java.io.IOException;
import java.io.PrintWriter;

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 dao.AdminMemberDAO;
import model.Member;


@WebServlet("/admin/member/join")
public class Join extends HttpServlet {
	private static final long serialVersionUID = 1L;
       

    public Join() {
        super();
    }


	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		RequestDispatcher dis = request.getRequestDispatcher("join.jsp");
		dis.forward(request, response);
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		request.setCharacterEncoding("utf-8");
		
		Member m = new Member();
		
		m.setId(request.getParameter("id"));
		m.setPass(request.getParameter("pass"));
		m.setName(request.getParameter("name"));
		m.setAge(Integer.parseInt(request.getParameter("age")));
		m.setGender(request.getParameter("gender"));
		m.setEmail(request.getParameter("email"));
		m.setLevel(request.getParameter("level"));
		
		AdminMemberDAO adao = new AdminMemberDAO();
		
		//adao.insertMemberAdmin(m);
		
		//아이디 조회 부분
		int id_count = adao.checkId(m); 
		
		if(id_count == 0) { //0이라면 회원가입 시키기

			//회원가입 처리 부분
			int num = adao.insertMemberAdmin(m); // insert
			
			response.setContentType("text/html; charset=utf-8");
			PrintWriter out = response.getWriter();
			
			if(num == 1) { //카운트 세고
				response.sendRedirect("/admin/member/list");
			} else {
				out.print("<script>alert('회원가입에 실패했습니다. 전 페이지로 돌아갑니다.');history.back();</script>");
			}
		
			
		} else {
			response.setContentType("text/html; charset=utf-8");
			PrintWriter out = response.getWriter();
			out.print("<script>alert('이미 존재하는 아이디 입니다.');history.back();</script>");
			
		}
		
		
		
	}

}

 
admin > member > join.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%@ include file="/admin/include/header.jsp" %>

<center>
<table width=400 border=0 align=center>
	<tr>
		<td align=center class="td_title">회원 추가</td>
	</tr>
</table>

<form action="join" method="post">
<table width=400 border=1 align=center>
	<tr>
		<td>아이디</td>
		<td><input name="id" value=""></td>
	</tr>
	<tr>
		<td>비밀번호</td>
		<td><input name="pass" value=""></td>
	</tr>
	<tr>
		<td>이름</td>
		<td><input name="name" value=""></td>
	</tr>
	<tr>
		<td>나이</td>
		<td><input name="age" value=""></td>
	</tr>
	<tr>
		<td>성별</td>
		<td><input name="gender" value=""></td>
	</tr>
	<tr>
		<td>메일주소</td>
		<td><input name="email" value=""></td>
	</tr>
	<tr>
		<td>회원등급</td>
		<td><input name="level" value=""></td>
	</tr>
	<tr>
		<td></td>
		<td><button>추가 완료</button></td>
	</tr>
</table>
</form>

</center>

 
admin > controller > Modify.java

package admin.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 dao.AdminMemberDAO;
import model.Member;


@WebServlet("/admin/member/modify")
public class Modify extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    
    public Modify() {
        super();
    }

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//DB 연결하고 나머지 정보들 불러오기
		
		String id = request.getParameter("id");
		
		AdminMemberDAO adao = new AdminMemberDAO();
		
		Member m = adao.oneMember(id);
		
		request.setAttribute("modify", m);
		
		RequestDispatcher dis = request.getRequestDispatcher("modify.jsp");
		dis.forward(request, response);	
		
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//form 실행 후 update
		request.setCharacterEncoding("utf-8");
		
		Member m = new Member();
		
		m.setId(request.getParameter("id"));
		m.setPass(request.getParameter("pass"));
		m.setName(request.getParameter("name"));
		m.setAge(Integer.parseInt(request.getParameter("age")));
		m.setGender(request.getParameter("gender"));
		m.setEmail(request.getParameter("email"));
		m.setLevel(request.getParameter("level"));
		
		AdminMemberDAO adao = new AdminMemberDAO();
		
		adao.updateMember(m);
		
		response.sendRedirect("/admin/member/modify?id="+m.getId());
		
		
	}

}

 
admin > member > modify.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/admin/include/header.jsp" %>

<table width=400 border=0 align=center>
	<tr>
		<td align=center class="td_title">수정</td>
	</tr>
</table>

<form action="modify" method="post"> <!-- 실행하면 dopost 실행(update) -->
<table width=400 border=1 align=center>
	<tr>
		<td>아이디</td>
		<td><input name="id" value="${modify.id}"></td>
	</tr>
	<tr>
		<td>비밀번호</td>
		<td><input name="pass" value="${modify.pass}"></td>
	</tr>
	<tr>
		<td>이름</td>
		<td><input name="name" value="${modify.name}"></td>
	</tr>
	<tr>
		<td>나이</td>
		<td><input name="age" value="${modify.age}"></td>
	</tr>
	<tr>
		<td>성별</td>
		<td><input name="gender" value="${modify.gender}"></td>
	</tr>
	<tr>
		<td>메일주소</td>
		<td><input name="email" value="${modify.email}"></td>
	</tr>
	<tr>
		<td>회원등급</td>
		<td><input name="level" value="${modify.level}"></td>
	</tr>
	<tr>
		<td></td>
		<td><button>수정완료</button></td>
	</tr>
</table>
</form>



<%@ include file="/admin/include/footer.jsp" %>

 
admin > controller > Delete.java

package admin.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 dao.AdminMemberDAO;
import model.Member;


@WebServlet("/admin/member/delete")
public class Delete extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    
    public Delete() {
        super();
    }

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//DB 연결하고 나머지 정보들 불러오기
		
		String id = request.getParameter("id");
		
		Member m = new Member();		
				
		AdminMemberDAO adao = new AdminMemberDAO();
		
		adao.deleteMember(id);
		
		response.sendRedirect("/admin/member/list");
		
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	}

}

'JAVA > model2' 카테고리의 다른 글

230228_web2(5)-첨부파일  (0) 2023.02.28
230228_web2(4)-회원목록  (0) 2023.02.28
230224 _ EL -- 연산, 피라미드  (1) 2023.02.24
230223 _ Scope, parameter vs attribute, 쿠키, pstmt  (0) 2023.02.23
23.02.22_EL,JSTL,servlet 등  (0) 2023.02.22
profile

데일리로그C:

@망밍

포스팅이 도움됐다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...