데이터들을 담은 객체
,Bean
이라고 부른다.입력한 값
을 객체 형태
로 받을 수 있게 클래스 구성입력된 데이터들
은 하나의 DTO 객체
로 변환 가능데이터베이스
레코드를 저장
하여 레코드와 같은 구조를 가진다.입력된 데이터들
-> 하나의 DTO 객체
-> DB에서 한 행으로 저장
다른 시스템으로 전달
하는 작업을 처리하는 객체이다. (데이터를 담아서 전달하는 역할만 한다.)1.사용자가 요청을 보내면 컨트롤러에서 먼저 받는다.
2. 컨트롤러에서 model 영역으로 데이터를 보내야 한다고 판단하면,
DTO 객체로 데이터를 전송한다.
3. 데이터를 전송
할때는 getParameter, setParameter를 하는 것이 아니고,
DTO 객체로 전달
하는 것이다.
4. 컨트롤러가 DTO 객체로 데이터를 Model 영역으로 넘겨주면,
데이터를 그대로 넘겨받을 수도 있고
, 비즈니스 로직에 따라 데이터를 가공할 수 도 있다
. ( ex) 비밀번호 암호화 등등)
5. 데이터를 가공하는 영역을 Business, Service, Object 영역이라고 하고,
데이터를 비즈니스 로직에 처리하는 부분
을 Service 영역
이라고 한다.
만약 데이터의 가공이 필요가 없거나, 로직이 복잡하지 않다면
service 영역을 만들지 않기도 한다
.
6. 가공하면서 객체를 생성하거나, 로직이 길어질 수 있기 때문에
직접적으로 DB에 접근하는 자바 클래스 파일 영역
을 DAO
라고 한다.
접근
, 데이터를 관리
하기 위한 객체
(추가, 수정, 삭제, 읽기)
하는여러 메소드들이 정의
되어 있다.insert, delete, select, update
등 레코드 처리
를 주 목적으로 한다.직접적
으로 DB와 connection
DTO/VO 객체
를 데이터베이스 서버에 저장
한다.레코드
를 select
한 후,DTO 객체로 변경
해 가져옴SQL을 직접 수행
하는 기능을 가진다.데이터 접근
을 목적으로 하는 객체이다.패키지와 파일 생성
UserDTO
package com.koit.web.dto; public class UserDTO { //데이터를 담는 객체 private String userid; private String userpw; private String username; private String userphone; public String getUserid() { return userid; } public void setUserid(String userid) { this.userid = userid; } public String getUserpw() { return userpw; } public void setUserpw(String userpw) { this.userpw = userpw; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getUserphone() { return userphone; } public void setUserphone(String userphone) { this.userphone = userphone; } }
package com.koit.web.dao; import com.koit.web.dto.UserDTO; public class UserDAO { // DB 커넥션 맺는 곳 (insert, update, select, delete) //-> CRUD와 관련된 query문은 DAO에서 정의! // 회원가입 (DTO, DAO) , 게시판 (DTO, DAO) 다 따로 만들어지는 것! public boolean join(UserDTO dto) { //회원가입에 대한 정보는 UserDTO에 담겨져있음 //DB 처리 // 비지니스로직, 서비스 영역 return true; } }
<%@page import="com.koit.web.dto.UserDTO"%> <%@page import="com.koit.web.dao.UserDAO"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% //컨트롤러역할이 jsp파일로되어있으면 MVC1 String userid = request.getParameter("userid"); String userpw = request.getParameter("userpw"); String username = request.getParameter("username"); String userphone = request.getParameter("userphone"); UserDAO udao = new UserDAO(); UserDTO udto = new UserDTO(); //data set udto.setUserid(userid); udto.setUserpw(userpw); udto.setUsername(username); udto.setUserphone(userphone); boolean check = udao.join(udto); if(check){ //가입성공 }else{ //가입실패 } %> </body> </html>
/join
으로 연결된 자바파일이 컨트롤러!package com.koit.web.servlet; import java.io.IOException; 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 com.koit.web.dao.UserDAO; import com.koit.web.dto.UserDTO; @WebServlet("/join") public class JoinServlet extends HttpServlet{ //컨트롤러 영역을 자바파일로 만들면 MVC2패턴! @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String userid = req.getParameter("userid"); String userpw = req.getParameter("userpw"); String username = req.getParameter("username"); String userphone = req.getParameter("userphone"); UserDAO udao = new UserDAO(); UserDTO udto = new UserDTO(); //data set udto.setUserid(userid); udto.setUserpw(userpw); udto.setUsername(username); udto.setUserphone(userphone); boolean check = udao.join(udto); if(check){ //가입성공 }else{ //가입실패 } } }