Spring MVC - 요청방식(Get,Post)

2020. 9. 5. 21:34Java/Spring

반응형

Spring에도 jsp와 마찬가지로 요청방식 중 get,post를 가장 많이 사용한다.

 

spring에서는 조금 더 엄격하게 전송의 관리가 이루어진다.

 

바로 controller에서 미리 어떤 전송으로 받을지 정해두는 것이다.

 

아래와 같은 index.jsp를 만든다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="test1">test1</a>
<form action="test1" method="post">
<button type="submit">test1</button>
</form>

<hr>

<a href="test2">test2</a>
<form action="test2" method="post">
<button type="submit">test2</button>
</form>
</body>
</html>

그리고 controller 메소드를 다음과 같이 작성한다.

@Controller
public class MappingController {
	@RequestMapping(value="/test1",method = RequestMethod.GET)
	public String test1() {
		return "test1";
	}
	@RequestMapping(value="/test2",method = RequestMethod.POST)
	public String test2() {
		return "test2";
	}

}

위 메소드에서 /test1 주소 요청은 RequestMethod.GET을 통해서 get으로만 받게 되어있다.

 

그리고, /test2 주소 요청은 ResquestMethod.POST를 통해서 post으로만 받게 되어있다. 

 

두 개의 주소 요청은 해당 방식으로만 와야하고 아닐시 오류가 난다.

 

위와 같은 index.jsp에서 test1을 post로 요청하면 다음과 같은 오류가 난다.

 

이 두가지 방식을 모두 허용하는 방법도 존재한다.

 

방법 1. 같은 주소의 요청을 받는 메서드 두개를 작성한다.

	@RequestMapping(value="/test3",method = RequestMethod.POST)
	public String test3() {
		return "test3";
	}
	@RequestMapping(value="/test3",method = RequestMethod.GET)
	public String test4() {
		return "test3";
	}

방법 2. RequestMapping을 통해서 묶어서 요청한다.

	@RequestMapping(value="/test4",method = {RequestMethod.GET,RequestMethod.POST})
	public String test5() {
		return "test4";
	}

 

위 두가지 방법을 사용하면 두개의 요청을 모두 받을 수 있다. 두개의 요청에 따라서 다른 처리를 한다면 1 번 방법 같은 처리를 할 때는 2번 방법을 사용하면 된다.


get,post 요청을 받는 방법에는  다음과 같이 @PostMapping,@GetMapping 어노테이션을 이용한 방법도 있다.

@PostMapping("/test5")
public String test6() {
	return "test5";
}

@GetMapping("/test5")
public String test7() {
	return "test5";
}

 

반응형

'Java > Spring' 카테고리의 다른 글

Spring MVC - 객체를 통한 파라미터 주입  (0) 2020.09.06
Spring MVC - 파라미터 추출  (0) 2020.09.06
Spring MVC - URL Mapping  (0) 2020.09.05
Spring MVC - 기본세팅(3) - JAVA  (0) 2020.09.04
Spring(MVC) - 기본세팅(2) - XML  (0) 2020.09.03