티스토리 뷰

카테고리 없음

@RequestMapping 사용법

진열사랑 2025. 3. 21. 11:10

JSP에서 method="post"로 보냈는데, Controller의 @RequestMapping("주소.do")에서 받는 것이 가능한가?

Spring MVC에서 @RequestMapping은 기본적으로 모든 HTTP 메서드(GET, POST 등)를 허용합니다.
따라서, @RequestMapping("주소.do")처럼 HTTP 메서드를 명시하지 않으면 GET, POST 모두 처리 가능합니다.


🔹 1️⃣ @RequestMapping의 기본 동작

  • @RequestMapping("주소.do") 만 선언하면 GET, POST, PUT, DELETE 등 모든 HTTP 메서드를 허용
  • 즉, JSP에서 method="post"로 데이터를 보내도 @RequestMapping("주소.do")에서 정상적으로 받을 수 있음

예제

@Controller
public class SampleController {

    @RequestMapping("/submit.do")  // HTTP 메서드 미지정 → GET, POST 모두 처리 가능
    public String handleRequest(HttpServletRequest request) {
        String param = request.getParameter("name");
        System.out.println("Received: " + param);
        return "result";
    }
}

JSP에서 method="post"로 데이터를 전송해도 정상적으로 실행됨


🔹 2️⃣ @RequestMapping에서 HTTP 메서드 지정 (POST만 허용)

하지만, 보안상 특정 메서드만 허용하려면 method 속성을 사용하여 제한하는 것이 좋습니다.

✅ POST 요청만 허용하는 방법

@RequestMapping(value = "/submit.do", method = RequestMethod.POST)
public String handlePost(HttpServletRequest request) {
    String param = request.getParameter("name");
    System.out.println("Received (POST): " + param);
    return "result";
}

✔ 이렇게 하면 GET 요청은 405(Method Not Allowed) 에러 발생


🔹 3️⃣ @PostMapping을 사용하여 POST 요청만 받기 (Spring 4.3 이상)

Spring 4.3부터는 @RequestMapping 대신 **더 간결한 @PostMapping**을 사용할 수 있습니다.

@PostMapping("/submit.do")
public String handlePost(HttpServletRequest request) {
    String param = request.getParameter("name");
    System.out.println("Received (POST): " + param);
    return "result";
}

✔ @PostMapping은 @RequestMapping(value = "/submit.do", method = RequestMethod.POST)와 동일


🔹 4️⃣ 결론

Controller 선언 방식 GET 가능 POST 가능 설명

@RequestMapping("/submit.do") 기본적으로 모든 HTTP 메서드 허용
@RequestMapping(value = "/submit.do", method = RequestMethod.POST) POST 요청만 허용
@PostMapping("/submit.do") POST 요청만 허용 (Spring 4.3 이상)

📌 따라서, @RequestMapping("주소.do")만 선언하면 JSP에서 method="post"로 보낸 데이터를 받을 수 있음
📌 그러나 명확하게 하려면 @PostMapping 또는 method = RequestMethod.POST를 사용하는 것이 좋음 🚀

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함