스프링 2일차

선장원·2021년 11월 23일
0

Spring

목록 보기
2/16

2일차 (11/23)

Spring

프레임 워크(Framework)

  • string
  • js framework
    • React.js, node.js, vue.js,~~~

스트링 프레임워크

  • tool : STS3 3.9.18
  • spring framework version : 5.2.9
  • jdk : 11 (open jdk)

스트링 프로젝트 실행 순서

web.xml > root-context.xml > servlet-context.xml > 기본주소(/)호출 > 기본주소를 처리하는 Controller클래스의 메서드 호출 > 해당 jsp 화면 브라우저 출력

pom.xml의 역할

dependency를 작성하면 maven이 해당 라이브러리를 사용자/.m2/repository폴더에 다운받아 관리해줌

spring MVC project

MVC(Model 2방식) : 웹 서비스 구축을 위한 디자인 패턴
M(Model)
V(view)
C(controller)

Model 1방식

내가 기억으로 그려서 정확하지 않다 ㅠ

Model 2방식

ex) Memberjoin.jsp[V] <->
MemberController.memberJoin() <->
MemberService.memberJoin() [C] <->
MemberRepository.memberJoin() <->
DB.memberTable Insert [M]

servlet(서블릿)

http의 요청과 응답을 처리해준다???

주소

스프링프로젝트를 실행하면 기본주소는 가장마지막 패키지 이름귀에 /가 붙는다고 보면 됨.
ex) com.icia.study가 기본 패키지라면 실행시 기본 주소는
localhost:포트번호/study/
이후에 다른 주소요청을 하면 기본주소 위에 해장 주소가 붙는다고 보면 됨.

  • 회원가입 요청
    • localhost:포트번호/study/join
  • 로그인요청
    • localhost:포트번호/study/login
  • 회원목록 출력요청
    • localhost:포트번호/study/list

주소 불러오기

homeController에서 메서드를 만들어서

@RequestMapping(value=”/hello”) : 주소값에 /hello가 있으면 메서드를 실행

String 값으로 hi를 보내면 servlet-context에서 ViewResolver라는 것을 실행해
hi 값에 .jsp를 더해서 보이게 해준다.

V(jsp) > C(controller) 파라미터 전달

  • form태그
  • query string
    • search라는 주소로 오늘날씨라는 파라미터를 전송하면
    • search?q=오늘날씨

@RequestMapping

  • value : 요청을 처리할 주소
  • method : http method
    • get or post
    • 차이는 알아서 찾아보세요
    • 이건 쉽지

form태그로 전달한 파라미터 받기

1번은 보낼 때(name) 2번은 받을 변수

변수를 받아서 메서드 안에서 사용?

스트링이 관리하는 객체

아래와 같은 Annotation을 붙여주면 프로젝트를 시작할 때 스프링이 해당 클래스를 Spring Bean으로 등록하여 관리해줌

  • @Controller

    • Controller Class로 사용할 클래스에 붙임
    • Controller class의 역할
      • 주소요청에 대한 매핑(Request Mapping을 통해)
      • 비즈니스 로직 처리를 위해 Service클래스 호출
      • 처리결과에 따라 브라우저에 띄울 jsp리턴
  • @Service

    • Service Class로 사용할 클래스에 붙임
    • Service Class의 역할
      • Controller로부터 전달 받은 데이터에 대한 처리(비즈니스 로직(business logic)이라고도 함
      • DB작업이 필요하면 Repository 클래스를 호출함
      • 처리결과를 Controller클래스로 리턴
  • @Repository

    • Repository(DB와 관계된) Class로 사용할 클래스에 붙임
    • Repository Class의 역할
      • 쿼리를 수행할 mybatis 함수호출
      • 처리결과를 Service클래스로 리턴

servlet-context에서 지정한 폴더(프로젝트?)에서 @어노테이션이 붙어있는 파일들을 찾아서 관리를 한다

파라미터 jsp로 보내기

homeController 에서
Model 변수 사용하기
.addAttribute(“ jsp에서 사용할 내용 ”,사용할 매개변수);

jsp에서
${jsp에서 사용할 내용}

꿀팁

프로젝트에서 빨간 오류가 뜨면?

프로젝트 우클릭 리프레쉬 해보기

메뉴 > project > clean

.m2/repository 삭제
sts 종료후 삭제
다시 sts 실행하면 좀 기다려야함.
서버 지우기
servlet-context.xml의 base package확인
이렇게 해도 안된다면 나 자신을 의심하자

profile
코딩도전기

0개의 댓글