반응형
MVC 패턴에서는 view가 controller에 요청하면, controller는 매개변수를 이용해 sercvice 객체를 호출
service로 인터페이스를 구현함으로써 각 기능을 실행
2021.08.13 - [Java 및 JSP] - [JSP] MVC1과 MVC2
[JSP] MVC1과 MVC2
MVC(Model-View-Controller ) 소프트웨어의 비즈니스 로직과 화면을 구분하는데에 중점을 둠 이러한 구분은 더 나은 업무의 분리와 향상된 관리를 제공 1. Model: 데이터와 비즈니스 로직을 관리 - 포함되
wheneveryouwantsz.tistory.com
인터페이스(Interface)
추상 메서드의 집합으로, 구현된 것이 전혀 없는 설계도(껍데기와 같음)
모든 메서드는 public, abstract이기 때문에 생략 가능(상수 final도 같은 의미로 생략 가능)
→ 인터페이스에 정의된 미완성 추상 메서드를 완성하기위해 인터페이스를 구현
(+) 추상 클래스와 인터페이스의 차이
- 추상 클래스 - 일반 클래스로 추상 메서드를 가지고 있음(인스턴스 변수, 생성자 등을 함께 가지고 있음)
- 인터페이스 - 추상 메서드 외에는 아무것도 가지고 있지 않음
회원가입 로직 작성을 예시로,
interface IUserService{
void execute(HttpServletRequest request, HttpServletResponse response);
}
IUserService라는 인터페이스를 정의
void 파라미터에는 요청을 받을 때 전달받은 정보를 저장할 HttpServletRequest 객체(Http 프로토콜의 request 정보를 서블릿에 전달)와 웹브라우저에 응답을 돌려줄 HttpServletResponse 객체를 생성
public class UserJoinService implements IUserService{
@Override
public void execute(HttpServletRequest request, HttpServletResponse response) {
...(회원가입 진행 로직)...
}
}
회원가입 기능을 수행할 UserJoinService 클래스는 IUserService 인터페이스를 구현
public class P03PatternServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
IUserService us = null;
if(uri.equals("/Test/join.do")) {
us = new UserJoinService();
us.execute(request, response);
}
}
}
서블릿에서는 정의된 인터페이스의 객체를 생성해 서비스가 호출되면 모든 서비스의 데이터 타입을 받을 수 있게 함
view에서 요청이 들어오면 controller에서 해당하는 요청을 찾아 인터페이스가 구현된 서비스를 호출하여 실행
'Java 및 JSP' 카테고리의 다른 글
[Java] 이클립스 기본 브라우저 Chrome 으로 변경 (0) | 2021.08.29 |
---|---|
[JSP] 게시판 페이징 처리 (0) | 2021.08.23 |
[JSP] JSP 파일에서 CSS 파일 적용 시 경로 (0) | 2021.08.20 |
[JSP] DTO를 생성하면서 익히는 페이징 처리 과정 (0) | 2021.08.17 |
[JSP] DAO 클래스와 VO 클래스 (0) | 2021.08.15 |