springMVC_02 원리 와 Controller 관련 주해 설정
3907 단어 controller
첫 번 째 단계: 사용자 가 요청 합 니 다. 예 를 들 어 "http://localhost:8080/springmvc/user/reg?method=reg&name=zs" 두 번 째 단계: 서버 에서 요청 을 받 았 습 니 다. Dispatcher Servlet 이 존재 하 는 것 을 발견 하면 Dispatcher Servlet 에 맡 깁 니 다. Dispatcher Servlet 내 부 는 Handler Mapping 에 해당 하 는 URL 이 있 는 지 확인 하고 있 으 면 해당 하 는 Controller 에 맡 깁 니 다.
/** List of HandlerMappings used by this servlet */
private List<HandlerMapping> handlerMappings;// URL Controller
세 번 째 단계: 대응 하 는 컨트롤 러 를 찾 은 후 대응 하 는 컨트롤 러 를 실행 합 니 다.
STEP 4: Controller 실행 완료 후:
방법 이 String 으로 되 돌아 오 면 ViewResolver 보기 프로 세 서 를 통 해 처리 합 니 다.
만약 방법 이 Model AndView 로 돌아간다 면 이 대상 은 모델 과 보기 의 정 보 를 포함 합 니 다. (모델 은 데 이 터 를 저장 하고 jsp 에서 EL 표현 식 으로 값 을 추출 합 니 다)
다섯 번 째 단계: Dispatcher Servlet 는 View Resolver 나 Model AndView 에서 관련 정 보 를 얻어 서버 에 되 돌려 줍 니 다.
여섯 번 째 단계: 서버 가 결 과 를 클 라 이언 트 에 응답 합 니 다.
==============================================================================
@Controller
spring 의 Controller 는 singleton 의 것 입 니 다.
여러 요청 이 같은 콘 톨 러 를 공유 하 는 것 이다.
따라서 Controller 는 무 상태 여야 합 니 다 (구성원 변 수 는 service 대상 일 수 밖 에 없습니다)
springMVC 는 방법 매개 변 수 를 통 해 클 라 이언 트 가 전달 하 는 매개 변 수 를 받 습 니 다.
struts 2 는 Controller 에 구성원 변 수 를 설정 하여 인 자 를 받 습 니 다. struts 2 의 Controller 는 prototype 입 니 다.
spring 3 에 서 는 @ Controller 를 통 해 컨트롤 러 클래스 로 정의 할 수 있 습 니 다.
설정 파일 에 component - scan 을 추가 해 야 합 니 다. spring 에 해당 하 는 가방 의 종 류 를 스 캔 하고 @ Controller 를 설정 한 종 류 를 spring 용기 에 등록 하 라 고 알려 야 합 니 다.
<context:component-scan base-package="com.gc.springmvc.controller"/>
@RequestMapping
클래스 에 설정 하면 URL 과 클래스 를 연결 합 니 다. 이 클래스 의 URL 전역 설정 으로 모든 방법 에 유효 합 니 다.
@ RequestMapping (params = "method = reg1") 을 통 해 이 컨트롤 러 의 어떤 방법 이 호출 되 었 는 지 구분 합 니 다.
방법 에 설정 하면 URL 과 방법 을 연결 합 니 다. 이 방법의 특유 한 설정 은 이 방법 에 만 유효 합 니 다.
@RequestParam
클 라 이언 트 가 전달 하 는 매개 변수 이름과 수신 매개 변수 이름 이 일치 하지 않 는 문 제 를 처리 합 니 다.
@ RequestParam 을 통 해 클 라 이언 트 매개 변수 와 일치 하 는 이름 을 설정 한 다음 springMVC 에서 방법 에 있 는 매개 변수 에 값 을 전달 합 니 다.
@SessionAttributes
클래스 단계 에 정의 합 니 다. Model, ModelView, ModelMapping 에 key 를 저장 할 때 session 에 함께 저장 해 야 합 니 다.
@SessionAttributes({"loginUser","xxx"})
"loginUser" 키 를 Model 에 넣 으 면 session 에 저장 합 니 다.
@ModelAttribute
session 의 일부 값 을 추출 하여 할당 하 는 방법 에 사용 되 는 형 삼
public String userInfo2(@ModelAttribute("loginUser") User user) {...}
session 에서 key 가 "loginUser" 의 값 을 꺼 내 user 에 게 할당 할 것 입 니 다.
==============================================================================
springMVC 의 방법 매개 변수 처리:
클 라 이언 트 가 들 어 오 는 매개 변수 라면 방법의 인삼 이름 은 param 이름과 일치 해 야 합 니 다.
클 라 이언 트 가 들 어 오 는 인자 이지 만 방법 이 일치 하지 않 으 면 @ RequestParam 을 통 해 변환 할 수 있 습 니 다.
만약 방법의 형 삼 이 하나의 대상 이 라면 클 라 이언 트 가 들 어 오 는 매개 변 수 는 대상 의 property 속성 과 완전히 대응 해 야 합 니 다.
Model, ModelAndView, ModelMapping, HttpServletRequest, HttpServletResponse 등 이 필요 하 다 면
방법 매개 변수 에 직접 쓸 수 있 습 니 다. springMVC 는 자동 으로 생 성하 고 들 어 옵 니 다.
springMVC 의 방법 반환 값 처리:
일반적으로 String 이나 ModelAndView 로 돌아 가 고 ModelMapping, Map, List, Set, Object 등 도 지원 합 니 다.
String 을 되 돌려 줍 니 다. 보기 의 이름 을 표시 합 니 다. prefix 와 suffix 를 결합 하여 jsp 와 일치 합 니 다.
Model AndView 로 돌아 가면 보기 정보 와 데이터 정 보 를 동시에 포함 합 니 다.
==============================================================================
springMVcd 의 퍼 가기 와 재 설정
return "forward:userlist"; 기본 값 forword
return "redirect:login"; 리 셋 으로 지정
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
iOS open source project: DYNavigationControllerDYNavigationController is a project that implements left and right sliding navigation. First initialize DYNavigationCont...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.