Perkenalan
Istirahat adalah transfer negara representasional. (Sumber Daya) Transformasi keadaan lapisan kinerja. Ini adalah arsitektur perangkat lunak internet paling populer saat ini. Ini memiliki struktur yang jelas, sesuai dengan standar, mudah dimengerti dan mudah diperluas, sehingga sedang diadopsi oleh semakin banyak situs web, memposting, menghapus, menempatkan, dan mendapatkan sesuai dengan crud masing -masing. Spring3.0 mulai mendukung permintaan gaya REST, mengubah permintaan pos menjadi permintaan put dan menghapus melalui org.springframework.web.filter.hiddenhtpmethodfilter. Eksperimen ini menggunakan Spring 4.0.
HiddenhttpMethodFilter Kode Sumber
string final statis public default_method_param = "_method";@override void dofilterinternal (permintaan httpservletRequest, httpservletResponse response, filterchain filterChain) melempar servletException, ioException {string paramvalue = request.getMarameter (this.eoException {string paramvalue = getparameter (this. ("POST" .Equals (request.getMethod ()) && stringutils.haslength (paramValue)) {string method = paramValue.touppercase (locale.English); httpservletRequest wrapper = httpmethodRequestWrapper (request, method); filterchain.dofiloFiler (request); filterchain.dofiler, lainnya, filterchain. {filterchain.dofilter (permintaan, respons);}}Dari kode sumber HiddenhttpMethodFilter, dapat dilihat bahwa Spring mengubahnya sesuai dengan parameter _method dalam permintaan. Oleh karena itu, jika Anda ingin memulai permintaan hapus atau dimasukkan gaya REST, Anda hanya perlu memasukkan parameter _method dalam formulir dan mengatur nilai _method untuk menghapus atau meletakkan (CAPS). Contoh terperinci adalah sebagai berikut:
Konfigurasikan HiddenHttpMethodFilter di web.xml
Tulis halaman penulisan kode pawang
<!-Mengkonfigurasi org.springframework.web.filter.hiddenHttpMethodfilter untuk mengubah permintaan pos menjadi permintaan put atau hapus-> <nilter> <filter-name> hiddenHttpMethodfilter </filter-name> <nilter-class> org.springframework.weB.weB. </tilter> <filter-Mapping> <STERFER-NAME> HiddenHttpMethodFilter </tiler-name> <RURL-PATERS>/*</RURL-POLA> </TERFERTER-MAPPING>
Paket rex.springmvc.handlers; impor org.apache.log4j.logger; impor org.springframework.steretype.controller; impor org.springframework.web.bind.annotation.requestmapping; impor org.springframework.bind.nnotation.requestmapping; impor org.springframework.bind.annotation.requestmapping; Impor org.springframework.bind.annotasi org.springframework.web.bind.annotation.requestparam; @RequestMapping (value = "/resttest")@controllerPublic kelas resttesthandler {private static final Logger = logger. method=RequestMethod.GET) public String restGet(@RequestParam(value="id", required=false) Integer id){logger.debug("restGet:" + id);return SUCCESS;}@RequestMapping(value="/restPut/{id}", method=RequestMethod.PUT) public String restPut(@RequestParam(value="id", required=false) Integer id) {logger.debug ("resput:" + id); return success;}@requestMapping (value = "/restDelete/{id}", method = requestMethod.delete) public string restDelete (@requestparam (value = "id", wajib = false) integer id) {logger.debeB: "id", wajib = false) integer id) {logger.debeB: "ID", wajib = false) integer id) {logger.debeB: "ID", wajib = false) integer id) {logger.debeB: "ID", wajib = false) integer id) {logger.deBeBEb (value = "ID", wajib = false) integer id) {logger.debeB: "" Sukses;}@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 transisi // en" "http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv =" konten-tipe "content =" Text/html; charset = UTF-8 "> <title> test rest </title> </head/html; body = uTf-8"> <title> test rest </title> </head> <"Body> <bry = a htt = a htt = a htt =" html </html <bran> <a htt = "html </html =" uTT = a htt = " 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 = "_ Metode" value = "delete"> <input type = "kirim" value = "kirim"> </form> <br> <br> <form aksi = "restest/restpost" metode = "post"> <input type = "kirim" value = "kirim"> </form> </body> </html>
Catatan: Anotasi @RequestParam di pawang harus ditambahkan dengan parameter yang diperlukan, jika tidak kesalahan 400 akan terjadi saat mengakses halaman.
Meringkaskan
Di atas adalah semua konten artikel ini tentang pengenalan Contoh Gaya REST SpringMVC dan Kode Implementasi. Saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke situs ini:
SpringMVC Memulai Contoh
Penjelasan terperinci tentang kode kueri pengguna untuk pengembangan springmvc RESTFUL API
Pengantar metode SpringMVC untuk menerapkan unggahan asinkron menggunakan MultipartFile
Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya.