1 Pendahuluan
Apa itu kerangka kerja MVC
Nama lengkap MVC adalah pengontrol tampilan model, yang merupakan singkatan dari model-view-controller. Ini adalah model desain perangkat lunak. Ini mengatur kode menggunakan metode pemisahan logika bisnis, data, dan tampilan antarmuka, dan mengumpulkan logika bisnis menjadi komponen. Sambil meningkatkan dan mempersonalisasikan antarmuka dan interaksi pengguna, tidak perlu menulis ulang logika bisnis. MVC telah dikembangkan secara unik untuk memetakan fungsi input, pemrosesan, dan output tradisional dalam struktur antarmuka pengguna grafis yang logis.
Model-View-Controller (MVC) adalah pola desain yang terkenal berdasarkan aplikasi antarmuka desain. Ini terutama memisahkan logika bisnis dari antarmuka dengan memisahkan peran model, tampilan dan pengontrol dalam aplikasi. Biasanya, model bertanggung jawab untuk merangkum data aplikasi di lapisan tampilan. Tampilan hanya menampilkan data ini dan tidak mengandung logika bisnis apa pun. Pengontrol bertanggung jawab untuk menerima permintaan dari pengguna dan memanggil Layanan Latar Belakang (Manajer atau DAO) untuk menangani logika bisnis. Setelah diproses, lapisan bisnis latar dapat mengembalikan beberapa data yang akan ditampilkan di lapisan tampilan. Pengontrol mengumpulkan data ini dan menyiapkan model yang akan ditampilkan di lapisan tampilan. Gagasan inti dari model MVC adalah untuk memisahkan logika bisnis dari antarmuka, memungkinkan mereka untuk berubah secara individual tanpa saling mempengaruhi.
Dalam aplikasi SpringMVC, model biasanya terdiri dari objek POJO, yang diproses di lapisan bisnis dan bertahan di lapisan persistensi. Tampilan biasanya templat JSP yang ditulis dalam JSP Standard Tag Library (JSTL). Bagian pengontrol dikelola oleh DispatcherServlet, dan kami akan belajar lebih banyak tentang hal itu dalam tutorial ini.
Beberapa pengembang percaya bahwa lapisan bisnis dan kelas lapisan DAO adalah bagian dari komponen model MVC. Saya memiliki pendapat berbeda tentang ini. Saya tidak berpikir bahwa lapisan bisnis dan kelas lapisan DAO adalah bagian dari kerangka kerja MVC. Biasanya aplikasi web adalah arsitektur tiga lapis, yaitu representasi layanan data. MVC sebenarnya adalah bagian dari lapisan presentasi.
Dispatcher Servlet (Spring Controller)
Dalam aplikasi Spring MVC yang paling sederhana, pengontrol adalah satu -satunya servlet yang perlu Anda konfigurasi dalam file deskripsi Java Web Deployment (mis. File Web.xml). SPRING MVC CONTROLER - Umumnya dikenal sebagai Dispatcher Servlet, mengimplementasikan pola desain pengontrol front -end. Dan setiap permintaan web harus melewatinya sehingga dapat mengelola seluruh siklus hidup permintaan.
Ketika permintaan Web dikirim ke aplikasi Spring MVC, Dispatcher Servlet pertama kali menerima permintaan tersebut. Kemudian mengatur komponen yang dikonfigurasi dalam konteks aplikasi web Spring (seperti pengontrol pemrosesan permintaan aktual dan view resolver) atau menggunakan konfigurasi anotasi, yang semuanya memerlukan pemrosesan permintaan.
Tentukan kelas pengontrol di Spring 3.0, yang harus ditandai dengan anotasi @Controller. Ketika pengontrol dengan anotasi @Controller menerima permintaan, itu akan mencari metode penangan yang sesuai untuk menangani permintaan. Ini mengharuskan pengontrol untuk memetakan setiap permintaan ke metode penangan melalui satu atau lebih pemetaan penangan. Untuk melakukan ini, metode kelas pengontrol perlu didekorasi dengan anotasi @Requestmapping untuk menjadikannya metode penangan.
Setelah metode penangan telah memproses permintaan, ia mendelegasikan kontrol ke tampilan dengan nama tampilan yang sama dengan nilai pengembalian metode penangan. Untuk memberikan metode yang fleksibel, nilai pengembalian metode penangan tidak mewakili implementasi tampilan tetapi tampilan logis, yaitu, tidak ada ekstensi file. Anda dapat memetakan tampilan logis ini ke implementasi yang benar dan menulis implementasi ini ke file konteks sehingga Anda dapat dengan mudah mengubah kode lapisan tampilan tanpa bahkan memodifikasi kode yang meminta kelas penangan.
Merupakan tanggung jawab resolver tampilan agar sesuai dengan file yang benar untuk nama logis. Setelah kelas pengontrol mengurai nama tampilan ke implementasi tampilan. Ini membuat objek yang sesuai sesuai dengan desain yang diimplementasikan oleh tampilan.
2 Paket Jar Impor
Setidaknya harus ada ini.
3 file konfigurasi
3.1 Web.xml
<? Xml Version = "1.0" encoding = "utf-8"?> <web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://java.sun.com/xmlns =" http://java.com/xmlns = "http://java.com/xmlns = XSI: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/we-pappe." "" "" "" "" "" "" "" "" "" <display-name>SpringMVC_HelloWorld</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <creend Welcome-File> default.jsp </celcome-file> </celcome-file-list> <!-Servlet untuk Spring MVC-> <!-Setelah inisialisasi, DispatcherServlet akan secara langsung mencari file springmvc-servlet.xml di bawah/web-inf/. Definisi parameter tag servlet-name harus sesuai dengan file xml-> <servlet> <servlet-name> springmvc </servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherServlet </servlet> <boad-on-tartup> </load-on-startup> </servlet> <boad-on-tartup> </load-on-startup> <servlet-name> springmvc </servlet-name> <rerl-pola>/</rerl-pattern> </servlet-mapping> <Context-param> <param-name> ContextConfigLocation </param-name> </Context-Param> LINGKETCONTEXT.XML </param-value> </Context-param> <listener-class> org.springframework.web.context.contextLoaderListener </listener-class> </engeaner> </seb-app>
3.2 springmvc-servlet.xml
Nama file ini ditentukan oleh <servlet-name> </servlet-name> dari DispatcherServlet yang dikonfigurasi dalam web.xml. Jalur ini dalam konteks/web-inf/, yang terutama mengonfigurasi hubungan yang sesuai antara nama tampilan logis dan tampilan fisik yang dikembalikan oleh pengontrol.
<? XML Versi = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmls xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: tx = "http://www.springframework.org/schema/tx" xmlns: context = "http:/schaMa/TX" XSI: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-leans.xsd http://wwww.springframework.org/orga http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.spramework.org/schema/aop.spring http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd "> <!-Paket yang dipindai secara otomatis-Konteks: Komponen-scan-package =" id="viewResolver" > <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <!-- Controller Returns a logical view name after pre-suffix processing to return to the physical view --> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </tagel> </tobel>
4 Tulis kelas domain
Digunakan untuk merangkum beberapa data pengiriman
Paket com.lin.helloworld.domain; kelas publik HelloWorld {private string data; public helloWorld () {super ();} public helloWorld (string data) {super (); this.data = data;} public getData () {data return;} public void setData (string data) {this.) {return data;} public void setData (string data) {this.) {return data;} public void setData (String Data) {this. "HelloWorld [data =" + data + "]";}} 5 Write Controller
Ini adalah pengontrol di MVC. Yang berbeda dari Struts2 adalah bahwa itu adalah intersep tingkat metode, dan Struts2 adalah intersep tingkat kelas.
Paket com.lin.helloworld.controller; impor org.springframework.stereotype.controller; impor org.springframework.web.bind.annotation.modelattribute; impor org.springframework.wind.annotation.requestmapping; Impor org.spramework.wind.annotation.requestmapping; com com.helloworld.domain.helloworld; @ControllerPublic kelas HelloWorldController {// di sini/halo setara dengan tindakan di struts2 // mengembalikan string ke view @requestmapping ("/hello") public Model dan Sayshello () {// Parameter pertama dari Parameter dan public model dan public Sayshello () {// Parameter pertama dari Parameter Parameter pertama dan Parameter Public dan Parameter Public, dan Parameter Parameter pertama dan Parameter Parameter dan Parameter Public, Parameter Parameter pertama dan Parameter dan Parameter Public, Parameter Parameter pertama dan parameter pertama dan parameter public, namemodelandview model danview = new ModelAndView ("helloWorld", "msg", "helloWorld !!!"); return modelandview;} // mengembalikan objek ke tampilan //@modelattribute ("obj") setara ke bidang di kelas aksi Struts2, // Menangani Pengajuan Formulir: <input name = "obj.data" // Sayshellorld (@ModelAttribute ("Obj") HelloWorld Obj) {System.out.println (obj.toString ()); ModelAndView ModelAndView = ModelAndView baru ("HelloWorld", "OBJ", OBJ); return ModelandView;}}}6 tampilan
<%@ page language = "java" import = "java.util.*" pageEncoding = "UTF-8"%> <%string path = request.getContextPath (); string basepath = request.getscheme ()+": //"+request.getServername ()+":"+request.getserverport ()+PATPERPORT.POCPY ";"; "+": "+"+"+"; "+"; "+"; "+"; "+"; "+"; "+"; "publporpy ();"+";"+";"+";" publport ";"); "+"; "+"; docty/doctypath (): "+request. "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>" rel="external nofollow" > <title>My JSP 'helloworld.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "kedaluwarsa" konten = "0"> <meta http-equiv = "kata kunci" konten = "kata kunci1, kata kunci2, koki"> <meta http http-equiv = "koki" ini = "ini" type = "text/css" href = "styles.css" rel = "eksternal nofollow"> -> </head> <body> helloworld! Ini adalah contoh kerangka kerja MVC Spring. <br> $ {msg} <hr/> <bentuk action = "helloobj" method = "post"> <!- pengiriman formulir di sini berbeda dari struts2. Name = "Data" akan secara otomatis sesuai dengan yang diajukan objek -> <input type = "text" name = "data" size = "30"/> <br/> <input type = "kirim" value = "kirim"/> </form> <hr/> $ {obj.data} </body> </html>7 Struktur Direktori
Meringkaskan
Di atas adalah semua tentang contoh entri SpringMVC dalam artikel ini, saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke situs ini:
Implementasi Pemrograman Java Contoh Login Sederhana SpringMVC
Pemrograman SpringMVC menggunakan antarmuka pengontrol untuk mengimplementasikan kode instance pengontrol
Penjelasan terperinci tentang apakah Interceptor SpringMVC mengimplementasikan sesi pemantauan berakhir
Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini.