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