Введение
Отдых является репрезентативным государственным передачей. (Ресурс) Преобразование состояния уровня производительности. Это самая популярная архитектура интернет -программного обеспечения в настоящее время. Он имеет четкую структуру, соответствующую стандартам, легко понять и легко расширяться, поэтому она принимается все больше и большим количеством веб -сайтов, публикует, удаляет, ставит и получается, соответственно соответственно. Spring3.0 начал поддерживать запросы в стиле REST, преобразование запросов POST в запросы PUT и удаление через org.springframework.web.filter.hiddenhttpmethodfilter. В этом эксперименте используется пружина 4.0.
Shiddenhttpmethodfilter Исходный код
Публичная статическая конечная строка default_method_param = "_method";@переопределить защищенную void dofilterinternal (httpservletrequest, httpservletresponse response, filterchain filterchain), бросает Servletexception, ioException {String paramvalue = recement.getParameter (this.methodpare, ioException {String paramvalue = recement.getParameter (this.metheThodParm); ("Post" .equals (request.getmethod ()) && stringutils.haslength (paramvalue)) {String method = paramvalue.touppercase (locale.english); httpservlectrequest wrapper = new httpmethodrequestwrapper (request, method); filterChain.dofilter (wrupper, ratpper); {filterChain.dofilter (запрос, ответ);}}Из исходного кода hiddenhttpmethodfilter можно видеть, что пружина преобразует его в соответствии с параметром _method в запросе. Поэтому, если вы хотите инициировать удаление или запрос в стиле REST, вам необходимо только включить параметр _method в форму и установить значение _method для удаления или положения (caps). Подробные примеры следующие:
Настройка hiddenhttpmethodfilter в web.xml
Страница написания кода записи
<!-Настройка org.springframework.web.filter.hiddenhttpmethodfilter для преобразования запросов POST в запросы PUT или DELETE-> <Filter> <Filter-Name> hiddenhttpmethodfilter </filter-mame> <filter-class> org.springframework.web.filter.hiddenhttpmethodfilter </filter-class> </filter> <filter-mapping> <filter-name> hiddenhttpmethodfilter </filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <url-pattern>/*</url-pattern>
пакет rex.springmvc.handlers; import org.apache.log4j.logger; import org.springframework.steretype.controller; импорт org.springframework.web.bind.annotation.requestmapping; import org.spramework.web.bindtation.Requestmath; org.springframework.web.bind.annotation.requestparam; @requestmapping (value = "/resttest")@controllerpublic class resttesthandler {private static final logger = logger.getlogger (resttesthandler.class); private Static ancess = "success"; method = requestmethod.get) public String restget (@RequestParam (value = "id", require = false) INTEGE id) {logger.debug ("restput:" + id); return ucsuest;}@requestMapping (value = "/restDelete/{id}", method = requestMethod.delete) public String RestDelete (@RequestParam (value = "id", обязательный = false) integer) {logger.debug ("value =" id ", refend = false) {logger.debug (" value = "id", false); Success;}@requestMapping (value = "/restpost", method = requestmethod.post) public String Restpost () {logger.debug ("Restpost"); return Success;}}<%@ page language = "java" contentType = "text/html; charset = utf-8" pageencoding = "utf-8"%> <! doctype html public "-// w3c // dtd html 4.01 transitional // en"-// w3c // dtd html 4.01 // en "http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv =" content-type "content =" text/html; charset = utf-8 "> test rest rest> rel="external nofollow" >Test Rest Get</a> <br> <form action="restTest/restPut/1" method="post"> <input type="hidden" name="_method" value="PUT"> <input type="submit" value="submit"> </form> <br> <form action="restTest/restDelete/1" method="post"> <input type="hidden" name = "_ Method" value = "delete"> <input type = "Opport" value = "propect"> </form> <br> <br> <form action = "reststest/restpost" method = "post"> <input value "value =" upport "> </form> </body> </html>
ПРИМЕЧАНИЕ. Аннотация @RequestParam в обработчике должна быть добавлена с необходимым параметром, в противном случае ошибка 400 будет возникнуть при доступе к странице.
Суммировать
Выше приведено все содержание этой статьи о введении примеров SpringMVC Rest Style и Code Code. Я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на этот сайт:
Пример начала работы SpringMVC
Подробное объяснение кода пользователя запроса для SpringMVC Development Restful API
Введение в метод реализации асинхронной загрузки SpringMVC с использованием MultipArtFile
Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это.