본문 바로가기

프로젝트 & TIL/일별 공부 기록 (백엔드 스쿨)

18일차 - 스프링부트, 세션, thymeleaf

* JACKSON에 의해 객체가 문장화(JSON)되고, 이때 인자가 없고 is 또는 get으로 시작되는 메서드의 결과도 가져간다.

* return 값으로 파일의 경로를 설정했을 때는 @ResponseBody를 붙이지 않는다.


@RequestScope

- 매 요청마다 객체가 생성된다.

  

  • Request : 서버는 요청 정보들을 보관하기 위해 HttpServletRequest 객체를 생성해 정보를 저장한다. 이 객체는 응답 결과가 전송될 때까지 유지 및 사용할 수 있다.
  • RequestScope : Request 객체를 사용할 수 있는 범위(요청~응답)

세션

쿠키 : 클라이언트, 서버가 생성/수정/삭제 가능 => 보안 취약

세션 : 서버만 생성/수정/삭제 가능, 첫 방문 시 sessionId를 매우 길게 만들어 발급 => 보안 강화


Form으로 URL 쉽게 생성하기

<form method="GET" action="URL 주소" target="_blank">
  <input type="text" name="id" placeholder="아이디">
  <input type="password" name="password" placeholder="비밀번호">
  <button type="submit">login</button>
</form>

- login 버튼을 누르면 'URL 주소?id=(입력값)&password=(입력값)' 로 동작

- 새로운 창에서 실행된다.(target="_blank")

- method="GET" 은 생략 가능


  • GET : URL에 정보가 담겨서 전송된다.
  • POST : URL에 정보가 담기지 않는다. 전송 데이터의 길이 제한이 없다.

절대 주소와 상대 주소

  • 절대 주소 : 도메인 + 경로(http://www.naver.com/search...), 또는 경로 전체(/search...)
  • 상대 주소 : 현재 위치를 기준으로 공통의 경로를 제외한 경로

ex) 'localhost/member/login' 에서 'localhost/member/logout'으로 이동 시 form의 action 값에 'logout'만 적어줘도 실행됨


thymeleaf

- 클라이언트에게 응답할 브라우저 화면을 만들어주는 View template engine

<div th:if="${조건문}">
    <h1>...</h1>
</div>

th:if="${조건문}" -> 조건문이 true면 div 블럭이 보여지고, false면 보이지 않는다.