Spring 회원가입 dto - Spring hoewongaib dto

[4] 스프링(Spring Tools 4) DB : home.jsp에서 Dto 사용

Spring 회원가입 dto - Spring hoewongaib dto

1. 스프링(Spring Tools 4) DB : home.jsp에서 Dto 사용

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head><title>Home</title></head>
<body>
<h2>Hello world!  </h2>
<P>

<c:forEach var="dto" items="${list}">
 ${dto.idx}/${dto.name}<br>
</c:forEach>
</P>
</body>
</html>

Spring 회원가입 dto - Spring hoewongaib dto

- 지난 시간 작업 내용 

https://skillazit.tistory.com/39

[JSP] 톰캣 + mariadb 간단한 회원 등록 예제

오늘은 jsp 의 기초 동작 원리를 파악하기 위해 샘플 페이지를 만들었다. ui는 신경쓰지 않았고 maria db 를 통한 crud 기초 기능을 구현하였다. - 사용환경 - 이클립스 최신버전설치 - create project - web

skillazit.tistory.com

Spring 회원가입 dto - Spring hoewongaib dto

- 첫번째 시간에 JSP 페이지를 만들었을때 서버연결 소스코드를 각페이지마다 적고 

DB에 전송할 파라미터가 하나로 정리되지 않은 현상을 겪었을 것이다. 

DAO, DTO 를 사용해 기존 코드를 수정하였다. 

DAO : DB에 접근하는 객체

여러 사용자가 하나의 DAO 인터페이스를 사용하여 필요한 자료에 접근

DTO : 계층간 데이터 교환을 위한 자바 빈즈

로직을 가지지 않으며, getter/setter 메소드만 가진다.

- Index.jsp (메인 페이지)

<%@page import="member.MemberDTO"%>
<%@page import="java.util.ArrayList"%>
<%@page import="member.MemberDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="java.sql.*"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	MemberDAO dao = new MemberDAO();
	ArrayList<MemberDTO> memberList = dao.selectAll();
	out.print("<table border =" + "2 " + "width =" + "700 " + "align ="
            + "center " + "bordercolor =" + "green " + "cellspacing ="
            + "2 " + " bordercolor =" + "green >");
	for(MemberDTO member: memberList) {
		out.print("<tr><td>" + member.getId() + "</td>");
		out.print("<td>" + member.getPass() + "</td>");
		out.print("<td>" + member.getName() + "</td>");
		out.print("<td>" + member.getPhone() + "</td>");
		out.print("<td>" + member.getAddress() + "</td>");
		String update = String.format("<a href='/member/UpdateMember.jsp?id=%s'>수정</a> ", member.getId());
		out.print("<td>" + update);
		String delete = String.format("<a href='/member/DeleteMember.jsp?id=%s'>삭제</a>", member.getId());
		out.print(delete + "</td></tr>");
	}
	out.print("</table>");
%>
<br />
<h2>학생 정보 입력</h2>
	<form action="./member/AddMember.jsp">
		<table border="1">
			<tr>
				<th>학번</th>
				<th><input type="text" name="id" value="500"></th>
			</tr>
			<tr>
				<th>계정</th>
				<th><input type="text" name="pass" value="yu500"></th>
			</tr>
			<tr>
				<th>이름</th>
				<th><input type="text" name="name" value="유지환"></th>
			</tr>
			<tr>
				<th>연락처</th>
				<th><input type="text" name="phone" value="219-7125"></th>
			</tr>
			<tr>
				<th>주소</th>
				<th><input type="text" name="address" value="인천"></th>
			</tr>
		</table>
		<br>
		<button type="submit">추가</button>
	</form>
</body>
</html>

- AddMember.jsp (추가 페이지)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="java.sql.*"%>
<%@page import="member.MemberDTO"%>
<%@page import="member.MemberDAO"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	request.setCharacterEncoding("UTF-8");
	String id = request.getParameter("id");
	String pass = request.getParameter("pass");
	String name = request.getParameter("name");
	String phone = request.getParameter("phone");
	String address = request.getParameter("address");
	int result = 0; 
	MemberDAO dao = new MemberDAO();
	MemberDTO member = new MemberDTO();
	
	member.setId(Integer.parseInt(id));
    member.setPass(pass);
    member.setName(name);
    member.setPhone(phone);
    member.setAddress(address);
    result = dao.insert(member);
    if (result > 0) {
    	out.println("레코드" + "insert" + " 성공");
    }
%>
<br />
<h3><a href="../Index.jsp">처음으로</a></h3>
</body>
</html>

- UpdateMember.jsp (수정 페이지)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="java.sql.*"%>
<%@page import="member.MemberDTO"%>
<%@page import="member.MemberDAO"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	request.setCharacterEncoding("UTF-8");
	String id = request.getParameter("id");
	MemberDAO dao = new MemberDAO();
	MemberDTO member = dao.select(Integer.parseInt(id));
	
	Class.forName("org.mariadb.jdbc.Driver");
	String url = "jdbc:mariadb://localhost:3406/example_db";
	String user = "user";
	String pw = "user124#";
	String pass = "";
    String name = "";
    String phone = "";
    String address = "";
    
    pass = member.getPass();
 	name = member.getName();
 	phone = member.getPhone();
 	address = member.getAddress();

%>
<!-- html 생략 -->

- DeleteMember.jsp (삭제 페이지)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="java.sql.*"%>
<%@page import="member.MemberDTO"%>
<%@page import="member.MemberDAO"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	request.setCharacterEncoding("UTF-8");
	String id = request.getParameter("id");
	MemberDAO dao = new MemberDAO();
	MemberDTO member = dao.select(Integer.parseInt(id));

	Class.forName("org.mariadb.jdbc.Driver");
	String url = "jdbc:mariadb://localhost:3406/example_db";
	String user = "user";
	String pw = "user124#";
	String pass = "";
	String name = "";
	String phone = "";
	String address = "";

	pass = member.getPass();
	name = member.getName();
	phone = member.getPhone();
	address = member.getAddress();
%>
<!-- html 생략 -->

- WorkFinish.jsp (수정, 삭제 후 완료 화면)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="java.sql.*"%>
<%@page import="member.MemberDTO"%>
<%@page import="member.MemberDAO"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	Class.forName("org.mariadb.jdbc.Driver");
	String url = "jdbc:mariadb://localhost:3406/example_db";
	String user = "user";
	String pw = "user124#";
	
	String id = request.getParameter("id");
	String pass = request.getParameter("pass");
    String name = request.getParameter("name");
    String phone = request.getParameter("phone");
    String address = request.getParameter("address");
    String sql = request.getParameter("id");
    String pagetype = request.getParameter("pagetype");
    MemberDTO member = new MemberDTO();
    MemberDAO dao = new MemberDAO();
    int result = 0; 
    member.setId(Integer.parseInt(id));
    member.setPass(pass);
    member.setName(name);
    member.setPhone(phone);
    member.setAddress(address);
    result = dao.update(member);
    if (result > 0) {
    	out.println("레코드" + pagetype + " 성공");
    }
%>
<br />
<h3><a href="../Index.jsp">초기 화면</a></h3>
</body>
</html>

dao, dto 개념을 사용하여 소스코드가 간결해졌다.