본문 바로가기

Spring

Spring(10) - Restful방식을 스프링에서사용하기

웹브라우저는 전송방식으로 GET, POST만 사용할 수 있어서 DELETE, PUT방식은 제외된다.
하지만 스프링에서는 웹브라우저에서도 Restful을 사용할 수 있도록 지원해주는데 방법은 다음과 같다.

1. web.xml에서 HiddenHttpMethodFilter 추가하기


<filter>
    <filter-name>httpFilter</filter-name>
    <filter-class>
    	org.springframework.web.filter.HiddenHttpMethodFilter
    </filter-class>
</filter>
<filter-mapping>
    <filter-name>httpFilter</filter-name>
    <servlet-name>사용하는 servlet</servlet-name>
</filter-mapping>

2. view파일에서 <form:form> 태그의 method속성에 delete 혹은 put 이용


<form:form method = "put" action = "..">

<form method = "post" action = "..">
	<input type="hidden" value="put" name="_method">
</form>

HiddenHttpMethodFilter는 요청 파라미터에 _method가 존재할 경우, _method의 파라미터 값을 요청방식으로 사용하도록 스프링 MVC관련정보를 설정해준다. 덕분에 DispatcherServlet은 이 정보를 이용해서 컨트롤러의 알맞은 메서드를 찾기 때문에 웹브라우저를 이용하더라도 Restful 방식으로 구현된 컨트롤러를 사용할 수 있게 된다.

'Spring' 카테고리의 다른 글

Spring(12) - 파일업로드  (0) 2019.04.16
Spring(11) - XML/JSON, @RequestBody, @ResponseBody  (0) 2019.04.16
Spring(9) - View구현  (0) 2019.04.15
Spring(8) - HandlerMapping, HandlerAdapter  (0) 2019.04.15
Spring(7) - HandlerInterceptor  (0) 2019.04.15