그냥 던져줄수 있는 파일은 정적 파일로 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으로 저장됨