Spring 교육정리 7일차
예제 순서
- project spring-web08
- project spring-web09
오늘 공부 한 것
- bean 스키마는 2개이상 가질 수 있음(환경설정, 컨트롤러)
- url 패턴 다른 방식(/) 무조건 do가 오지 않아도 된다.
- ViewResolvers Namespaces를 통해 생성
- 스프링 로그인 복습 예제) project spring_web08
-@(annotation)을 사용하여 컨트롤러를 구현
ㅇ 컨트롤러 2개 구현(환경설정, 컨트롤러)
ㅁ
ㅇ 폴더 안에서 상세 항목별로 폴더를 또 분류
ㅁ 컨트롤러에서 경로를 변경해줘야됨
ㅁ url과 자원의 경로는 다름/파일이름도 바꾸고/ 클라이언트 브라우저에서 아예 접근 못하게 함
- 로그인 정보를 컨트롤러로 전달하여 다른 페이지로 넘기기
ㅁ @ 사용하여 매개변수로 파라미터를 받을 수 있다.
ㅁ 자료 형 변환 필요없이 원하는 데이터타입으로 넣을 수 있다.
ex)@RequestParam("전달받은 파라미터명")변경할 데이터 타입 변수명
ㅁ session에 데이터를 담아 로그인 후에도 로그인 정보를 확인 할 수 있게 구현
※ 전달되는 파라미터가 없을 경우 400번 에러 발생
- 회원가입 기능 구현
ㅁ 규모가 클수록 업무분할을 위해서 컨트롤러를 기능별로 나눈다.
ㅁ @(annotation) 장점 : 개발 할 때 좋음 단점 : 분석하는게 힘듬(어떤 객체가 들어오는지 알 수 없음)
ㅁ url 경로와 뷰의 상대경로는 별개로 지정 할 수 있다.
- 요청 파라미터 한꺼번에 받기
ㅇ post 방식만 가능
ㅇ 전달하는 파라미터의 값이 dto의 멤버필드와 이름이 동일해야 된다.
- get방식과 post방식을 직관적으로 바로 볼 수 있게 @(annotation) 구현
ㅁ RequestMapping을 사용하지 않고 @(annotation)을 사용하여 get과 post를 명시
- 공통되는 url경로를 외부로 빼서 적용
ㅇ 기업용 제품은 누가봐도 알 수있게 변수명을 길게 쓰고 역할도 나누기 위해 폴더도 길게 만든다.
어차피 공동으로 쓰는 거라면 클래스명 위에 공통의 키워드 명을 지정해주면 된다.
- 요청 url로 redirect 하는 방법
- 로그인 및 회원가입 구현 복습 예제) project spring_web09
tip. 크롬은 프로토콜은 생략 (http://) 익스플로러는 프로토콜 생략시 검색을 한다.
- 경로의 기준
ㅇ contextpath = web application name/WebContent
directory/filename : 물리적 디렉토리(mvc1) or 논리적 경로(스프링)
ㅇ jsp에서 url경로 입력시 ex)register/step1.do ./ 생략되어 있는 상태
/ 그냥 슬래쉬 쓸 경우 웹 애플리케이션 경로도 없애버리고 그 자리에 들어감
=> contextpath가 사라짐 => 톰캣 가장 상위 홈 경로로 생각함
ㅇ url은 dispatcherservlet이 인식하는 url의 경로이지 실제 jsp 파일이 있는 상대 경로가 아니다.
ㅇ 여러 웹 애플리케이션을 가지고 있음 프로젝트에서 다른 프로젝트로 이동 할 수 있음
톰캣 기준으로는 하나임
ㅇ / 이렇게 쓸 경우 /spring_web08/register/step2.do 절대경로
=> 서버에 올릴 때 이름을 바꿔 올릴 수 있어서 경로가 바껴서 문제가 생긴다.
- 404 자원을 못찾을 때
- 500 로직에러
- get/post 요청 중 하나만 있고 하나만 없을때 405번 에러 발생
tip. @autowired를 사용하고 @Qualifier는 인터페이스 사용시 다양한 객체를 받을 때(중복)
사용한다.
복습 할 것
tip.
용어