Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- HTTP
- org.mybatis.spring.MyBatisSystemException
- 톰캣에러
- 테스트코드 작성
- 쿠키와 세션의 특징
- @RequiredArgsConstructor
- WAS와 WEB서버 차이
- 정보처리기사 해설
- 정보처리기사 1과목
- 의존성 주입
- and 7 Web modules
- 스프링 게시판 만들기
- Tomcat version 8.5 only supports J2EE 1.2
- 공개 암호화키
- @RediretAttribute
- and Java EE 5
- 인터페이스와 추상클래스 차이
- 코드로 배우는 스프링부트 웹 프로젝트
- 정보처리기사 20년
- java 면접질문
- Junit Test 에러
- 쿠키와 세션의 차이
- 코드로 배우는 스프링 웹 프로젝트
- oracle Database 설정
- pom.xml 설정
- java jdk 오류
- 코드로 배우는 스프링 웹프로젝트
- 정보처리기사
- 게시판 만들기
- HTTP와 HTTPS의 차이
Archives
- Today
- Total
모아이티
[게시판 만들기] 코드로 배우는 스프링 웹 프로젝트 Part2 - 스프링MVC 본문
왜 Controller를 따로 분리했을까?
Controller - URL 처리
화면과 로직을 분리
유지보수가 좋다는 근거가 무엇일까?
- 돈
- 클라이언트의 변경 비용
- 서비스 제공자 입장 비용
서블릿 | 스프링Controller |
클래스에서 URL 분기 | 클래스 혹은 메서드에서 가능 |
GET/POST 방식 | @GETMapping/ @POSTMapping |
고정된 파라미터와 리턴 타입 | 파라미터의 자동 수집, 상황에 따른 반환 타입 조정 |
수동 forward | 자동 forward 처리 |
의존성 주입 불가 | 스프링을 통해서 다른 객체 주입 |
JSON 처리 불편 | @RestController |
기타 어노테이션을 통한 많은 기능 지원 | |
다양한 뷰처리 기능 |
@Controller
- HttpServletRequest, HttpServletResponse를 거의 사용할 필요 없이 필요한 기능 구현
- 다양한 타입의 파라미터 처리, 다양한 타입의 리턴 타입 사용 가능
- GET 방식, POST 방식 등 전송 방식에 대한 처리를 어노테이션으로 처리 가능
- 상속 / 인터페이스 방식 대신에 어노테이션만으로 필요한 설정 가능
Model
- Model 객체는 JSP에 Controller에서 생성된 데이터를 담아서 전달하는 역할을 하는 존재
- 모델 2 방식에서 사용하는 request.setAttribute()와 유사한 역할
- 과거에는 ModelAndView
- Model에 담는 데이터 -> 파라미터가 아니라.. 다른 곳에서 발생한 데이터를 담기 위한 용기
@ModelAttribute
- 파라미터를 뷰페이지로 넘길 때 본인이 원하는 명확한 이름값으로 넘길 때 사용 예) 파라미터명이 너무 길다거나 간단히 하고 싶을 때
- 컨트롤러에서 메서드의 파라미터는 기본자료형을 제외한 객체형 타입은 다시 화면으로 전달
- @ModelAtrribute는 명시적으로 화면에 전달되도록 지정
@RediretAttribute
- 화면에 한 번만 전달되는 파라미터를 처리하는 용도
- 내부적으로 HttpSession 객체에 담아서 한 번만 사용되고, 폐기
Controller의 리턴 타입
- String - jsp를 이용하는 경우에는 jsp 파일의 경로와 파일 이름을 나타내기 위해서 사용, 상황에 따라 다른 화면을 보여줄 필요가 있을 경우에 유용하게 사용, redirect라는 키워드를 붙여서 사용
- void - 호출하는 URL과 동일한 이름의 jsp를 의미
- VO, DTO타입(객체 타입) - 주로 JSON 타입의 데이터를 만들어서 반환하는 용도로 사용(추가적인 라이브러리 필요)
- ResponseEntity 타입 - response 할 때 Http 헤더 정보와 내용을 가공하는 용도로 사용
- Model, ModelAndView : Model로 데이터를 반환하거나 화면까지 같이 지정하는 경우에 사용(최근에 사용 X)
- HttpHeaders : 응답에 내용 없이 Http 헤더 메시지만 전달하는 용도로 사용
Controller의 Exception 처리
- @ControllerAdvice - 예외처리와 원래의 컨트롤러가 혼합된 형태의 클래스가 작성되는 방식
- @ExceptionHandler - 해당 메서드가 ()에 들어가는 예외 타입을 처리한다는 것을 의미
'Spring 게시판 만들기' 카테고리의 다른 글
[게시판 만들기] 코드로 배우는 스프링 웹 프로젝트 Part3 - Day1 CRUD 구현 (0) | 2021.03.07 |
---|---|
[게시판 만들기] 코드로 배우는 스프링 웹 프로젝트 Part1 - Mybatis 연동 (0) | 2021.03.02 |
[게시판 만들기] 코드로 배우는 스프링 웹 프로젝트 Part1 - JDBC 연결 & Hikari CP 커넥션 풀 설정 (0) | 2021.03.02 |
[게시판 만들기] 코드로 배우는 스프링 웹 프로젝트 - Part1 Oracle Database 연동 (0) | 2021.03.02 |
[게시판 만들기] 코드로 배우는 스프링 웹 프로젝트 Part 1 - 의존성 주입 (0) | 2021.03.02 |
Comments