실습을 위해 Maven Project를 만들어준다.

Archetype을 webapp로 지정해준다.


JDK1.8을 실행하기 위해서 pom.xml에 plugin을 추가해준다.

web api를 실행하기 위해서 dependency에 라이브러리를 추가 해준다.

저장한 다음 Maven > Update Project를 해준다.

그 다음 네비게이터 탭을 이용해서 수정해야 한다.
하지만 이클립스 최신 버전에 네비게이터 탭이 빠져서 아래와 같은 방법으로 진행한다.
먼저 Project Explorer의 우측 상단에 3개 점을 클릭하고 Filters and Customization을 선택한다.

Pre-set filters 탭에서 Java output folders 체크 해제 해준다.

Content 탭에서 Java Elements 체크 해제하고 확인해준다.

프로젝트 우클릭 > Properties 선택
Maven > Project Facets 에서 Dynamic Web Module을 3.1로 맞춰주고 Apply and Close해준다.

이번 예제에서 어노테이션을 이용해서 서블릿을 설정할 것이기 때문에 web.xml을 삭제해준다.

그 다음 pom.xml에 이 부분을 추가해줘야 web.xml 파일을 삭제해도 이클립스에서 오류가 발생하지 않는다.

다음으로 src의 main 디렉토리 아래다가 자바 패키지와 클래스들이 저장될 java 디렉토리를 만들어준다.
kr.or.connect.webapiexam.api 패키지를 만들어준다.

지난번 jdbcexam 프로젝트로부터 패키지 두 개를 가져온다.

| * 복습 GET / roles 모든 롤 정보 읽어오기 GET / roles / {roleId} 특정한 롤 정보 읽어오기 POST / roles 롤 정보 등록하기 PUT / roles / {roleId} 롤 정보 수정하기 DELETE / roles / {roleId} 롤 정보 삭제하기 |
모든 role의 정보를 보여주는 RolesServlet 클래스를 만들어준다.

url 매핑은 roles로 변경해준다.

doGet 메서드만 오버라이딩 해준다.


응답 객체의 encoding을 utf-8로 넣고, contentType을 json으로 응답을 받아온다.
setContentType은 클라이언트에게 보내질 때 어떤 타입으로 보내지는지 알려준다.
roleDao 객체를 생성하고, roleDao 객체가 갖고 있는 메서드 getRoles를 사용해서 role의 list를 얻어온다.
얻어낸 list를 json 라이브러리가 제공해주는 객체 objectMapper를 이용하면 json 문자열로 바꾸거나 json 문자열을 객체로 바꾸는 역할을 해준다.
writeValueAsString 라이브러리를 이용하면 파라미터로 리스트를 넣어주면 해당 리스트가 json문자로 바뀌어서 리턴을 해주게 된다. json문자열을 응답 결과로 넣어준다.
list가 json 문자열로 바뀌어서 출력이 된다.
실행 결과

* 여기서 대괄호는 배열, 리스트를 의미하고 중괄호는 객체 한 건을 의미한다.
중괄호 안에는 속성명과 값이 나온다.
jdbc 소스에서 role에 대한 데이터를 가져오고, 가져온 것을 json형태로 바꾸어서 응답결과로 보내면 보낸 응답 결과가 출력된다.
* 만약 Maven이 라이브러리를 인식하지 못할 경우(Maven Dependencies에 가져온 라이브러리들이 있음에도 불구하고 import가 제대로 되지 않을 경우) 파일탐색기 > 사용자 > .m2 디렉토리를 삭제해준다. 그리고 다시 이클립스를 실행한 다음 Maven update를 실행해준다.
'boostcource > boostcourse_web programming' 카테고리의 다른 글
| javascript 배열 (0) | 2024.05.12 |
|---|---|
| Web Api -2 (1) | 2024.04.28 |
| Web API (0) | 2024.04.27 |
| REST API (0) | 2024.04.27 |
| JDBC -4 (0) | 2024.04.27 |