회원가입
- 회원정보 수정
- listMembers.jsp 수정
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="contextPath" value="${pageContext.request.contextPath}"/>
<%
request.setCharacterEncoding("utf-8");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원정보 출력</title>
<c:choose>
<c:when test="${msg=='addMember'}"> ////
<script>
alert("회원을 등록했습니다");
</script>
</c:when>
<c:when test="${msg=='modified'}"> ////
<script>
alert("정보가 수정됐습니다");
</script>
</c:when>
<c:when test="${msg=='deleted'}"> ////
<script>
alert("정보가 삭제됐습니다");
</script>
</c:when>
</c:choose>
</head>
<body>
<h2 align="center">회원정보</h2>
<table align="center" border="1">
<tr align="center" bgcolor="beige">
<th>아이디</th><th>비밀번호</th><th>이름</th><th>이메일</th><th>가입일</th><th>수정</th><th>삭제</th>
</tr>
<c:choose>
<c:when test="${empty memberList}">
<tr>
<td colspan="7" align="center">등록된 회원이 없습니다.</td>
</tr>
</c:when>
<c:when test="${not empty memberList}">
<c:forEach var="member" items="${memberList}">
<tr align="center">
<td>${member.id }</td>
<td>${member.pwd }</td>
<td>${member.name }</td>
<td>${member.email }</td>
<td>${member.joinDate }</td>
<td><a href="${contextPath}/member/modMemberForm.do?id=${member.id}">수정</a></td> ////
<td><a href="${contextPath}/member/delMember.do?id=${member.id}">삭제</a></td> ////
</tr>
</c:forEach>
</c:when>
</c:choose>
</table>
<p align="center"><a href="${contextPath}/member/memberForm.do">회원가입</a></p>
</body>
</html>
- MemberController
package jspMVC.ex01;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@WebServlet("/member/*")
public class MemberController extends HttpServlet {
MemberDAO memberDAO;
public void init(ServletConfig config) throws ServletException {
memberDAO=new MemberDAO(); //모델 객체 생성
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doHandle(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doHandle(request, response);
}
private void doHandle(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String nextPage=null;
String action = request.getPathInfo(); //URL 확장이 있는 리소스에 대한 추가 경로 정보
System.out.println("요청명 : " + action);
if (action==null||action.equals("/listMembers.do")) {
List<MemberVO> memberList = memberDAO.listMembers();
request.setAttribute("memberList", memberList);
nextPage = "/listMembers.jsp";
} else if (action.equals("/memberForm.do")) {
nextPage="/memberForm.jsp";
} else if (action.equals("/addMember.do")){
String id = request.getParameter("id");
String pwd = request.getParameter("pwd");
String name = request.getParameter("name");
String email = request.getParameter("email");
MemberVO memberVO = new MemberVO(id,pwd,name,email);
memberDAO.addMember(memberVO);
request.setAttribute("msg", "addMember");
nextPage="/member/listMembers.do";
} else if (action.equals("/modMemberForm.do")) { //회원정보 수정 폼
String id = request.getParameter("id");
MemberVO memberVO = memberDAO.findMember(id); //id에 해당하는 회원 객체 가져옴
request.setAttribute("memberInfo", memberVO);
nextPage="/modMemberForm.jsp"; //포워드
} else if (action.equals("/modMember.do")) { //submit, db 회원정보 수정
String id = request.getParameter("id");
String pwd = request.getParameter("pwd");
String name = request.getParameter("name");
String email = request.getParameter("email");
MemberVO memberVO = new MemberVO(id,pwd,name,email);
memberDAO.modMember(memberVO);
request.setAttribute("msg", "modified");
nextPage="/member/listMembers.do"; //포워드
}
RequestDispatcher rd = request.getRequestDispatcher(nextPage);
rd.forward(request, response);
}
}
- MemberDAO
package jspMVC.ex01;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class MemberDAO {
private DataSource dataFactory;
private Connection con;
private PreparedStatement ps;
public MemberDAO() {
try {
Context ctx=new InitialContext();
Context envContext=(Context)ctx.lookup("java:/comp/env");
dataFactory=(DataSource) envContext.lookup("jdbc/oracle");
}catch(Exception e){
System.out.println("DB 연결 중 에러");
}
}
//전체 회원정보 조회
public List<MemberVO> listMembers(){
List<MemberVO> memberList = new ArrayList();
try {
con=dataFactory.getConnection();
String query="select * from member_list order by joindate desc";
System.out.println(query);
ps=con.prepareStatement(query);
ResultSet rs = ps.executeQuery();
while(rs.next()) {
String id = rs.getString("id");
String pwd = rs.getString("pwd");
String name = rs.getString("name");
String email = rs.getString("email");
Date joinDate = rs.getDate("joindate");
MemberVO memberVO = new MemberVO(id, pwd, name, email, joinDate);
memberList.add(memberVO);
}
rs.close();
ps.close();
con.close();
} catch(Exception e) {
System.out.println("쿼리 작성 중 에러");
}
return memberList;
}
//회원가입
public void addMember(MemberVO mem) {
try {
con=dataFactory.getConnection();
String id = mem.getId();
String pwd = mem.getPwd();
String name = mem.getName();
String email = mem.getEmail();
String query="insert into member_list(id,pwd,name,email) values(?,?,?,?)";
System.out.println(query);
ps=con.prepareStatement(query);
ps.setString(1, id);
ps.setString(2, pwd);
ps.setString(3, name);
ps.setString(4, email);
ps.executeUpdate();
ps.close();
con.close();
}catch(Exception e) {
System.out.println("DB 추가 중 에러");
}
}
//일치하는 회원정보 찾기
public MemberVO findMember(String _id) {
MemberVO memberInfo=null;
try {
con=dataFactory.getConnection();
String query = "select * from member_list where id=?"; ////
ps=con.prepareStatement(query);
ps.setString(1, _id);
System.out.println(query);
ResultSet rs = ps.executeQuery();
rs.next();
String id=rs.getString(1);
String pwd = rs.getString(2);
String name = rs.getString(3);
String email = rs.getString(4);
Date joinDate = rs.getDate(5);
memberInfo = new MemberVO(id, pwd, name, email, joinDate); ////
ps.close();
con.close();
rs.close();
} catch (Exception e) {
System.out.println("DB에서 회원정보 찾는 중 에러");
}
return memberInfo;
}
//회원정보 수정
public void modMember(MemberVO mem) { ////
try {
String id = mem.getId();
String pwd = mem.getPwd();
String name = mem.getName();
String email = mem.getEmail();
con=dataFactory.getConnection();
String query = "update member_list set pwd=?,name=?,email=? where id=?"; ////
ps=con.prepareStatement(query);
ps.setString(1, pwd);
ps.setString(2, name);
ps.setString(3, email);
ps.setString(4, id);
ps.executeUpdate();
System.out.println(query);
ps.close();
con.close();
} catch(Exception e) {
System.out.println("DB에서 회원정보 수정 중 에러");
}
}
}
- modMemberForm.jsp (회원정보 수정창)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="contextPath" value="${pageContext.request.contextPath}"/>
<% request.setCharacterEncoding("utf-8"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원가입</title>
</head>
<body>
<form action="${contextPath}/member/modMember.do?id=${memberInfo.id}" method="post"> ////
<h2 align="center">회원정보 수정창</h2>
<table align="center">
<tr>
<td width="200"><p align="right">아이디</p></td>
<td width="400"><input type="text" name="id" value="${memberInfo.id}" disabled></td> ////
</tr>
<tr>
<td width="200"><p align="right">비밀번호</td>
<td width="400"><input type="text" name="pwd" value="${memberInfo.pwd}"></td> ////
</tr>
<tr>
<td width="200"><p align="right">이름</p></td>
<td width="400"><input type="text" name="name" value="${memberInfo.name}"></td> ////
</tr>
<tr>
<td width="200"><p align="right">이메일</p></td>
<td width="400"><input type="text" name="email" value="${memberInfo.email}"></td> ////
</tr>
<tr>
<td width="200"><p align="right">가입일</p></td>
<td width="400"><input type="text" name="joinDate" value="${memberInfo.joinDate}" disabled></td> ////
</tr>
</table>
<input type="submit" value="수정하기"> <input type="reset" value="다시 입력">
</form>
</body>
</html>
- 회원정보 삭제
- MemberController
package jspMVC.ex01;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@WebServlet("/member/*")
public class MemberController extends HttpServlet {
MemberDAO memberDAO;
public void init(ServletConfig config) throws ServletException {
memberDAO=new MemberDAO(); //모델 객체 생성
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doHandle(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doHandle(request, response);
}
private void doHandle(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String nextPage=null;
String action = request.getPathInfo(); //URL 확장이 있는 리소스에 대한 추가 경로 정보
System.out.println("요청명 : " + action);
if (action==null||action.equals("/listMembers.do")) {
List<MemberVO> memberList = memberDAO.listMembers();
request.setAttribute("memberList", memberList);
nextPage = "/listMembers.jsp";
} else if (action.equals("/memberForm.do")) {
nextPage="/memberForm.jsp";
} else if (action.equals("/addMember.do")){
String id = request.getParameter("id");
String pwd = request.getParameter("pwd");
String name = request.getParameter("name");
String email = request.getParameter("email");
MemberVO memberVO = new MemberVO(id,pwd,name,email);
memberDAO.addMember(memberVO);
request.setAttribute("msg", "addMember");
nextPage="/member/listMembers.do";
} else if (action.equals("/modMemberForm.do")) { //회원정보 수정 폼
String id = request.getParameter("id");
MemberVO memberVO = memberDAO.findMember(id); //id에 해당하는 회원 객체 가져옴
request.setAttribute("memberInfo", memberVO);
nextPage="/modMemberForm.jsp";
} else if (action.equals("/modMember.do")) { //submit, db 회원정보 수정
String id = request.getParameter("id");
String pwd = request.getParameter("pwd");
String name = request.getParameter("name");
String email = request.getParameter("email");
MemberVO memberVO = new MemberVO(id,pwd,name,email);
memberDAO.modMember(memberVO);
request.setAttribute("msg", "modified");
nextPage="/member/listMembers.do";
} else if (action.equals("/delMember.do")){ //회원정보 삭제
String id = request.getParameter("id");
memberDAO.delMember(id);
request.setAttribute("msg", "deleted");
nextPage="/member/listMembers.do";
}
RequestDispatcher rd = request.getRequestDispatcher(nextPage);
rd.forward(request, response);
}
}
- MemberDAO
package jspMVC.ex01;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class MemberDAO {
private DataSource dataFactory;
private Connection con;
private PreparedStatement ps;
public MemberDAO() {
try {
Context ctx=new InitialContext();
Context envContext=(Context)ctx.lookup("java:/comp/env");
dataFactory=(DataSource) envContext.lookup("jdbc/oracle");
}catch(Exception e){
System.out.println("DB 연결 중 에러");
}
}
//전체 회원정보 조회
public List<MemberVO> listMembers(){
List<MemberVO> memberList = new ArrayList();
try {
con=dataFactory.getConnection();
String query="select * from member_list order by joindate desc";
System.out.println(query);
ps=con.prepareStatement(query);
ResultSet rs = ps.executeQuery();
while(rs.next()) {
String id = rs.getString("id");
String pwd = rs.getString("pwd");
String name = rs.getString("name");
String email = rs.getString("email");
Date joinDate = rs.getDate("joindate");
MemberVO memberVO = new MemberVO(id, pwd, name, email, joinDate);
memberList.add(memberVO);
}
rs.close();
ps.close();
con.close();
} catch(Exception e) {
System.out.println("쿼리 작성 중 에러");
}
return memberList;
}
//회원가입
public void addMember(MemberVO mem) {
try {
con=dataFactory.getConnection();
String id = mem.getId();
String pwd = mem.getPwd();
String name = mem.getName();
String email = mem.getEmail();
String query="insert into member_list(id,pwd,name,email) values(?,?,?,?)";
System.out.println(query);
ps=con.prepareStatement(query);
ps.setString(1, id);
ps.setString(2, pwd);
ps.setString(3, name);
ps.setString(4, email);
ps.executeUpdate();
ps.close();
con.close();
}catch(Exception e) {
System.out.println("DB 추가 중 에러");
}
}
//일치하는 회원정보 찾기
public MemberVO findMember(String _id) {
MemberVO memberInfo=null;
try {
con=dataFactory.getConnection();
String query = "select * from member_list where id=?";
ps=con.prepareStatement(query);
ps.setString(1, _id);
System.out.println(query);
ResultSet rs = ps.executeQuery();
rs.next();
String id=rs.getString("id");
String pwd = rs.getString("pwd");
String name = rs.getString("name");
String email = rs.getString("email");
Date joinDate = rs.getDate("joindate");
memberInfo = new MemberVO(id, pwd, name, email, joinDate);
ps.close();
con.close();
rs.close();
} catch (Exception e) {
System.out.println("DB에서 회원정보 찾는 중 에러");
}
return memberInfo;
}
//회원정보 수정
public void modMember(MemberVO mem) {
try {
String id = mem.getId();
String pwd = mem.getPwd();
String name = mem.getName();
String email = mem.getEmail();
con=dataFactory.getConnection();
String query = "update member_list set pwd=?,name=?,email=? where id=?";
ps=con.prepareStatement(query);
ps.setString(1, pwd);
ps.setString(2, name);
ps.setString(3, email);
ps.setString(4, id);
ps.executeUpdate();
System.out.println(query);
ps.close();
con.close();
} catch(Exception e) {
System.out.println("DB에서 회원정보 수정 중 에러");
}
}
//회원정보 삭제
public void delMember(String id) { ////
try {
con=dataFactory.getConnection();
String query = "delete from member_list where id=?"; ////
ps=con.prepareStatement(query);
ps.setString(1, id);
ps.executeUpdate();
System.out.println(query);
ps.close();
con.close();
}catch(Exception e) {
System.out.println("데이터 삭제 중 오류");
}
}
}
문의게시판
board_qna 테이블 생성 => 제약조건 - 외래키 추가 (fk_id)
쿼리 작성, 목록 완성해두기
insert into board_qna (articleno, parentno, title, content, imagefile, writedate, id)
values(2,0,'상품후기','후기입니다',null,sysdate,'park');
insert into board_qna (articleno, parentno, title, content, imagefile, writedate, id)
values(3,2,'좋아요','저도 샀는데 좋습니다',null,sysdate,'kim');
insert into board_qna (articleno, parentno, title, content, imagefile, writedate, id)
values(4,0,'배송이 늦어요','언제 도착하나요',null,sysdate,'han');
insert into board_qna (articleno, parentno, title, content, imagefile, writedate, id)
values(5,4,'저도 못 받았습니다','빨리 배송해주세요',null,sysdate,'hong');
insert into board_qna (articleno, parentno, title, content, imagefile, writedate, id)
values(6,5,'빨리 배송드리겠습니다','죄송합니다',null,sysdate,'baek');
insert into board_qna (articleno, parentno, title, content, imagefile, writedate, id)
values(7,0,'테스트글','안녕하세요',null,sysdate,'hong');
※ 톰캣9 설치
- 글 목록 보기
- BoardController
package jspMVC.ex02;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
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 jspMVC.ex01.MemberDAO;
@WebServlet("/board/*")
public class BoardController extends HttpServlet {
BoardService bs;
ArticleVO vo;
public void init(ServletConfig config) throws ServletException {
bs= new BoardService();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doHandle(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doHandle(request, response);
}
private void doHandle(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String nextPage = "";
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String action=request.getPathInfo(); //요청명 가져옴
System.out.println(action);
List<ArticleVO> articleList = new ArrayList<ArticleVO>();
if (action==null||action.equals("/listArticles.do")) {
articleList = bs.listArticles();
}
RequestDispatcher rd = request.getRequestDispatcher(nextPage);
rd.forward(request, response);
}
}
- BoardService
package jspMVC.ex02;
import java.util.List;
public class BoardService {
BoardDAO boardDAO;
public BoardService() {
boardDAO = new BoardDAO();
}
public List<ArticleVO> listArticles(){
List<ArticleVO> articleList = boardDAO.selectAllArticles();
return articleList;
}
}
- BoardDAO
package jspMVC.ex02;
import java.util.ArrayList;
import java.util.List;
public class BoardDAO {
//게시판 글 목록
public List<ArticleVO> selectAllArticles(){
List<ArticleVO> articleList = new ArrayList<ArticleVO>();
return articleList;
}
}
'Programming > 국비학원' 카테고리의 다른 글
221031 - MVC - 글 작성 기능 (0) | 2022.11.01 |
---|---|
221028 - MVC 게시판 - 문의게시판 목록(계층형 쿼리), 글 작성 (0) | 2022.10.29 |
221026 - AJAX - JSON 데이터 교환 / MVC - 회원정보 조회, 회원 등록 (0) | 2022.10.27 |
221025 - Ajax 비동기 통신 ( jsp, 서블릿 / 스프링 ) (0) | 2022.10.25 |
221024 - 리눅스 - GNOME, GRUB2, nautilus (0) | 2022.10.25 |