나의 수업일지

인천 일보 아카데미 42일차 -2- 어노테이션 - Controller , GetMapping / 주소를 parameter로 / parameter로 받은 값 꺼내기 /

2023. 4. 20. 23:46
  • Controller

알아보기 전에 먼저 스프링 프레임워크의 MVC패턴을 살짝 알아보겠습니다

스프링 프레임워크에서는 MVC패턴을 사용하고 있습니다

Model - View - Controller 의 약자입니다

여기서 Model은 DB를 말하고 View는 사용자가 보는 인터페이스를 말합니다

Controller는 인터페이스 받아온 정보를 토대로

개발자가 정해놓은 규칙에 따라  DB에 전달하거나 받아오는 하는 역활을합니다

중간에서 다리 역활을 한다고 생각하면 편합니다

 

 

  • Controller- 사용해보기

스프링 프레임워크에서는 Controller는 어노테이션으로 추가하여 사용합니다

import org.springframework.stereotype.Controller;

@Controller
해당 클래스의 생성자 {

이런식이고 IntelliJ 유료버전에서는 자동완성 기능을 사용하면 import는 자동으로 만들어집니다

이렇게 @Controller를 상속받는 class는 자동으로 스프링컨테이너의 빈으로 등록되어

Controller로 사용 가능해집니다

(물론 , 프로젝트를 만들때 잘 설정했다면 말이죠

@Controller 사용했지만 자동으로 class가 빈에 등록되지 않는다면

프로젝트를 만들때 servlet-context.xml 설정에 문제가 없는지 한번 더 보시길 추천합니다)

 

 

  • @GetMapping - 알아보기

@GetMapping의 기능은 간단합니다

1. @Controller가 설정된 class에서 사용가능합니다

2. 사용자가 인터페이스에서 요청한 동적인 사항 (버튼을 눌러 이동한다던가)을

    맵핑으로 지정한 메서드를 찾습니다

3. View로 리턴하여 인터페이스에 출력해줍니다

 

 

  • @GetMapping - Hello Spring Framework!! 출력하기

 

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HomeController {
    @GetMapping("/")
    public String index() {
        return "index";
    }
}

@GetMapping의 사용예시입니다

사용자가 웹에 들어 왔을때 실행되는 Mapping 입니다

사용자가 웹에 들어오면 " / "get요청이 들어오게 됩니다

이후 , 해당 메서드(index)를 찾아 View에 index를 리턴합니다

그러면 Spring이 자동으로 src/main/webapp의 WEB-INF에서

index라는 이름의 View를 찾아서 반환해줍니다.

실행 결과

 

 

  • parameter란?

parameter라는 단어의 뜻은 한가지가 아닙니다

스프링에서의 파라미터란

메서드의 매개변수로 받는 값도 파라미터라고 하고.

HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법 중 하나입니다.

 

그냥 쉽게 설명하면

http://test101.com/req-param1?email=aa@aa.com&password=1q2w3e

?부분부터 뒤까지가 파라미터입니다

 

 

  • parameter로 받은 값 꺼내기

파리미터는 데이터를 전달 받는 방식이기 때문에

저희는 파라미터로 받은 값을 꺼내 사용해야합니다

 

먼저 사용자의 정보가 담긴 파라미터를 받아왔다고 가정하겠습니다

 

파라미터에서 정보를 꺼내오는 방법은 크게 2가지가 있습니다

HttpServletRequest 서블릿 객체를 사용하는 방식과

스프링에서 제공하는 @RequestParam를 사용하는 방식입니다

 

 

1. HttpServletRequest객체 - 사용

@GetMapping("/req-param1")
    public String req_param1(HttpServletRequest request){
    주소의 파라미터를 서블릿으로 만든 객체request에 매개변수로 담아줍니다
        // email 값 꺼내기
        String email = request.getParameter("email");
        email에 파라미터로 받은 email 정보를 담아줍니다
        
        String password = request.getParameter("password");
        password에 파라미터로 받은 password 정보를 담아줍니다
        
        System.out.println("email = " + email);
        System.out.println("password = " + password);
        이후 잘 담겼는지 출력해봤습니다
        
        //요청 방식 조회
        System.out.println("request.getMethod = " + request.getMethod());
        //요청 URL 조회
        System.out.println("request.getRequestURL = " + request.getRequestURL());
        return "test1";
    }

 

 

2. @RequestParam - 사용

마찬가지로 사용자의 정보가 담긴 파라미터를 받아왔다고 가정하겠습니다

 

    @GetMapping("/req-param2")
    public String reqParam2
    	(@RequestParam("name") String name,@RequestParam("age") int age){
    	애초에 매개변수로 받을때 @RequestParam을 사용하여
        피라미터의 값을 변수에 담아줍니다
        
        System.out.println("name = " + name + ", age = " + age);
        이후 출력합니다
        
        return "test2";
    }

@RequestParam를 사용하면 메소드가 정말 짧아지는걸 확인 할 수 있습니다

'나의 수업일지' 카테고리의 다른 글

인천 일보 아카데미 44일차 -1- 실습  (0) 2023.04.24
인천 일보 아카데미 43일차 -1- 프로젝트 다시 만들기 / Model 알아보기 / Model - 객체를 출력 / Model - List를 출력  (0) 2023.04.23
인천 일보 아카데미 42일차 -1- IntelliJ - Spring Framework 프로젝트 만들어보기  (0) 2023.04.20
인천 일보 아카데미 41일차 - Spring Framework 와 Library 의 차이 / IntelliJ- 설치하기  (0) 2023.04.19
인천 일보 아카데미 39~40일차 - 포트폴리오 만들어보기 (내용없음)  (0) 2023.04.18
'나의 수업일지' 카테고리의 다른 글
  • 인천 일보 아카데미 44일차 -1- 실습
  • 인천 일보 아카데미 43일차 -1- 프로젝트 다시 만들기 / Model 알아보기 / Model - 객체를 출력 / Model - List를 출력
  • 인천 일보 아카데미 42일차 -1- IntelliJ - Spring Framework 프로젝트 만들어보기
  • 인천 일보 아카데미 41일차 - Spring Framework 와 Library 의 차이 / IntelliJ- 설치하기
GUPING
GUPING
안녕하세요 개발자를 꿈꾸는 GUPING 입니다
GUPING
개발자를 꿈꾸는 GUPING
GUPING
전체
오늘
어제
  • 분류 전체보기 (89)
    • 나의 수업일지 (88)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 네이버
  • naver
  • 버튼2가지이벤트
  • 업로드파일이름출력
  • 로그인form
  • 검색결과페이징
  • 여러사진프리뷰
  • 로그인게시판
  • Ajax
  • 파일이름(다중)
  • 파일이름가져오기
  • 다중프리뷰
  • 개힘드렁
  • 페이징Controller
  • 지식인
  • 버튼 이벤트 변경
  • realative
  • 버튼 이벤트 함수 변경
  • PAGE
  • 수정
  • 페이징
  • 로그인 경고문
  • 파일 이름 가져오기
  • Paging
  • 답변 채택
  • 클래스 이름 변경
  • 검색
  • 삭제
  • 틀만들기
  • pagingAjax

최근 댓글

최근 글

hELLO · Designed By 정상우.
GUPING
인천 일보 아카데미 42일차 -2- 어노테이션 - Controller , GetMapping / 주소를 parameter로 / parameter로 받은 값 꺼내기 /
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.