springmvc 상용 5 가지 주해
1.@Component 는 클래스 정의 전에@Component 주 해 를 추가 하면 spring 용기 에 의 해 인식 되 고 bean 으로 전 환 됩 니 다.
2.@Repository 에서 Dao 구현 클래스 에 대한 설명(특수 한@Component)
3.@Service 는 업무 논리 층 에 대한 설명 에 사 용 됩 니 다.(특수 한@Component)
4.@Controller 는 제어 층 주석 에 사 용 됩 니 다.(특수 한@Component)
상기 네 가지 주 해 는 모두 클래스 에 주 해 된 것 이 고 주 해 된 종 류 는 spring 초기 에 하나의 bean 으로 말 한 다음 에 통일 적 으로 관리 합 니 다.
2.요청 과 매개 변수 형 주석:
1.@RequestMapping:요청 주소 맵 을 처리 하 는 데 사용 되 며 클래스 와 방법 에 사용 할 수 있 습 니 다.
●value:request 가 요청 한 맵 주 소 를 정의 합 니 다.
●method:request 주소 요청 방식 을 정의 합 니 다.[GET,POST,HEAD,OPTIONS,PUT,PATCH,DELETE,TRACE.]기본적으로 get 요청 을 받 아들 입 니 다.요청 방식 과 정의 방식 이 다 르 면 요청 이 성공 할 수 없습니다.
●params:request 요청 에 포함 되 어야 할 매개 변수 값 을 정의 합 니 다.
●headers:request 요청 에 지정 한 요청 헤 더 를 포함 해 야 합 니 다.예 를 들 어 RequestMapping(value="/something",headers="content-type=text/*")설명 요청 에"text/html","text/plain"이라는 유형의 Content-type 헤 더 를 포함 해 야 일치 하 는 요청 입 니 다.
●consumes:제출 요청 내용 의 종 류 를 정의 합 니 다.
●produces:되 돌아 오 는 콘 텐 츠 형식 을 지정 합 니 다.request 요청 헤더 에 있 는(Accept)형식 에 만 지정 한 형식 이 포함 되 어 있 을 때 되 돌아 갑 니 다.
@RequestMapping(value="/requestTest.do",params = {"name=sdf"},headers = {"Accept-Encoding=gzip, deflate, br"},method = RequestMethod.GET)
public String getIndex(){
System.out.println(" ");
return "index";
}
위 코드 는 GET 요청 방식 을 표시 합 니 다.요청 매개 변 수 는 name=sdf 라 는 인 자 를 포함 해 야 합 니 다.그리고 요청 헤더 에는 Accept-Encoding=gzip,deflate,br 라 는 형식 헤더 가 있어 야 합 니 다.이렇게 주 해 를 통 해 하나의 요 구 를 구속 할 수 있다.
2.@RequestParam:들 어 오 는 인자 의 값 을 가 져 오 는 데 사용 합 니 다.
●value:매개 변수의 이름
●required:이 전 송 된 매개 변수 가 필요 한 지 여 부 를 정의 합 니 다.기본 값 은 true 입 니 다.(@RequestMapping 의 params 속성 과 유사 합 니 다)
@RequestMapping("/requestParams1.do")
public String requestParams1(@RequestParam(required = false) String name){
System.out.println("name = "+name);
return "index";
}
@RequestMapping("/requestParams2.do")
public String requestParams2(@RequestParam(value = "name",required = false) String names){
System.out.println("name = "+names);
return "index";
}
두 가지 입 참 방식 은 같 습 니 다.성명 value 의 이름 을 표시 할 때 입 참 매개 변수 이름과 value 처럼 성명 을 표시 하지 않 으 면 첫 번 째 방식 으로 성명 한 것 처럼 입 참 매개 변수 이름과 함수 매개 변수 변수 변수 이름 과 같 습 니 다.3.@PathViriable:경로 매개 변수 값 을 정의 하 는 데 사용 합 니 다.
●value:매개 변수의 이름
●required:입력 매개 변수 가 필수 값 인지 정의 합 니 다.
@RequestMapping("/{myname}/pathVariable2.do") public String pathVariable2(@PathVariable(value = "myname") String name){
System.out.println("myname = "+name); return "index";
}
이 경 로 는{my name}을 경로 매개 변수 로 설명 합 니 다.이 경 로 는 임의의 값 이 될 것 입 니 다.@PathVariable 은 value 에 따라 경로 의 값 을 가 져 올 수 있 습 니 다.4.@Response Body:방법 에 작용 하여 전체 반환 결 과 를 json 이나 xml 형식 과 같은 형식 으로 되 돌 릴 수 있 습 니 다.
@RequestMapping("/{myname}/pathVariable2.do")
@ResponseBody
public String pathVariable2(@PathVariable(value = "myname") String name){
System.out.println("myname = "+name);
return "index";
}
이것 은 페이지 가 아니 라 문자열'index'를 페이지 에 직접 인쇄 한 것 으로 다음 코드 와 유사 합 니 다.
PrintWriter out = resp.getWriter();
out.print("index");
out.flush();
5.@CookieValue:요청 한 Cookie 값 가 져 오기
@RequestMapping("/requestParams.do")
public String requestParams(@CookieValue("JSESSIONID") String cookie){
return "index";
}
6、@ModelAttribute:model 에 파 라 메 터 를 저장 할 때 설명 방법 이나 파 라 메 터 를 설명 할 수 있 습 니 다.방법 에 설명 할 때 이 방법 은 프로세서 방법 이 실행 되 기 전에 실 행 됩 니 다.그리고 되 돌아 오 는 대상 을 session(전제 시@Session Attributes 주석 이 있어 야 합 니 다)이나 모델 속성 에 저장 합 니 다.@ModelAttribute("attributeName")는 표시 방법 을 지정 하지 않 으 면 지정 합 니 다.속성 이름 으로 되 돌아 오 는 클래스 이름(이니셜 소문 자)을 사용 합 니 다.
@ModelAttribute("user")
public UserEntity getUser(){
UserEntity userEntityr = new UserEntity();
userEntityr.setUsername("asdf");
return userEntityr;
}
@RequestMapping("/modelTest.do")
public String getUsers(@ModelAttribute("user") UserEntity user){
System.out.println(user.getUsername());
return "/index";
}
위의 코드 에서@ModelAttribute("user")주 해 를 사용 하여 컨트롤 러 를 실행 하기 전에 실행 한 다음 에 user 라 는 model 데 이 터 를 생 성 합 니 다.컨트롤 러 에서 우 리 는 매개 변수 에 주 해 된@ModelAttribute 를 통 해 파 라 메 터 를 얻 은 다음 에 model 을 컨트롤 러 에 응용 합 니 다.jsp 페이지 에서 도 사용 할 수 있 습 니 다.
<body> ${user.username} </body>
7、@SessionAttributes기본적으로 Spring MVC 는 모델 의 데 이 터 를 request 필드 에 저장 합 니 다.요청 이 끝나 면 데이터 가 효력 을 잃 습 니 다.페이지 를 넘 어 사용 하려 면그럼 세 션 에 사용 해 야 합 니 다.@Session Attributes 주 해 는 모델 의 데 이 터 를 session 필드 에 저장 할 수 있 습 니 다.@ModelAttribute("user")와 함께 사용 할 때 해당 하 는 이름 의 model 값 을 session 에 저장 합 니 다.
@Controller
@RequestMapping("/test")
@SessionAttributes(value = {"user","test1"})
public class LoginController{
@ModelAttribute("user")
public UserEntity getUser(){
UserEntity userEntityr = new UserEntity();
userEntityr.setUsername("asdf");
return userEntityr;
}
@RequestMapping("/modelTest.do")
public String getUsers(@ModelAttribute("user") UserEntity user ,HttpSession session){
System.out.println(user.getUsername());
System.out.println(session.getAttribute("user"));
return "/index";
}
}
이전 예 의 코드 와 결합 하여@Session Attributes 주 해 를 추가 한 다음 에 두 번 요 청 했 습 니 다.첫 번 째 session 에 user 라 는 속성 값 이 존재 하지 않 습 니 다.두 번 째 요청 을 했 을 때 session 에 또 있 는 것 을 발 견 했 습 니 다.이것 은 첫 번 째 요청 을 했 을 때 model 데이터 가 session 에 저장 되 지 않 았 기 때 문 입 니 다.두 번 째 요청 때 이미 지난번 모델 을 가 져 올 수 있 습 니 다.메모:@ModelAttribute("user")UserEntity user 가 주석 내용 을 가 져 올 때 session 에 해당 하 는 속성 값 이 있 는 지 먼저 조회 하고 없 으 면 Model 을 조회 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.