src (Product)
|
| --- Controller : 요청을 받아 모델을 호출하고, 모델에서 반환된 데이터를 뷰로 전달
| < ProductController.java >
| 1. ProductService(interface) 객체 생성
| - 이 인터페이스 객체에 ProductServiceImpl.getInstance() 값 저장.
| - 이렇게 하면, 코드를 변경하지 않고도 동일한 인터페이스를 사용하여 다른 구현체를 사용할 수 있다.
| - 만약 -impl가 아니고 다른 dao 객체를 적용하고 싶다면
| 객체에 다른 dao객체.getInstance()값으로 저장하면 된다.
|
|
| 2. init()
| - Alt + Shift + s + v + GeneralServlet에서 상속
| - 초기화 단계에서 최초 실행, 구현체를 참조하는 인터페이스 객체를 대입
|
|
| 3. doPost(request, response)
| POST는 form 태그 등에서 입력받은 값들을 저장한 값들을 거쳐 다시 doGet으로 이동할 것이다.
| GET은 주로 조회용으로 사용하고, 전송할 데이터가 많아지면 utl이 길어져서 전송할 수 없기 때문.
| - request.setCharcterEncoding("utf-8"); //인코딩 설정 변경
| - action 변수 입력받음 : request.getParameter("action");
|
|
| --- Model 데이터와 데이터 처리를 담당(dto, dao, service)
| ㄴ dto : 데이터 전송 객체. 데이터 저장에 필요한 정보를 가진 클래스. 일반적으로 DB 테이블과 유사
| ㄴ dao : 데이터베이스에 접근, CRUD(Create, Read, Update, Delete) 메서드를 제공
| ㄴ service: DAO에서 처리한 데이터를 가공하고, 비즈니스 로직을 수행
|
| < dto >
| 1. Product.java : DB 테이블과 동일 요소(code,model,price)를 가진 객체 (+Getter/Setter)
|
| < dao >
| 2. ProductDaoImpl.java
| - DButil 객체 db 생성, 싱글톤 객체 생성( 선언한 dbUtil 객체에 인스턴스 주입)
| - insertProduct(Product product) : 삽입(insert into) 메서드
| - selectProduct() : 조회(select) 메서드 - List<Product>로 반환
|
| -> Product는 dto 데이터 전송 객체이다.
| 이것을 이용하여 db와의 삽입, 조회를 실행하는 기능을 포함한 dao 파일을 생성하였다.
| 해당 파일은 Service에서 객체로 생성되어 기능을 사용하게 된다.
|
| < service >
| 1. ProductServiceImpl.java
| - dao객체 생성(ProductDaoImpl)
| - 싱글톤 패턴 주입 (선언한 dao객체에 인스턴스 주입)
| - regist(Product product) : dao 객체의 삽입 메서드(insertProduct) 수행
| - list() : dao 객체의 조회 메서드(selectProduct()) 수행 후 List<Product> 반환
|
|
|
|
|
| ---- View (JSP)
|
| ---- DBUtil : jdbc Connection 제공
|
|
src (member) : 로그인, 로그아웃 실행