springmvc 를 REST 서버 로 설정 하 는 과정
RESTful 스타일 의 URL 소개
여기 서 제 가장 간단 한 이해 만 말씀 드 리 겠 습 니 다.
전통 적 인 웹 애플 리 케 이 션 을 개발 할 때 http 프로 토 콜 이 제공 하 는 모든 방법 을 완전 하 게 사용 하지 않 고 GET 와 POST 방법 만 사 용 했 으 며 GET 방법 으로 파 라 메 터 를 전달 할 때
http://dqy.today/articles.action?articleId=3
와 같은 지루 한 URL 을 사 용 했 습 니 다. 파 라 메 터 는 '? + 키 쌍' 방식 으로 전 달 됩 니 다.RESTful 스타일 의 URL 은 매개 변 수 를 url 경로 자 체 를 통 해 전달 해 야 한다 고 주장 한다. 예 를 들 어 위 에 제 시 된 URL 을 RESTful 스타일 로 쓰 면 http://dqy.today/articles/3
이 고 매개 변 수 를 url 의 경로 에 직접 쓰 면 이런 URL 은 더욱 간단 하고 의미 도 더욱 명확 하 다.RESTful 도 HTTP 의 GET, POST, PUT, DELETE 방법 을 모두 사용 하여 같은 URL 로 더 많은 의 미 를 표현 할 수 있 도록 한다 고 주장 했다. http://dqy.today/articles
이 URL 을 예 로 들 면 이 몇 가지 조작의 의 미 는 다음 과 같다.springmvc 로 모든 요청 차단
springmvc 핵심 Servlet 의 차단 경 로 를 다음 과 같이 변경 합 니 다.
springmvc
/
여기 서
/
만 쓸 수 있 고 /
로 쓸 수 없습니다. 그렇지 않 으 면 이상 한 실 수 를 할 수 있 습 니 다. 구체 적 인 원인 은 저도 잘 모 르 겠 습 니 다.다음은 springmvc 설정 파일 에서 프레임 워 크 가 정적 자원 의 경 로 를 차단 하지 않도록 설정 해 야 합 니 다. 다음 탭 을 사용 하 십시오.
mapping 은 매 핑 할 url 을 표시 합 니 다. 마스크 를 사용 할 수 있 습 니 다.
/*
는 한 층 의 하위 경로 만 일치 할 수 있다 고 표시 합 니 다. *
는 모든 하위 경 로 를 일치 시 킬 수 있다 고 표시 합 니 다. 예 를 들 어 **
는 url 경로 /static/*
와 일치 할 수 있 지만 일치 하지 않 습 니 다 /static/a
. /static/a/b
는 일치 할 수 있 습 니 다 /static/**
.location 은 프로젝트 디 렉 터 리 의 실제 위치 에 있 습 니 다. 프레임 워 크 는 mapping 이 일치 하 는 하위 경 로 를 location 뒤에 연결 합 니 다. 예 를 들 어 /static/a/b
와 같은 url 경 로 는 springmvc 의 핵심 Servlet 에 의 해 차단 되 지 않 고 프로젝트 디 렉 터 리 /static/js/b.js
경로 에서 정적 자원 을 찾 습 니 다.springmvc 를 사용 하여 URL 디 렉 터 리 에 포 함 된 인 자 를 얻 습 니 다.
이전에 전통 적 인 웹 응용 springmvc 는 모두 "?" 뒤의 매개 변 수 를 자동 으로 가 져 와 방법 매개 변수 에 연결 되 었 습 니 다. 현재 의 매개 변 수 는 URL 경로 에 있 습 니 다. 어떻게 가 져 와 야 합 니까?사실 springmvc 도 몇 가지 편리 한 주 해 를 제공 하여 우리 에 게 가 져 다 주 었 습 니 다. 예 를 들 어 다음 과 같 습 니 다.
글 요청 처리 방법 수정:
@RequestMapping(value = "articles/{articleId}", method = RequestMethod.PUT)
public void modifyArticle(@PathVariable("articleId") String id,Article article){
......
}
글 삭제 요청 처리 방법:
@RequestMapping(value = "articles/{articleId}", method = RequestMethod.DELETE)
public void delArticle(@PathVariable("articleId") String id,Article article){
......
}
이 두 가지 방법 은 클 라 이언 트 가 시작 한
/static/js/b.js
요청 ({articleId} 은 하나의 마스크 와 유사 합 니 다) 을 얻 을 수 있 습 니 다. 그리고 프레임 워 크 는 @ RequestMapping 의 method 매개 변수 에 따라 최종 적 으로 어떤 방법 으로 처리 할 지 결정 합 니 다. http 의 PUT 방법 이 라면 modifyArticle 방법 으로 처리 하고 DELETE 방법 이 라면 delArticle 방법 으로 처리 합 니 다.@ PathVariable 주 해 를 통 해 경로 의 매개 변 수 를 방법 매개 변수 에 연결 합 니 다. {articleId} 에 일치 하 는 경로 의 값 을 방법 매개 변수 id 에 연결 합 니 다.
springmvc 로 json 문자열 받 기
REST 서버 는 json 으로 송 수신 하 는 것 이 유행 하고 springmvc 도 관련 편 의 를 제공 합 니 다. 그러나 추가 적 인 jackson 의존 도 를 추가 해 야 합 니 다. 추 가 된 jackson 버 전 은 springmvc 와 일치 해 야 합 니 다. 그렇지 않 으 면 오류 가 발생 할 수 있 습 니 다. 필자 의 검증 을 거 쳐 4.3.6 버 전의 springmvc 에서 다음 과 같은 버 전의 jackson 의존 도 를 도입 해 야 합 니 다.
com.fasterxml.jackson.core
jackson-databind
2.8.9
com.fasterxml.jackson.core
jackson-core
2.8.9
com.fasterxml.jackson.core
jackson-annotations
2.8.9
그리고 다음 주 해 를 통 해 springmvc 에서 json 문자열 을 수신 하고 자동 으로 대상 으로 변환 할 수 있 습 니 다.
@RequestMapping(value = "/...")
public @ResponseBody Object1 (@RequestBody Object2 object2){
...
...
return object2;
}
Object 1 과 Object 2 는 두 개의 사용자 정의 대상 입 니 다. @ RequestBody 주해 수식 방법 매개 변수 object 2 를 사용 합 니 다. 이 방법 이 요청 을 받 아들 일 때 springmvc 는 json 문자열 을 자동 으로 대상 으로 object 2 매개 변수 에 전송 합 니 다 (대상 중 Object 2 의 구성원 속성 명 에 따라 일치). 필자 의 검증 을 통 해 @ RequestBody 는 한 가지 방법 매개 변수 만 수식 할 수 있 습 니 다.여러 방법의 매개 변 수 를 동시에 수정 하면 실행 중 오류 가 발생 합 니 다. @Response Body 주 해 는 방법 이 되 돌아 오 는 대상 을 json 문자열 로 클 라 이언 트 에 전달 할 수 있 습 니 다.
End
이 지식 을 습득 하면 springmvc 를 REST 서버 로 개조 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.