본문 바로가기
JSP

MVC 패턴

by 임혁진 2024. 1. 23.

MVC1의 전체적인 설계

MVC2의 전체적인 컴포넌트 설계

 

차이는 Controller의 사용이고 mvc2 방식을 선호한다.

아키텍쳐

 

모든 것을 컨트롤러 를 통해 모델 , 뷰 를 선택해 보여준다. 

package com.example.controller;

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;

@WebServlet("*.test") //1.확장자패턴을 씁니다 (~~~~.test로 끝나면 맵핑)
public class TestController extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public TestController() {
        super();
    }
    
    //2. get/post 요청도 하나로 모은다
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doAction(request,response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doAction(request,response);
	}

	protected void doAction(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//3. URL주소를 분기(각 요청별로 코드를 만든다)
		
		request.setCharacterEncoding("utf-8");
		
		String uri =request.getRequestURI();
		
		String path =uri.substring(request.getContextPath().length());
		
		System.out.println(path);
		
		if(path.equals("/controller/join.test")) {
			//회원가입~~~~ 처리로직
			
		}else if(path.equals("/controller/modify.test")){
			//정보수정 처리로직
		}else if(path.equals("/controller/delete.test")){
			//회원탈퇴 처리로직		
		}else if(path.equals("/controller/logout.test")){
			//로그아웃 처리로직
		}
				
	}
}

 

'JSP' 카테고리의 다른 글

Filter  (0) 2024.01.23
페이징  (0) 2024.01.23
포워드(forward),액션태그(actiontag)  (0) 2024.01.23
예외 페이지  (0) 2024.01.23
쿠키와 세션  (0) 2024.01.22