자바 풀스택 교육/Spring

Spring 교육정리 7일차

JD재버워키 2020. 2. 12. 08:57

예제 순서

- 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.

 

 

용어