[신세계I&C KDT][Servlet/JSP] #34 미니 쇼핑몰 만들기 (0527)

박현아·2024년 6월 4일
0

신세계아이앤씨 KDT

목록 보기
38/42

MVC 패턴

* 환경정보

1. 메인화면 구축

http://localhost:8090/shop/main

웹브라우저 ---------------> MainServlet ("/main")
								
                                | 요청 위임 (forward / redirect)
                               
                           main.jsp (전체 화면, webapp 폴더에 저장,
                           top, menu, 컨텐츠 해당.jsp include 함)

2. 회원가입 화면 보기

웹브라우저 ---------------> MemberUIServlet ("/signup")

                          		| 요청 위임 (forward / redirect)

	 		<----------    memberForm.jsp  ( 전체화면, webapp 폴더에 저장,
	                                   top.jsp, menu.jsp, 컨텐츠 해당.jsp include 함)

3. 아이디 중복 체크 하기

memberForm.jsp 에서           Ajax요청      ("/idCheck")           MemberService
 id입력후 [아이디중복]버튼 클릭 ----------> MemberIdCheckServlet--->MemberServiceImpl<--->MemberDAO
                         <----------
			       반환값(사용가능|사용불가)          MemberDTO.java
  • member/memberForm.jsp 에 jQuery 설치
<!-- jQuery 설치 -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
  • mybatis 연동
    1) 2가지 jar 빌드 패스
    WEB/INF lib에 붙여넣기
    2) jdbc.properties
    Configuration.xml
    MemberMapper.xml
    MySqlSessionFactory.java

4. 회원 가입

  • 사용자 입력 데이터 유효성 체크 구현하기 (정보 다 입력시에만 제출되도록)
					  ("/MemberAddServlet")
저장 ----------------> MemberAddSevlet -------> MemberServiceImpl -----> MemberDAO
					    doPost 처리
                        request.setCharacterEncoding("utf-8")
							|
     <-----------------    jsp

5. 로그인 화면 보기

웹브라우저 ----------------> LoginUIServlet ("/login")

							     | 요청 위임 (forward / redirect)
                                 
       <-----------------  loginForm.jsp

6. 로그인

		  id/pw
웹브라우저 ------> LoginServlet ("/login-exec") -----> MemberServiceImpl ----> MemberDAO
						| 요청 위임 (forward / redirect)
                        
         <-------- 		jsp

JSTL 사용

7. 로그아웃

웹브라우저 --------------> LogoutServlet ("/logout")
								|
                                | 요청 위임 (forward / redirect)
         <---------------- 	   jsp               

  • cookie의 life cycle
    .setMaxAge( 양수 | 0 | 음수 );
    양수 : 그 값만큼 살아있음 (브라우저 종료해도), 초단위
    0 : 즉시 삭제
    음수 : 브라우저를 종료하면 삭제됨 (디폴트)

8. 마이페이지

웹브라우저 ------> MyPageServlet ("/mypage") -------> MemberServiceImpl -------> MemberDAO
                       | 요청위임(forward/redirect)

	     <------    mypage.jsp

9. 상품 목록

		/main?gCategory=top
웹브라우저 -----> MainServlet ("/main") -----> GoodsServiceImpl -------> GoodsDAO

					 | 요청 위임 (forward / redirect)
                     
          <-----  main.jsp

10. 상품 자세히 보기

		 ?gCode=값
웹브라우저 ---> GoodsRetrieveServlet ("/goodsRetrieve") ---> GoodsServiceImpl ---> GoodsDAO

					 | 요청 위임 (forward / redirect)
                     
          <-----  goodsRetrieve.jsp

11. 장바구니 저장

웹브라우저 ----> CartAddServlet ("/cartAdd") --> CartServiceImpl -------> CartDAO

                          | 요청위임(forward/redirect)

	     <----------     jsp

12. 장바구니 목록

												  CartService   
웹브라우저 ----> CartListServlet ("/cartList") --> CartServiceImpl -------> CartDAO
					
                       | 요청위임(forward/redirect)

	 <----------    cartList.jsp
  • CartServiceImpl
public class CartServiceImpl implments CartService{
  
       CartDAO cartDAO; //null

      public CartServiceImpl(CartDAO cartDAO){
	  this.cartDAO =cartDAO;
	}

	public void setCartDAO(CartDAO cartDAO){
           this.cartDAO =cartDAO;
	}
  • CartListServlet
   CartService service = new CartServiceImpl(new CartDAO());
  
  CartService service = new CartServiceImpl();
  service.setCartDAO(new CartDAO());

==> CartServiceImpl 와 CartDAO 간에 의존성이 생겼고
개발자가 명시적으로 CartServiceImpl에 CartDAO를 생성해서 값을 전달해줌

0개의 댓글