1 분 소요


  1. 개발 환경 준비 1)
  2. Spring IoC 1) 2)
  3. Spring MVC 1) 2) 3)
  4. Database 활용
  5. View Template 1) 2) 3) 4) 5)
  6. AOP / Filter / Interceptor
  7. File Upload / Download

요청 처리

요청 처리 시 사용하는 클래스와 어노테이션

@PathVariable

  • 주소창에 입력된 주소에서 값을 동적으로 받아온다.
  • 요청을 처리하는 URL에 { 주소값 } 형식으로 지정한다.
  • @PathVariable(“주소값”) String 변수명 => 주소값이 변수명으로 들어간다.

file\src\main\java\com\example\basic\controller\RequustController.java

Java

1
2
3
4
5
6
7
8
9
10
11
...
@RestController
public class RequustController {
    @GetMapping("req/path/{path1}/{path2}")
    public String path(
            @PathVariable("path1") String path1,
            @PathVariable("path2") String path2) {
        return path1 + ", " + path2;
    }

...

http://localhost:8080/req/path/1st_path/2nd_path img


@ModelAttribute

  • DTO의 변수들이 파라미터가 되어 전송된다.
  • Model 클래스인 Member 클래스 안에 있는 변수명으로 파라미터를 받아와 지정한 html에 member라는 이름으로 데이터가 전송
  • html에서는 전송받은 member라는 이름으로 데이터를 사용할 수 있다. (thymleaf 사용)

file\src\main\java\com\example\basic\controller\HtmlController.java

Java

1
2
3
4
5
6
7
8
9
10
...

@Controller
public class HtmlController {
    @GetMapping("/signup")
    public String signUp(@ModelAttribute Member member) {
        return "signUp";
    }

...

file\src\main\resources\templates\signUp.html

HTML

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<html xmlns:th="http://www.thymeleaf.org">

<head>
</head>

<body>
    <h1>Member 정보</h1>
    <hr /><!-- 여는 태그와 닫는 태그를 한번에 표현 -->
    <h2>[[${member}]]</h2>
    <h2>사용자 이름 : [[${member.name}]]</h2><br /><!-- 줄바꿈 -->
    <h2>사용자 아이디 : [[${member.userId}]]</h2><br>
    <h2>사용자 비밀번호 : [[${member.userPassword}]]</h2><br>
</body>

</html>

http://localhost:8080/signup?name=val1&userId=val2&userPassword=val3 img


연습

  • 클라이언트의 요청 파라미터에 따라 응답이 달라지도록 작성해보자

file\src\main\java\com\example\basic\controller\RequustController.java

Java

1
2
3
4
5
6
7
8
9
...
@RestController
public class RequustController {
    @GetMapping("req/data")
    public Map<String, Object> dataArea(@RequestParam Map<String, Object> map) {
        return map;
    }

...

http://localhost:8080/req/data?area=제주도&score=100 img


Reference

  • 이 포스트는 SeSAC 인공지능 SW 개발자 양성 과정 - 김영식 강사님의 강의내용을 정리한 것입니다.

댓글남기기