MVC 패턴
http://localhost:8090/shop/main
웹브라우저 ---------------> MainServlet ("/main")
| 요청 위임 (forward / redirect)
main.jsp (전체 화면, webapp 폴더에 저장,
top, menu, 컨텐츠 해당.jsp include 함)
웹브라우저 ---------------> MemberUIServlet ("/signup")
| 요청 위임 (forward / redirect)
<---------- memberForm.jsp ( 전체화면, webapp 폴더에 저장,
top.jsp, menu.jsp, 컨텐츠 해당.jsp include 함)
memberForm.jsp 에서 Ajax요청 ("/idCheck") MemberService
id입력후 [아이디중복]버튼 클릭 ----------> MemberIdCheckServlet--->MemberServiceImpl<--->MemberDAO
<----------
반환값(사용가능|사용불가) MemberDTO.java
<!-- jQuery 설치 -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
("/MemberAddServlet")
저장 ----------------> MemberAddSevlet -------> MemberServiceImpl -----> MemberDAO
doPost 처리
request.setCharacterEncoding("utf-8")
|
<----------------- jsp
웹브라우저 ----------------> LoginUIServlet ("/login")
| 요청 위임 (forward / redirect)
<----------------- loginForm.jsp
id/pw
웹브라우저 ------> LoginServlet ("/login-exec") -----> MemberServiceImpl ----> MemberDAO
| 요청 위임 (forward / redirect)
<-------- jsp
웹브라우저 --------------> LogoutServlet ("/logout")
|
| 요청 위임 (forward / redirect)
<---------------- jsp
웹브라우저 ------> MyPageServlet ("/mypage") -------> MemberServiceImpl -------> MemberDAO
| 요청위임(forward/redirect)
<------ mypage.jsp
/main?gCategory=top
웹브라우저 -----> MainServlet ("/main") -----> GoodsServiceImpl -------> GoodsDAO
| 요청 위임 (forward / redirect)
<----- main.jsp
?gCode=값
웹브라우저 ---> GoodsRetrieveServlet ("/goodsRetrieve") ---> GoodsServiceImpl ---> GoodsDAO
| 요청 위임 (forward / redirect)
<----- goodsRetrieve.jsp
웹브라우저 ----> CartAddServlet ("/cartAdd") --> CartServiceImpl -------> CartDAO
| 요청위임(forward/redirect)
<---------- jsp
CartService
웹브라우저 ----> CartListServlet ("/cartList") --> CartServiceImpl -------> CartDAO
| 요청위임(forward/redirect)
<---------- cartList.jsp
public class CartServiceImpl implments CartService{
CartDAO cartDAO; //null
public CartServiceImpl(CartDAO cartDAO){
this.cartDAO =cartDAO;
}
public void setCartDAO(CartDAO cartDAO){
this.cartDAO =cartDAO;
}
CartService service = new CartServiceImpl(new CartDAO());
CartService service = new CartServiceImpl();
service.setCartDAO(new CartDAO());
==> CartServiceImpl 와 CartDAO 간에 의존성이 생겼고
개발자가 명시적으로 CartServiceImpl에 CartDAO를 생성해서 값을 전달해줌