| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- 정리
- 페이징처리예제
- JavaScript #선언적함수 #익명함수 #화살표함수 #함수선언방법 #복습
- mybatis
- Java #자바 #초보개발자 #다형성 #동적바인딩 #instanceof #학습 #요약정리 #복습
- Spring
- 복습
- JavaScript #인라인 #인터널 #익스터널 #데이터입출력
- List데이터조회
- 어노테이션
- Java #Web #공부 #복습 #Servlet #서블릿 #포워드 #sendRedirect #dispatcher
- 특징및기본구조
- 프레임워크
- 데이터매핑
- 스프링
- Java
- Java #자바 #인터페이스 #implements #다형성 #interface #복습 #정리 #나만의공부
- mybatis자료형 #참고자료
- 서블릿기초 #servlet #java #webprogramming
- 데이터베이스 #DataBase #Oracle #DB #DataBase개요
- JavaScript #자바스크립트 #복습 #배열 #Array
- 데이터조회예제
- WEB
- fremework
- springframework
- 예제
- Java #JDBC #Mybatis #동적SQL
- JavaScript #예제 #복습 #Web #웹 #개발자가되고파ㅜㅜ
- 동적sql
- JavaScript #자바스크립트 #선택자 #HTML태그접근 #JS
- Today
- Total
개발군싹
[Spring]@RequestMapping() 본문
@RequestMapping() 어노테이션으로 등록된 메소드는 Servlet Mapping 어노테이션과 역할이 같다.
‘example.do’ url요청 ⇒ controller의 특정 메소드 실행
- Servlet을 이용했을 때 1개의 Servlet이 spring에서는 1개의 메소드가 그 역할을 한다.
controller 메소드에 주소 맵핑 ⇒ SpringFramework가 제공하는 어노테이션을 이용하여 맵핑(@RequestMapping())
⭐servlet-context.xml ViewResolver 등록
InternalResourceViewResolver : controller 내 ReuqestMapping(bean등록) 어노테이션으로 선언된 메소드의 스트링을 반환받아 Resolver가 bean으로 등록된 파일을 찾아 있으면 해당 페이지를 반환, 없으면 404에 에러 반환한다.
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
➡️ serlvet-context.xml에 InternalResourceViewResolver를 등록하여 view 매핑주소를 찾을 수 있다.
경로 + view이름을 반환 => 자동으로 viewResolver가 jsp를 찾아서 반환
ex. (prefix)/WEB-INF/views/+반환값+.jsp(suffix) => view가 존재한다면 스프링은 RequestDispatcher.forward() 로 화면을 전환한다.
요청 주소 맵핑 어노테이션 종류
@RequestMapping(”주소”) : 요청 method가 GET,POST 모두 매핑
@GetMapping(”주소”) : 요청 method가 GET 방식일 때 매핑
@PostMapping(”주소”) : 요청 method가 POST 방식일 때 매핑
@PutMapping(”주소”) : 요청 method가 PUT 방식일 때 매핑
@DeleteMapping(”주소”) : 요청 method가 DELETE 방식일 때 매핑
⇒ 어노테이션 선언위치 : 메소드 선언부 위 [또는 클래스 선언부 위 - RequestMapping() 해당]
GET : 조회 | POST : 입력 | PUT : 수정 | DELETE : 삭제
반환형, 매개변수, 어노테이션 알아보기
1. 반환형
1) String : 등록된 InternalResourceViewResolver가 JSP를 찾아 반환해준다.
=> /WEB-INF/views/ 제외한 (경로 + view이름(jsp이름)) 반환.
2) void : URL주소와 (view의 경로+이름)이 같거나, HttpServletResponse로 직접 응답을 한 경우
3) ModelAndView : view화면에 전달할 데이터와 view를 하나의 객체에 묶어서 ViewResolver에 전달한다.
=> Serlvet에서 request, session, context(application)와 같이 데이터를 공유하기 위한 스프링이 제공하는 객체
4) 클래스타입 : 객체 자체를 응답하는 형식 -> json converter를 이용해서 변경하여 응답한다.
=> 메소드 || 반환형에 @ResponseBody어노테이션을 추가
2.매개변수
1) HttpServletRequest
2) HttpServletResponse
=> 1), 2) Servlet에서 사용했던 동작원리와 같다. (구현이 똑같다.)
@RequestMapping("/example.do")
public String exampleMethod(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
3) HttpSession : session 객체
4) java.util.Locale : 서버의 Locale정보를 저장한 객체
5) InputStream / Reader : 읽어오는 스트림 객체 (클라이언트로부터)
6) OutputStream / Writer : 보내는 스트림 객체 (클라이언트에게) -> Download
7) 기본자료형 변수 : 클라이언트가 보낸 파라미터 데이터를 저장할 변수를 선언 => 자동대입
➡️ 매개변수명을 name값과 동일하게 설정해주거나 @RequestParam을 이용해서 맵핑처리 해준다.
➡️ 타입에 맞춰 형변환 해준다.
➡️ 매개변수가 잘못된 경우 BadRequest에러가 발생한다.
8) 클래스타입 (DTO) : Data베이스와 연동해서 데이터 저장하는 객체, 자동으로 클라이언트가 전달한 parameter데이터랑 맵핑해서 객체를 생성해준다. ➡️ DTO 설정된 필드명과 데이터베이스의 컬럼명이 같아야한다. (다를경우 @RequestParam을 이용하여 필드명과 컬럼명을 매핑 할 수 있다.)
객체의 필드와 parameter의 name값이 같은 데이터 맵핑
9) java.util.Map : 클라이언트가 보낸 데이터를 Map으로 처리한다.
(모두 단일값으로만 받는다. 기본자료형만 가능 배열 x )
3. 매핑메소드에 사용하는 추가 어노테이션
10) @RequestHeader(name값) : 헤더정보를 가져올 수 있다.
11) @CookieValue(name값) : 쿠키에 저장되어있는 값 가져올 수 있다.
12) @ResponseBody : 객체를 응답할 때 사용하는 어노테이션 java.Class -> json
13) @RequestBody : 요청 body에 json데이터가 있으면 지정된 객체로 변환해서 저장 json -> java.Class
14) @ModelAttribute : model저장관리 -> hibernate를 이용한 validator
15) @SessionAttribute(key) : session에 저장된 특정값을 가져올 때
16) @Model, ModelAndView : view화면에 전달할 데이터와 view를 하나의 객체에 묶어서 ViewResolver에 전달한다.
➡️ Serlvet에서 request, session, context(application)와 같이 데이터를 공유하기 위한 스프링이 제공하는 객체
'Spring' 카테고리의 다른 글
| [Spring]MyBatis 연결/등록하기 (0) | 2023.12.12 |
|---|---|
| [Spring] 요청 데이터 매개변수를 이용한 데이터 맵핑 예제 (0) | 2023.12.10 |
| [Spring]Spring Bean? (0) | 2023.12.07 |
| [Spring]Spring이란? (1) | 2023.12.07 |
| Maven, Spring IDE(STS4) 설치 (0) | 2023.12.05 |