๋ฐ์ํ
[๐คModel] MethodController
package xyz.itwill10.controller;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class MethodController {
- ๐์์ฒญ ๋ฐฉ์์ ์๊ด์์ด ๋ฌด์กฐ๊ฑด ํธ์ถ : /method_input
//์ฌ์ฉ์์๊ฒ ๊ฐ์ ์
๋ ฅ๋ฐ๊ธฐ ์ํ JSP ๋ฌธ์(์
๋ ฅํ์ด์ง)์ ViewName์ ๋ฐํํ๋ ์์ฒญ ์ฒ๋ฆฌ ๋ฉ์๋
// => ํด๋ผ์ด์ธํธ์ ์์ฒญ ๋ฐฉ์(GET,POST,..)์ ์๊ด์์ด ๋ฌด์กฐ๊ฑด ํธ์ถ๋๋ ์์ฒญ ์ฒ๋ฆฌ ๋ฉ์๋ ํธ์ถ
@RequestMapping("/method_input")
public String inputOne() {
return "method_input1";
}
- ๐์์ฒญ ๋ฐฉ์์ ์๊ด์์ด ๋ฌด์กฐ๊ฑด ํธ์ถ : /method_output
// ์
๋ ฅ๊ฐ์ ๋ฐํ๋ฐ์ Request Scope ์์ฑ๊ฐ์ผ๋ก ์ ์ฅํ๊ณ ์์ฑ๊ฐ์ ์ถ๋ ฅํ๊ธฐ ์ํ JSP ๋ฌธ์์ ViewName์ ๋ฐํํ๋ ์์ฒญ ์ฒ๋ฆฌ ๋ฉ์๋
// => ํด๋ผ์ด์ธํธ์ ์์ฒญ ๋ฐฉ์(GET,POST,..)์ ์๊ด์์ด ๋ฌด์กฐ๊ฑด ํธ์ถ๋๋ ์์ฒญ ์ฒ๋ฆฌ ๋ฉ์๋ ํธ์ถ
//=> request ๊ฐ์ฒด: request์๋ ํด๋ผ์ด์ธํธ์ ๋ชจ๋ ์ ๋ณด๊ฐ ์ ์ฅ๋์ด ์์ผ๋ ์์ฒญ์ ํ์ํ ์ ๋ณด ๋ฌ๋ผ๊ณ ํ๊ธฐ
//=> response ๊ฐ์ฒด: ํด๋ผ์ด์ธํธ์๊ฒ ์๋ตํ ๋ ํ์ํ ์ ๋ณด๋ฅผ response์ ์ ์ฅํค์ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ตํ๊ธฐ
@RequestMapping("/method_output")
public String outputOne(HttpServletRequest request,HttpServletResponse response) throws IOException {
//ํด๋ผ์ด์ธํธ๊ฐ ํด๋น ํ์ด์ง๋ฅผ GET ๋ฐฉ์์ผ๋ก ์์ฒญํ ๊ฒฝ์ฐ - ๋น์ ์์ ์ธ ์์ฒญ
if(request.getMethod().equals("GET")) {
//response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED); //ํ์ฉ๋์ง ์๋ ๋ฉ์๋ - 405
//400๋ ์๋ฌ : ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ์๋ชป๋์์ ๋
//401
//402
//403
//404 (๊ถํ์ด ์์)
//405 (์์ฒญ๋ฐฉ์์ด ์๋ชป๋จ) ex. GET๋ฐฉ์ ์์ฒญ์ธ๋ฐ POST๋ฐฉ์์ผ๋ก ์์ฒญํ ๊ฒฝ์ฐ
response.sendRedirect("method_input"); //ํด๋ผ์ด์ธํธ์๊ฒ URL ์ฃผ์ ์ ๋ฌ - URL ์ฃผ์๋ก ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์์ฒญ
return null; //์๋ฌด๊ฒ๋ ๋ฐํ ์ํ๋ฉด ์๋ฌ๋จ์ด์ง๋ฏ๋ก null ๋ฐํํด์ ๋ง๋ฆ
}
//POST๋ฐฉ์์ ์์ฒญ์ด๊ณ , JSP๋ฌธ์๋ฅผ ๊ตฌ์ฑํ๋ ์
๋ ฅํ์ด์ง(method_input1.jsp)์
//์บ๋ฆญํฐ์
์ด utf-8์ด๋ฏ๋ก utf-8๋ก ๋ณ๊ฒฝํ์
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name"); //์ ๋ฌ๊ฐ์ ๋ฐํ๋ฐ์ ์ ์ฅ
request.setAttribute("name", name); //๋ทฐ์์ ์ฌ์ฉํ ์ ์๋๋ก Request Scope์ ์ ์ฅ
return "method_output";
}
- ๐๊ฐ์ : [GET] ๋ฐฉ์์ผ๋ก๋ง ์์ฒญ ์ฒ๋ฆฌ ๋ฉ์๋ ํธ์ถ : /method
//์ฌ์ฉ์์๊ฒ ๊ฐ์ ์
๋ ฅ๋ฐ๊ธฐ ์ํ JSP ๋ฌธ์(์
๋ ฅํ์ด์ง)์ ViewName์ ๋ฐํํ๋ ์์ฒญ ์ฒ๋ฆฌ ๋ฉ์๋
// => ํด๋ผ์ด์ธํธ๊ฐ ํ์ด์ง๋ฅผ [GET] ๋ฐฉ์์ผ๋ก ์์ฒญํ ๊ฒฝ์ฐ์๋ง ์์ฒญ ์ฒ๋ฆฌ ๋ฉ์๋ ํธ์ถ
//method ์์ฑ : RequestMethod ์๋ฃํ(Enum)์ ์์(Constant) ์ค ํ๋๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ค์
// => RequestMethod ์๋ฃํ(Enum)์ ์์์๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ ๋ฐฉ์์ ์์๋ก ์ ๊ณต
// => method ์์ฑ์ผ๋ก ํด๋ผ์ด์ธํธ๊ฐ ํ์ด์ง๋ฅผ ์์ฒญํ๊ธฐ ์ํ ์์ฒญ๋ฐฉ์์ ์ง์ ๊ฐ๋ฅ
// => method ์์ฑ๊ฐ์ผ๋ก ์ค์ ๋ ์์ฒญ๋ฐฉ์์ด ์๋ ๋ฐฉ๋ฒ์ผ๋ก ํ์ด์ง๋ฅผ ์์ฒญํ ๊ฒฝ์ฐ 405 ์๋ฌ์ฝ๋ ๋ฐ์
// => [GET] ๋ฐฉ์์ผ๋ก ์์ฒญ ์ฒ๋ฆฌ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ธฐ ์ํด @RequestMapping ์ด๋
ธํ
์ด์
๋์ @GetMapping ์ด๋
ธํ
์ด์
์ฌ์ฉ ๊ฐ๋ฅ
@RequestMapping(value = "/method" , method = RequestMethod.GET)
//@GetMapping("/method")
public String inputTwo() {
return "method_input2";
}
- ๐๊ฐ์ : [POST] ๋ฐฉ์์ผ๋ก๋ง ์์ฒญ ์ฒ๋ฆฌ ๋ฉ์๋ ํธ์ถ : /method
//์
๋ ฅ๊ฐ์ ๋ฐํ๋ฐ์ Request Scope ์์ฑ๊ฐ์ผ๋ก ์ ์ฅํ๊ณ ์์ฑ๊ฐ์ ์ถ๋ ฅํ๊ธฐ ์ํ JSP ๋ฌธ์์ ViewName์ ๋ฐํํ๋ ์์ฒญ ์ฒ๋ฆฌ ๋ฉ์๋
// => ํด๋ผ์ด์ธํธ๊ฐ ํ์ด์ง๋ฅผ [POST] ๋ฐฉ์์ผ๋ก ์์ฒญํ ๊ฒฝ์ฐ์๋ง ์์ฒญ ์ฒ๋ฆฌ ๋ฉ์๋ ํธ์ถ
// => ์์ฒญ ์ฒ๋ฆฌ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ์์ฒญ URL ์ฃผ์๊ฐ ๊ฐ์๋ ์์ฒญ๋ฐฉ์์ ๋ค๋ฅด๊ฒ ์ง์ ํ๋ฉด ๋ค๋ฅธ ์์ฒญ ์ฒ๋ฆฌ ๋ฉ์๋๋ก ๋งคํ ์ฒ๋ฆฌ
// => [POST] ๋ฐฉ์์ผ๋ก ์์ฒญ ์ฒ๋ฆฌ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ธฐ ์ํด @RequestMapping ์ด๋
ธํ
์ด์
๋์ @PostMapping ์ด๋
ธํ
์ด์
์ฌ์ฉ ๊ฐ๋ฅ
@RequestMapping(value = "/method" , method = RequestMethod.POST)
//@PostMapping("/method")
public String outputTwo(HttpServletRequest request) throws UnsupportedEncodingException {
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
request.setAttribute("name", name);
return "method_output";
}
}
[๐คView] method_input1.jsp - ์ ๋ ฅํ์ด์ง
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SPRING</title>
</head>
<body>
<h1>์
๋ ฅ ํ์ด์ง</h1>
<hr>
<form action="/method_output" method="post">
์ด๋ฆ : <input type="text" name="name">
<button type="submit">์ ์ก</button>
</form>
</body>
</html>
[๐คView] method_input2.jsp - ์ ๋ ฅํ์ด์ง
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SPRING</title>
</head>
<body>
<h1>์
๋ ฅ ํ์ด์ง</h1>
<hr>
<form action="/method" method="post">
์ด๋ฆ : <input type="text" name="name">
<button type="submit">์ ์ก</button>
</form>
</body>
</html>
[๐คView] method_output.jsp - ์ถ๋ ฅํ์ด์ง
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SPRING</title>
</head>
<body>
<h1>์ถ๋ ฅ ํ์ด์ง</h1>
<hr>
<h2>${name }๋, ํ์ํฉ๋๋ค.</h2>
</body>
</html>
๋ฐ์ํ