Pengantar Spring MVC
Spring MVC adalah kerangka kerja web yang ringan berdasarkan model arsitektur MVC. Tujuannya adalah untuk memodulasi pengembangan web dan memisahkan arsitektur keseluruhan.
Spring MVC memiliki keunggulan berikut:
Sebagai bagian dari kerangka kerja musim semi, ia memiliki keunggulan musim semi (IOC, AOP, dll.)
Mendukung pemetaan pengontrol URL-ke-halaman yang fleksibel
Berikan verifikasi data yang fleksibel, pemformatan, dan mekanisme pengikatan data
Mendukung gaya tenang
Proses Permintaan MVC Musim Semi
Proses permintaan keseluruhan kerangka kerja MVC musim semi adalah sebagai berikut:
Gambar di atas melibatkan beberapa komponen fungsional Spring MVC:
Front-end Controller (DispatcherServlet): Menerima permintaan pengguna dan mengembalikan hasil permintaan. Fungsinya setara dengan prosesor forwarder atau pusat, yang mengontrol seluruh proses eksekusi, menjadwalkan berbagai komponen dan mengurangi kopling antar komponen.
Pemetaan Prosesor: Temukan penangan prosesor yang sesuai berdasarkan URL yang diminta oleh pengguna, melalui anotasi atau konfigurasi XML.
Adaptor Prosesor: Lengkapi panggilan ke metode dalam prosesor berdasarkan pawang yang ditemukan oleh mapper
Handler: Logika spesifik pemrosesan permintaan, mengembalikan data dan melihat informasi
View Resolver: Parse tampilan spesifik, dan purse nama tampilan logis menjadi tampilan nyata melalui informasi tampilan dalam objek ModelAndView.
Penjelasan terperinci tentang langkah -langkah spesifik dari proses permintaan:
1: Pengguna memulai permintaan, dan permintaan akan dicegat oleh pengontrol front-end (DispatcherServlet)
2: Front-end Controller (DispatcherServlet) meminta prosesor mapper (handlermapping) untuk menemukan penangan
3: Prosesor mapper (handlermapping) menemukan pawang yang sesuai sesuai dengan konfigurasi (dapat lebih beranotasi atau konfigurasi XML), yang mungkin berisi beberapa pencegat pencegat dan mengembalikannya ke pengontrol front-end.
4: Pengontrol front-end (DispatcherServlet) meminta adaptor prosesor (HandlerAdapter) untuk menjalankan pawang yang sesuai
5: Adaptor diserahkan ke prosesor pawang yang sesuai untuk dieksekusi
6: Setelah prosesor pawang dieksekusi, kembalikan objek ModelandView ke adaptor prosesor
7: Adaptor prosesor menerima hasil pengembalian prosesor pawang dan mengembalikan hasilnya ke pengontrol front-end (DispatcherServlet)
8: Pengontrol front-end (DispatcherServlet) menerima data dan melihat informasi yang dikembalikan oleh adaptor prosesor, meminta parser tampilan, dan parse tampilan yang sesuai
9: Parser tampilan kembali ke pengontrol front-end berdasarkan hasil tampilan yang sesuai dengan informasi tampilan.
10: Pengontrol front-end menerima tampilan spesifik, membuat tampilan, mengisi data model ke dalam tampilan tampilan, dan menghasilkan tampilan akhir
11: Pengontrol front-end mengembalikan hasilnya kepada pengguna
Membangun demo dari awal
Buat proyek:
Buat proyek web dinamis baru di bawah Eclipse
Struktur Direktori Default Proyek:
Tambahkan dependensi paket jar
Impor paket JAR yang sesuai di bawah WebContent> Web-Inf> lib folder, di mana paket JAR inti adalah Spring-Webmvc-5.0.0.release.jar, dan yang lainnya terutama pegas untuk mengelola konteks dan paket Beande, pustaka tag JSTL dan paket log untuk mencetak log pencetakan:
Mengkonfigurasi pengontrol front-end di web.xml
Pengontrol front-end setara dengan servlet milik Spring MVC, yang digunakan untuk mencegat semua permintaan yang memenuhi syarat dan menyerahkannya ke kerangka kerja untuk pemrosesan selanjutnya.
<? Xml Version = "1.0" encoding = "UTF-8"?> <Web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://xmlnsmlnsp.org/org/xlns =" http://xmlnsmlnsp.org/org/xx = XSI: schemalocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/xml/xml/xml/nee/nee/JEE/JEE/JEE/XML/XML/XML/XML/XML/XML/XML/XML/XML/XML/XML/XML/XML/XML/XML/XML/XML/xml id = "webapp_id" version = "3.1"> <!-Mengkonfigurasi controller-end-end-dispatchServlet-> <servlet> <servlet-name> springmvcnext </servlet-name> <servlet-class> org.springframework.web.servlet.dispatchleServlet. If contextConfigLocation is not configured, the configuration file of springmvc is defaulted to: WEB-INF/servlet name+"-servlet.xml" --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name> springmvcNext </servlet-name> <rerl-pola>/</url-pola> <!-Permintaan intersep yang dikirim oleh pengguna sesuai dengan aturan yang ditetapkan oleh URL-Pattern. Semua permintaan dicegat di sini, termasuk sumber daya statis-> </servlet-Mapping> </seb-app>
Aturan pencocokan URL yang didefinisikan dalam tag <servlet-Mapping> dalam bentuk yang sesuai dengan *. Tindakan, servlet yang sesuai bernama SpringMvcNext, dan pengontrol yang dikonfigurasi oleh <Servlet adalah org.springframework.web.servlet.dispatchservlet, yang merupakan controller front-end proyek SpringMVC. Tag <InT-Param> adalah parameter yang diandalkan oleh pengontrol saat ini. Dua parameter mewakili parameter konteks dan PARAMETER LOADING PATH masing -masing.
Tentang ClassPath: mewakili jalur output setelah kompilasi proyek web
Konfigurasi Konfigurasi MVC Musim Semi
Tambahkan file applicationContext.xml di direktori kode sumber java
Konten spesifik:
<? XML Versi = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmls xmlns: p = "http://www.springframework.org/schema/p" xmlns: context = "http://www.springframework.org/schema/mvc" xsi: schemalocation = "http:/schema http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-44 http://www.springframework.org/schema/context/spring-context.xsd "> <!-Tag pemindai paket akan digunakan untuk mengaktifkan fungsi pemindaian anotasi MVC Spring, memungkinkan anotasi seperti @controller dan @ripquestmapping. -> <konteks: komponen-scan-package = "com.sl.controller" /> <!-driver anotasi-> <mvc: anotasi-didorong /> <!-konfigurasi resolver tampilan-> <bean id = "internalResourceviewResolver"> <property nama = "prefix" value = " /web-in /". " </tagel> </tobel>
Tambahkan pengontrol dan tampilan tampilan
Tambahkan paket com.sl.controller di direktori src, dan tambahkan kode pengontrol sebagai berikut:
Paket com.sl.controller; impor org.springframework.stereotype.controller; impor org.springframework.web.bind.annotation.requestmapping; impor org.spramework.web.servlet.modelandview; @controllerpublic class hellowlor/custonmapping @clashon @claskon (controllerpconlic @claskon (controllerpublic class @claskon (controllerpublic class hellowlerpublic Permintaan di jalur URL yang dimulai dengan /indeks: termasuk /index /* dan /Index.html Model dan public helloWorld () {string message = "Hello Spring MVC"; return new ModelAndView ("index", "message", pesan); }}Tambahkan View File Index.jsp di Web-Inf/View
<html> <head> <title> spring mvc </iteme> </head> <body> $ {pesan} </body> </html>Hasil Menjalankan:
Meringkaskan
Di atas adalah seluruh konten artikel ini. Saya berharap konten artikel ini memiliki nilai referensi tertentu untuk studi atau pekerjaan semua orang. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi. Terima kasih atas dukungan Anda ke wulin.com.