!!총정리!!
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 |