프로그램 실행 중 오류가 발생되면 프로그램 실행이 중단된다.
이제 웹 브라우저에 그 오류 메세지가 나타나면 사용자 입장에서 보기 좋지 않다.
그래서 오류 발생 시에 보여줄 jsp를 구성하고 이를 브라우저에 전달하게 한다.
이 처리는 Controller에서 @ExceptionHandler 메서드를 정의해 주면 오류 발생 시에 이 메서드를 자동으로 호출한다.
다음과 같이 핸들러 괄호안에 오류 내용을 적어두면 된다.
이 익셉션핸들러 어노테이션은 같은 오류이더라도 컨트롤러마다 정의를 해주어야 한다.
컨트롤러 마다 발생 가능한 예외들이 있다면 한 번만 정의해서 사용하는 것이 효율적일 것이다.
이를 위해 GlobalExceptionHandler를 구현한다.
다음과 같이 패키지 안에 만들어주고 ServletAppContext.java 에 스캔해주었다.
다음과 같이 컨트롤어드바이스 어노테이션 밑에 런타임익셉션을 상속받은 글로벌익셉션핸들러를 선언
GlobalExceptionHandler 와 ExceptionHandler 중 후자로 처리한 정의가 먼저 호출이 된다.
ㅡㅡㅡㅡ
MyBatis Java
MyBatis 는 JDBC 프로그래밍을 보다 쉽게 하기위해 사용하는 라이브러리이다.
pom.xml 에 다음과 같이 기입이 되어있어야 한다.
spring jdbc, dbcp, mybatis, mybatis-spring 이 세팅되어있어야 한다.
그리고 db 연결을 위한 properties 파일을 만들어주자.
그리고 다음과 같이 MapperInterface를 만들어준다. 쿼리문 역할을 해준다.
밑의 select 문은 select 한 것의 결과를 DataBean에 넣어주고 그걸 List에 넣어서 리스트를 넘겨준다.
이 때 ServletAppContext.java 에 properties 폴더를 scan 시켜주어야 한다.
ServletAppContext.java 내에 선언이 된 것들이다.
Autowired 로 Mapper 를 주입받은 Controller 코드이다.
read_data.jsp 이다.
이제 xml 방법이다.
ㅡㅡㅡㅡ
Restful API
기본적인 서버는 응답 결과를 브라우저가 사용하는 코드인 HTML, CSS, JavaScript 로 생성하여 전달하는 반면
Restful API 서버는 응답결과를 json 파일 형태로 데이터만으로 구성하여 응답결과로 전달한다.
@Controller를 사용하면 return 하는 값은 사용할 JSP를 지정하게 되지만
@ResrController를 통해 return 하게 되면 그 값 자체를 브라우저로 전달하는 응답결과로 생성해서 보낸다.
자바에서 객체나 리스트를 json 데이터로 만들어주는 라이브러리를 설치한다. mvnrepository 싸이트에서 jackson 검색해서 pom.xml에 넣어준다.
데이터빈 값들을 리스트에 넣어서 그것을 return 해준다.
브라우저에게 보내는 값이 정상적인 데이터라는 것을 알려주기 위해서 HttpStatus.OK를 세팅을 해주는 것이다.
그리고 데이터를 구성할 객체를 list 저 위치에 넣어주는 것이다.
이것은 브라우저에서
본래는 다닥다닥 붙어서 나오는데 restful api 는 클라이언트로 전달할 데이터의 총량을 줄이기 위해서 들여쓰기나 밑으로 내리는 것을 하지 않는다. 그래서 크롬 스토어에서 JSON Formatter를 설치해서 위와 같이 보이는 것이다.
'공부 기록들' 카테고리의 다른 글
2020.04.26 - 미니프로젝트(2) (상단 메뉴 db 가져와서 구성하기) (0) | 2020.04.26 |
---|---|
2020.04.24 - 미니프로젝트(1) (틀 구성하고 페이지 연결하기) (0) | 2020.04.24 |
2020.04.21 MVC(7) (JSR-303, JSR-380, Validator 커스터마이징, Interceptor) (0) | 2020.04.21 |
2020.04.20 MVC(6) (쿠키, 유효성 검사, JSR-303) (0) | 2020.04.20 |
2020.04.17 MVC(5) ( SessionScope, ApplicationScope) (0) | 2020.04.17 |