웹브라우저는 전송방식으로 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 |