06-07 Spring

Ruinak·2021년 6월 7일
0

Spring Lesson

목록 보기
3/23
post-custom-banner

그냥 던져줄수 있는 파일은 정적 파일로 resources에 분류해서 보관
동적 : 실행되어야 하는 상태

  • resources 폴더에 css, images, script, upload 폴더 생성
  • 관련 정적 파일들은 여기에 보관할 예정

  • views 폴더에 board와 member 폴더를 새로 생성
  • views 폴더에 index 파일 붙여넣기
  • board 안에는 boardContent, boardList, boardWrite 파일 붙여넣기
  • member 안에는 join, login 파일 붙여넣기

  • html을 jsp로 변경해주기

  • HomeController를 새로 만들어서 Controller 애노테이션 등록
  • Controller 애노테이션을 등록하면 스프링빈으로 전환이 가능해짐

  • /가 붙으면 절대경로
  • /가 빠지면 상대경로
  • 스프링 프로젝트는 덩치가 큰 프로젝트를 함께 분업으로 하는 것에 맞춰져 있음
    - 이런 경우 서로간의 규칙이 중요함. 규칙이 같아야 유지보수가 수월함

  • 기존의 img src의 경로를 절대경로이자 서블렛에서 매핑으로 설정한 경로로 변경
  • /resources/imges/*

  • 톰캣의 웹모듈에서 Path를 /로 설정해야 별도의 이름을 사용 안하고 루트 경로가 바로 프로젝트 이름이 됨

  • DispatcherServlet는 프레임워크로 틀이 있고 그 안에 우리 코드가 사용 당하는 구조이므로 수동적으로 사용됨
  • 우리 코드가 사용하는 구조라면 라이브러리 형태로 DispatcherServlet를 능동적으로 사용
  • DispatcherServlet를 움직이는 핵심 로직은 내가 만든 Controller가 담당함
  • 요청에 대한 Controller가 있는지 찾는 역할은 HandlerMapping이 담당하며 찾아서 해당되는게 있으면 Controller를 실행해줌
  • Controller가 찾은 view이름을 토대로 view를 검색하는 역할은 ViewResolver가 담당
  • 검색후 처리 결과를 View에 전달하면 View가 DispatcherServlet를 전달
  • DispatcherServlet이 최종 결과를 클라이언트에게 보냄
  • DispatcherServlet는 요청도 받고, 결과도 보내줌
  • 내가 작성하는 부분은 Controller와 View만 작성, 화면 구현을 위한 jsp만 손본다. 그 외는 스프링이 담당!
    - 내가 만든 코드가 DispatcherServlet에 사용 당하는 것임을 명심!
  • web.xml은 톰캣이 사용하는 것!

라이브러리는 함수나,클래스를 담아서 무언가를 만들기위해 사용하는 도구이고, 프레임워크는 인터페이스처럼 저희가 틀이 있으면 채워넣는 개념이라고 보면 될까요?
- 네 이렇게 보시면 됩니다. 우리가 코드를 채워넣으면 이렇게 실행해줄께요~

  • 화면의 특정부분을 담을 폴더로 include를 생성
  • index에서 header 부분과, footer 부분을 떼어내서 따로 설정
  • include 형식으로 불러와서 적용

import할 때!!

  • 내 워크스페이스에 폴더를 넣은뒤에 maven project로 불러와야 불러와진다.
  • 일반 프로젝트가 아니므로 maven으로 불러와야함

  • header와 footer를 만든 후 중복되는 코드는 include로 대체
  • join, login, boardContent, boardList, boardWrite에 header와 footer를 include한뒤 잘되었나 확인

  • SQL과 연동하기 위해 VO 생성
  • _를 사용해도 되지만 프로그래밍에서는 대문자일때만 사용함
  • 그러므로 카멜표기법으로 표기
  • recvEmail은 Y나 N 두 문자 중 하나만 사용함

  • Interface MemeberMapper 생성
  • INSERT로 쿼리문 날림
  • 쿼리문 내 value에서 #{ }는 Getter의 get 부분이라고 생각하면 됨

  • context:component-scan을 하나 더 늘림으로써 service도 탐색이 가능하게 만듬
  • 탐색이 되어야 component 애노테이션을 달아서 스캔 후 스프링 빈으로 생성 가능

  • 이메일 수신 동의 체크박스를 체크 안하면 오류가 발생
  • recvEmail을 Y 또는 N만 받기로 했지만, 체크를 하지 않으면 Null이 반환되므로 열 유형이 부적절함
    - 왜? varchar2를 1을 줘서 초과해서그런건가?
  • @RequestParam(defaultValue = "N") String recvEmail을 추가했더니 정상적으로 회원가입이 진행됨
  • 메일 수신 동의는 N으로 저장됨
profile
Nil Desperandum <절대 절망하지 마라>
post-custom-banner

0개의 댓글