반응형
# 목적
- Model2의 주요 API 간단 정리
주요 API
1. 요청핸들러 메소드
- 클라이언트의 HTTP 요청을 처리하는 메소드
- 1) 추가/수정/삭제 작업
- 요청파라미터 값을 조회한다.
- 조회된 요청파라미터값을 객체를 생성해서 담는다.
- 값이 담긴 객체를 서비스 혹은 DAO에 전달해서 데이터베이스에 반영시킨다.
- 재요청 URL을 반환한다.
@RequestMapping(path = "/요청URL")
public String 메소드이름(HttpServletRequest req, HttpServletResponse resp) throws Exception {
// 클라이언트의 HTTP 요청을 처리하는 자바 코드를 포함한다.
return "redirect 재요청URL"
}
- 2) 조회 작업
- 조회된 요청파라미터값을 서비스 혹은 DAO에 전달해서 데이터베이스에서 데이터를 조회한다.
- 조회된 정보를 뷰 페이지에 전달하기 위해서 요청객체에 속성으로 저장한다.
- 내부이동할 URL을 반환한다.
@RequestMapping(path = "/요청URL")
public String 메소드이름(HttpServletRequest req, HttpServletResponse resp)
// 클라이언트의 HTTP 요청을 처리하는 자바 코드를 포함한다.
return "내부이동할 JSP 페이지 경로"
}
- 구조
(반환타입은 무조건 String)
@RequestMapping(path = "/요청URL")
public String 메소드이름(HttpServletRequest req, HttpServletResponse resp) throws Exception {
// 클라이언트의 HTTP 요청을 처리하는 자바 코드를 포함한다.
}
2. FrontControllerServlet
- model2.jar 라이브러리의 핵심 클래스
- HttpServlet 클래스를 상속받는 서블릿 클래스
- 역할
1. 클라이언트의 모든 요청을 접수받는다.
2. 클라이언트의 요청을 분석한다.
- 요청 URL이 무엇인지, 요청 방식이 무엇인지 분석한다.
3. 컨트롤러 클래스에서 적절한 요청핸들러 메소드를 실행한다.
4. 요청핸들러 메소드 실행이 완료되면 뷰 페이지로 내부이동 혹은 재요청 URL을 응답으로 보낸다.
3. @Controller
- 해당 클래스가 컨트롤러 클래스임을 나타내는 어노테이션
- model2.jar 라이브러리는 @Controller 어노테이션이 부착된 클래스를 감지하고, 매핑정보를 분석한다.
- 사용예시)
@Controller
public class MainController {
}
4. @RequestMapping
- 매핑정보를 정의하는 어노테이션
- 클래스 혹은 요청핸들러 메소드에 부착하는 어노테이션
- 주요 프로퍼티
1) path
- 요청 URL을 지정한다.
- 요청 URL은 반드시 "/"로 시작한다.(절대경로와 상관없음)
2) method
- 요청 방식을 지정한다.
- 기본값은 HttpMethod.GET이다.
- HttpMethod.GET 혹은 HttpMethod.Post를 지정할 수 있다. - 사용예시)
@Controller
@RequestMapping(path = "/board") // 필수 아님
public class BoardController {
// board의 list (GET방식)
@RequestMapping(path = "/list.do")
public String boards(HttpServletRequest request, HttpServletResponse response) {
}
// board의 create (GET방식)
@RequestMapping(path = "/create.do")
public String form(HttpServletRequest request, HttpServletResponse response) {
}
// board의 create (POST방식)
@RequestMapping(path = "/create.do", method = HttpMethod.POST)
public String save(HttpServletRequest request, HttpServletResponse response) {
}
}
< 해당 글은 velog에서 이전하며 옮겨온 글로, 가독성이 좋지 않을 수 있는 점 양해 부탁드립니다. >
🔗 velog 버전 보기 : https://velog.io/@ryuneng2/Model2-주요API
'BackEnd > Spring' 카테고리의 다른 글
[Spring] Maven 빌드 도구 (0) | 2025.01.16 |
---|---|
[Spring] Spring Container(스프링 컨테이너) (0) | 2025.01.16 |
[Spring] IoC(제어역전, Inversion of Control) (0) | 2025.01.16 |
[Spring] Spring Framework란? (0) | 2025.01.16 |
[Model2] MVC패턴 - Model1과 Model2 비교 (0) | 2025.01.16 |