본문 바로가기

JSP

DBCP - VO, DAO, Servlet을 이용한 회원가입

1. MemberVO 클래스 작성

 

* VO(Value Object)

- 회원 정보를 저장할 공간

- 회원 정보를 하나로 묶어서 저장 = 가방 안에 다 때려 넣는다

- 자바 빈을 데이터베이스와 접목할 경우 VO라고 함

- DTO(Data Transfer Object) = VO = 자바 빈

- private 속성 / setter(저장) / getter(조회) 메서드로 구성

 

 

 

 

 

2. JoinServlet 파일의 doGet() 메서드 작성

- 로직의 시작과 끝을 담당하는 Servlet = Controller와 동일하다고 생각하자

- 주소창에 join.do 라는 입력이 들어오면, 해당 서블릿의 doGet() 메서드를 실행하라 -> 첫 번째 수행이 되는거지!

 

 

 

 

 

3. member/join.jsp 파일 작성

 

 

 

 

 

4. join.jsp 파일 확인 / member.js 파일 작성

 

 

 

 

 

5. MemberDAO 작성

 

1) DAO(Data Access Object)란?

- DB의 데이터에 접근하기 위한 객체

- 레코드의 조회, 추가, 수정, 삭제 역할

- DB 데이터를 VO 객체로 얻어오거나 VO 객체에 저장된 값을 DB에 추가

- DB와의 소통 담당. 따라서, DB 연결 관련 메서드가 존재함.

   디비 연결 관련 메서드를 따로 만들어놓고 DAO의 또다른 메서드에서 필요로 할 때마다 불러쓸거임

- 어떠한 쿼리문을 실행하는 로직. 쿼리문을 통해 나온 결과를 저장해서 리턴하는 구조.

- 쿼리문의 결과값을 반환함. 쿼리문을 처리하는 과정들이 쭉~ 담긴거라고 생각해

 

2) DAO의 싱글톤 패턴

- 원래 JSP에서는 DB에 접근할 때마다 객체를 생성하여 사용하였다. 따라서, 이러한 부하를 해결하기 위해 싱글톤 패턴으로 설계

- 싱글톤 패턴이란?

  인스턴스가 오로지 단 하나만 존재할 수 있도록 클래스를 설계하는 것

  객체를 메모리에 단 한 번만 올려놓고 시스템 전반에 걸쳐서 특정한 자원을 공유할 때 사용

  무분별한 객체 생성을 막아 메모리 낭비를 막아줌

 

// import 참고

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.sql.DataSource;

 

 

3) 회원 가입 로직 구현

 

 

 

executeUpdate() 를 실행한 결과는
1) INSERT, DELETE, UPDATE된 행의 수
2) 아무 리턴이 없으면 0
따라서 지금 상황은 1이 나와서 서블릿에서 1을 사용하는검. 상단에 초기화해놓은 것은 신경쓰지말자.

 

6. JoinServlet 파일의 doPost() 메서드 작성

- 실행 로직의 마지막도 Servlet이 담당

 

 

 


* 전체적인 로직 실행 순서

 

1) 브라우저에서 어떠한 url 요청이 들어옴

 

2) 서블릿의 doGet() 메서드로 이동

 

3) 서블릿의 doGet() 메서드 실행 

- get은 페이지 이동 역할. 해당 jsp 페이지로 이동

 

4) jsp 페이지에서 사용자의 입력 받기

 

5) 폼의 action에 의해 다시 서블릿의 doPost() 메서드로 보냄

- 폼은 보통 post로 보냄

 

6) 서블릿에서 doPost() 메서드 실행

- 일단, 폼에서 정보가 전달되면 그것들을 다 받아옴

- 그리고, 어떤 일을 하기 위해 = 메서드를 실행하기 위해 = 쿼리문을 실행한 결과를 얻기 위해

  DAO 객체를 생성해서 DB 연결 및 쿼리문을 수행하고, DAO에서 보내주는 쿼리의 결과값만 들고옴

  (예를 들어, insertMember, selectMember 이런 메서드들을 실행한 결과값 = 쿼리문의 결과값을 들고옴)

- 그리고, 그 들고온 값을 어떻게 처리할지 적어주자 (브라우저에 넘겨주거나, 세션에 저장하거나 등등)

- 마지막으로, 모든 수행을 마치면 어떤 페이지로 보내줄지 정해주자 (포워딩)

'JSP' 카테고리의 다른 글

MVC2 패턴이란?  (0) 2020.09.13
DBCP - VO, DAO, Servlet을 이용한 회원수정  (0) 2020.09.13
커넥션 풀 (DBCP)  (0) 2020.09.13
[JSP] JDBC - INSERT / PreparedStatement  (0) 2020.09.13
[JSP] JDBC - SELECT / Connection / Statement / ResultSet  (0) 2020.09.08