Spring 정리

최고고·2024년 1월 12일
0

Model : 데이터 전달자

  • 컨트롤러에서 생성된 데이터를 담아 view(jsp)에 전달함
    메소드의 파라미터 타입이 model이다? Model타입 객체 생성하고 주입한다.
    request.setAttribute()와 유사한 역할

@modelAttribute("value") ?

  • 기본자료형은 뷰까지 전달이 안되므로, 파라미터 앞에 추가해준다.

@RedirectAttributes ?

  • 일회성 데이터 전달
  • resoponse.sendRedirect("/page?name=aaa&age=10") 와 동일용도임

스프링에서 데이터 송수신

  • 요청에 대한 응답을 HTTP 형식 맞게 데이터를 송수신
  • HTTP Response : 200. 400등 응답 코드, Body 내용을 인들어줘야됨
  • 데이터를 받아 자동 구성 -> RespanseBody, ResponseEntity

HTTP (HyperText Transfer Protocol)

  • 클라이언트- 서버 사이 요청, 응답을 처리하기 3한 규약.

HTTP요청 :

① Start Line: Method, URL, version, 서비에서 요청을 받는 첫줄.
② Headers : 요청에 대한 운영체제, 브라우저, 인증정보 등 부가적정보
③ Body : 요청에 관련된 json, html 등의 구체적 내용

HTTP응답 :

① status Line: HTTP 버전과 헤딩 요청에 대한 처리상태 숫자코드.
② Headers
③ Body

@ ResponseBody

  • HTTP 규격에 맞는 응답을 만들어 줌
  • 어노테이션 붙은 대상을 Response Body에 직렬화
  • 컨트클러에 @RestController 가 붙으면 생략가능.
  • HTP규격 구성요소중 헤더,status 대해 유연한 설정X
    별도의 뷰 제공안함 데이터만 전송.
    Httplederttppedy
    포함하는 클래스

ResponseEntity 객체

  • @ ResponseBody의 문제를 해결함
  • HttpEntity 클레스를 상속받음
  • 모두 담은 요소들을 개체로 만들어 반한 HttpStatus, HttpHeaders,HttpBody
  • ReponseEntity<반환할 타입>
  • 생성자 사용시 바디, 헤더, Status 순 입력
    • 생성자보나 Builder pattem 이용

스프링 JDBC템플릿 메소드

  • update(): 쿼리 연산 통해DB갱신 시켜줄때
  • queryForObject() : select 실행시 하나의 객체 결과값이 나올 떄사용하는 메소드
  • query() : 많은 결과값 (여러row) 처리
  • queryForList() : 결과가 List형태

DAO클래스 insert처리시 두가지 메소드 차이

  • getSqlMapClient :최종 트랜잭션 처리전까지는 완료처리x, 로컬트랜잭션 일괄처리기법
    중간에 에러 발생시 롤백됨
    여러건의 쿼리라면 효율적
  • getSqlMapClientTemplate : 즉시실행, commit

JSTL 태그

<c:if> : else가 없음
속성 test는 조건
var 결과저장변수
scope 조건저장변수

<c:choose> 태그 내에 <c:when> 조건문(if), <c:otherwise> (else)

조건문 값 비교

  • eq : ==
  • ne : !=
  • empty : null
  • !empty : not null, not empty

0개의 댓글