SpringMVC―요청 매개 변 수 를 어떻게 얻 는 지 자세히 알 아 보기
10343 단어 springmvc매개 변수 가 져 오기
1.spring mvc 는 요청 경 로 를 어떻게 일치 시 킵 니까?"요청 경 로 는 어느 것 이 강 합 니까?RequestMapping 이름 이 멀리 떨 어 집 니 다"
@RequestMapping 은 get 요청,post 요청 또는 REST 스타일 과 비 REST 스타일 을 매 핑 하 는 데 사 용 됩 니 다.이 주 해 는 클래스 나 방법 에 사용 할 수 있 습 니 다.클래스 에 사용 하면 모든 방법의 부모 경 로 를 표시 합 니 다.
예 를 들 어(여기 서 사용 하 는 테스트 유형,예 를 들 어 SpringMVC Test 와 일부 페이지 는 첫 번 째 에서 소개 되 었 습 니 다):
SpringMVCTest.java 에 테스트 방법 추가:
@RequestMapping("/testRequestMapping")
public String testRequestMapping(){
System.out.println("testRequestMapping");
return SUCCESS;
}
방법 단계 에 주석@RequestMapping("/test RequestMapping")을 추가 하 였 습 니 다. "/test RequestMapping"의 상대 경 로 를 통 해 이 방법 을 찾 을 수 있 음 을 나타 내 는 동시에 우 리 는 SpringMVCTest 류 에 도 하나의 등급 의 RequestMapping 주 해 를 넣 었 습 니 다.
@RequestMapping("/springmvc")
@Controller
public class SpringMVCTest {
여기에@Controller 의 주 해 를 추가 하 였 습 니 다.이 주 해 는 SpringMVC 에서 Dispatcher Servlet 에서 배 포 된 요청 을 처리 하고 사용자 가 요청 한 데 이 터 를 업무 처리 층 에서 처리 한 후에 Model 로 봉 한 다음 에 해당 하 는 View 에 되 돌려 보 여 줍 니 다.이로써'springmvc/test Request Mapping'이라는 경로 가 생 겼 습 니 다.우 리 는 test Request Mapping 이라는 방법 을 찾 은 다음 에 방법 내의 방법 체 를 실행 할 수 있 습 니 다.좀 더 보충 하면 RequestMapping 은 모호 한 일치 경 로 를 실현 할 수 있 습 니 다.예 를 들 어:
?:일치 하 는 문자
*:임의의 문자 일치
**:다 중 경로 일치
/springmvc/**/lastTest 는/springmvc/firstTest/secondTest/lastTest 와 같은 경 로 를 일치 시 킬 수 있 습 니 다.
2.spring mvc 는 요청 한 인 자 를 어떻게 얻 습 니까?-"팔선 이 바 다 를 건 너 면 각각 신통력 을 나타 냅 니 다"
1. @PathVariable
이 설명 은 요청 URL 에 연 결 된 자리 표시 자 를 비 추 는 데 사 용 됩 니 다.@PathVariable 을 통 해 URL 의 자리 표시 자 인 자 를 controller 처리 방법 에 연결 할 수 있 습 니 다.알 아 듣 지 못 했 습 니까?보기:
@RequestMapping("/testPathVariable/{id}")
public String testPathVariable(@PathVariable(value="id") Integer id){
System.out.println("testPathVariable:" + id);
return SUCCESS;
}
index.jsp 에 요청 을 실행 하기 위해 연결 을 추가 합 니 다.
<a href="springmvc/testPathVariable/1">testPathVariable</a><br/><br/>
여기 하이퍼링크 가 있 습 니 다.클릭 하면 springmvc/testPathVariable/1 에 대응 하 는 contrller 처리 방법 에 들 어 갑 니 다.그러면 우 리 는 지금 이 요청 매개 변수 중의"1"을 얻 으 려 고 합 니 다.그래서 testPathVariable 방법 에"/testPathVariable/id",id"를 추가 합 니 다.{id}에 대한 구체 적 인 대응 은 이 방법의 매개 변수 에 있 습 니 다.@PathVariable(value="id")을 통 해 받 을 요청 인 자 를 설명 하고 Integer id 를 통 해 연결 하고 받 습 니 다.이 방식 을 통 해 우 리 는 프론트 페이지 에서 요청 한 인자'1'을 얻 을 수 있다.2. @RequestParam
이 주해 도 요청 인 자 를 가 져 오 는 데 사 용 됩 니 다.그렇다면 이 주 해 는@PathVariable 과 어떻게 다 릅 니까?아니면 예 를 들 어:
SpringMVCTest 에 방법 추가
@RequestMapping(value="/testRequestParam")
public String testRequestParam(@RequestParam(value="username") String username, @RequestParam(value="age", required=false, defaultValue="0") int age){
System.out.println("testRequestParam" + " username:" + username + " age:" +age);
return SUCCESS;
}
index.jsp 에 하이퍼링크 탭 추가
<a href="springmvc/testRequestParam?username=jackie&age=12">testRequestParam</a><br/><br/>
페이지 의 하이퍼링크 를 누 르 면 contrller 의 testRequestParam 방법 상의 RequestMapping 경로 와 일치 합 니 다.이 방법 에서 저 희 는@RequestParam 이라는 주 해 를 통 해 두 변 수 를 설명 합 니 다.요청 에 있 는 query 가 가 져 온 매개 변수 값 을 가 져 옵 니 다.하 나 는 username 후의 값 이 고 다른 하 나 는 age 뒤의 값 입 니 다.이 를 보면@PathVariable 과@RequestParam 사이 의 차이 점 을 알 수 있 을 것 입 니 다."springmvc/testPathVariable/1"과 같은 요청 에 대해 서 는@PathVariable 을 통 해 요청 한 인 자 를 연결 합 니 다."springmvc/test RequestParam?username=jackie&age=12"와 같은 요청 매개 변 수 는 키 값 으로 나타 납 니 다.저 희 는@RequestParam 을 통 해 username 이나 age 후의 구체 적 인 요청 값 을 얻 을 수 있 습 니 다.
RequestParam 과 다른 곡 과 같은 용법 이 있 는 Query Param 도 있 습 니 다.spring mvc 프레임 워 크 의 주석 이 아니 기 때문에 자세 한 설명 은 하지 않 습 니 다.
서로 다른 요청 유형 과 요청 방식 에 대해 spring mvc 는 모두 맞 춤 형 해결 방안 을 가지 고 있 습 니 다.현재 유행 하 는 REST 스타일 의 요청 이 어떤 지 살 펴 보 겠 습 니 다.REST 스타일 을 이용 하여 추가 삭제 와 수정 을 실현 합 니 다.
SpringMVCTest 클래스 에서 아래 에서 위로 검색(get)증가(post)삭제(delete)와 변경(put)인 터 페 이 스 를 실현 하 였 습 니 다.
@RequestMapping(value="/testRest/{id}", method=RequestMethod.PUT)
public String testRestPut(@PathVariable(value="id") Integer id){
System.out.println("test put:" + id);
return SUCCESS;
}
@RequestMapping(value="/testRest/{id}", method=RequestMethod.DELETE)
public String testRestDelete(@PathVariable(value="id") Integer id){
System.out.println("test delete:" + id);
return SUCCESS;
}
@RequestMapping(value="/testRest", method=RequestMethod.POST)
public String testRest(){
System.out.println("test post");
return SUCCESS;
}
@RequestMapping(value="/testRest/{id}", method=RequestMethod.GET)
public String testRest(@PathVariable(value="id") Integer id){
System.out.println("test get:" + id);
return SUCCESS;
}
그러면 프론트 인터페이스 는 어떻게 실현 되 는 지,대응 하 는 순 서 는?
<form action="springmvc/testRest/1" method="post">
<input type="hidden" name="_method" value= "PUT"/>
<input type="submit" value="testRestPut"/>
</form><br/><br/>
<form action="springmvc/testRest/1" method="post">
<input type="hidden" name="_method" value="DELETE"/>
<input type="submit" value="TestRest DELETE"/>
</form><br><br>
<form action="springmvc/testRest" method="post">
<input type="submit" value="testRestPost">
</form><br/><br/>
<a href="springmvc/testRest/1">testRest</a><br/><br/>
이외에 도 설정 파일 웹.xml 에 post 를 delete 와 put 로 전환 하 는 것 을 지원 하 는 성명 을 추가 해 야 합 니 다
<!-- HiddenHttpMethodFilter: POST DELETE POST -->
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
보시 다시 피 이곳 의 변경 과 삭 제 는 모두 post 를 통 해 보 내 집 니 다.put 와 delete 를 지원 하지 않 고 직접 삭 제 를 실현 하 는 것 이 아니 라 post 방식 을 통 해 토 큰 hidden 형식의 input 라벨 을 몰래 가 져 와 서 배경 에 제 가 프론트 데스크 에서 보 낸 것 이 실제 적 으로 삭제 와 수정 요청 이 라 고 알려 줍 니 다.그렇다면 이 과정 에서 어떻게 이 루어 졌 을 까?왜 덧 붙 였 을 까?
<input type="hidden" name="_method" value="DELETE"/>
이 영패 는 남 의 뒤에서 곧 너의 빚 을 살 것 이다.그럼 나중에 어떻게 샀 는 지 한번 봅 시다.결국 웹.xml 에 추 가 된 HiddenHttpMethodFilter 라 는 종 류 를 통 해 doFilter Internal 방법 이 있 습 니 다.디 버 깅 을 통 해 우 리 는 그 실 마 리 를 발견 할 수 있 습 니 다.tomcat(tomcat 8 이 아 닙 니 다)를 시작 하고 delete 작업 에 대응 하 는 input 탭 을 클릭 하여 디 버 깅 인터페이스 에 들 어가 면 다음 과 같은 것 을 볼 수 있 습 니 다.
puut 과 delete 요청 을 어떻게 보 내 는 지 정리 합 니 다.
1.웹.xml 에 HiddenHttpMethodFilter 설정
2.post 요청 보 내기
3.요청 중 숨겨 진 영역 입 니 다.name 은"mothod",value 는 put 또는 delete 입 니 다.
마지막 으로@CookieValue 라 는 주 해 를 말씀 드 리 겠 습 니 다.
3. @CookieValue
이 주석 도 차이 가 많 지 않 은 방법 이자 맵 이 며 쿠키 값 을 매 핑 합 니 다.
우리 가 요청 을 보 낼 때,우 리 는 요청 에 쿠키 값 을 가지 고 있 는 것 을 볼 수 있다.
여기 JSESSIONID 나 Path 같은 거.이제 쿠키 값 을 얻 기 위 한 방법 을 쓰 겠 습 니 다.
SpringMVCTest 에 추가
@RequestMapping(value="/testCookieValue")
public String testCookieValue(@CookieValue("JSESSIONID") String cookieValue){
System.out.println("testCookieValue: " + cookieValue);
return SUCCESS;
}
index.jsp 인터페이스 에 링크 추가
<a href="springmvc/testCookieValue">testCookieValue</a><br/><br/>
이렇게 하면 우 리 는'testCookieValue:1410 F05C9ADD84E8659C2AC79E8CC 666'과 같은 결 과 를 얻 을 수 있다.여기까지 소개 하 겠 습 니 다.
1.@RequestMapping 의 용법
2.요청 한 인자 의@PathVariable,@RequestParam 사용법 가 져 오기
3.REST 스타일 의 요청 을 어떻게 실현 하 는 지 소개 하고 post 가 delete 와 put 요청 으로 어떻게 전환 하 는 지 분석 했다.
4.@CookieValue 의 사용법 소개
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
springmvc application/octet-stream problemmistake: Source code: Solution: Summarize: application/octet-stream is the original binary stream method. If the convers...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.