Saya selalu menggunakan SSH. Karena perusahaan ingin menggunakan SpringMVC, saya belum pernah terpapar sebelumnya, jadi hari ini saya akan belajar kerangka kerja ini dengan Anda sehingga saya dapat melakukan pekerjaan saya.
Pertama -tama, mari kita pahami apa itu pola itu. Pola adalah metodologi memecahkan jenis masalah tertentu, dan merangkum solusi untuk jenis masalah ini ke tingkat teoritis. Inilah polanya. Pola adalah panduan yang membantu pengembang menyelesaikan tugas di bawah panduan yang baik. Membuat rencana desain yang sangat baik dapat mencapai dua kali lipat hasilnya dengan setengah upaya. Dan Anda akan mendapatkan solusi terbaik untuk masalah ini.
Pola MVC berasal dari bahasa SmallTalk, yang merupakan singkatan dari model-view-controller. MVC melemahkan kopling antara antarmuka logika bisnis dan antarmuka data. Ada banyak manfaat menggunakan mode MVC, seperti keandalan yang kuat, penggunaan kembali dan kemampuan beradaptasi yang tinggi, biaya siklus hidup yang rendah, penyebaran cepat, pemeliharaan yang kuat, dll. Saya tidak akan menjelaskan terlalu banyak tentang detail di sini.
Fitur SpringMVC:
1. Divisi Peran yang Jelas. Spring memberikan pembagian yang sangat jelas dalam model, tampilan, dan pengontrol. Ketiga aspek ini benar -benar dilakukan dan masing -masing memikul tanggung jawab mereka.
2. Fungsi konfigurasi yang fleksibel, karena inti Spring adalah IOC, dan dalam mengimplementasikan MVC, berbagai kelas juga dapat dikonfigurasi melalui XML sebagai kacang.
3. Menyediakan sejumlah besar antarmuka pengontrol dan kelas implementasi, sehingga pengembang dapat menggunakan kelas implementasi pengontrol yang disediakan oleh Spring, atau mengimplementasikan antarmuka pengontrol itu sendiri.
4. SpringMVC adalah implementasi lapisan tampilan nyata-independen. Itu tidak akan memaksa pengembang untuk menggunakan JSP. Kita dapat menggunakan teknologi tampilan lainnya, seperti kecepatan, xskt, dll.
5. Dukungan Internasionalisasi. Spring's ApplicationContext menyediakan dukungan untuk internasionalisasi, yang dapat digunakan dengan sangat nyaman di sini.
6. Pemrograman berorientasi antarmuka. Bahkan, ini bukan hanya fitur SpringMVC. Dari perspektif musim semi, fitur ini sangat jelas karena memudahkan pengembang untuk menguji program dan mengelolanya dengan mudah.
7. Spring menyediakan serangkaian proses lengkap untuk pengembangan aplikasi web, bukan hanya MVC, yang dapat dengan mudah digabungkan. Di bawah ini adalah contoh bagaimana saya melakukannya sendiri. Setelah menyelesaikan contoh ini, saya benar -benar menyadari kekuatan SpringMVC.
Mari kita mulai mengkonfigurasi proyek SpringMVC kami:
Pertama, kami mengonfigurasi web.xml di direktori web-inf:
<? Xml Version = "1.0" encoding = "UTF-8"?> <Web-app Versi = "2.5" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http:/www.w3.org/2001 =" http:/www.w3.org/200 xsi: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/we-papp_2 DispatcherServlet, which controls the request path of the entire page --> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--Initialization Parameters>/WEB-INF/classes/equivalent to the src directory--> <init-param> <!-- This param-name must be contextConfigLocation--> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/applicationContext.xml</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <!--Intercept all requests ending in do--> <servlet-mapping> <servlet-name> DispatcherServlet </servlet-name> <ratl-pola>*. do </rerl-pola> </servlet-mapping> <!-menangani masalah yang kacau Cina yang terjadi ketika melewati halaman dari halaman ke latar belakang-> <nilter-name> encodingfilter </filter-name> <filter-classif. <Ilin-param> <param-name> Encode </param-name> <param-value> UTF-8 </param-value> </init-param> </filter> <filter-Mapping> <nilter-name> encodingfilter </filter-name> <rile-pattern>/</url-pola> </filter-fighy> <rile-f untuk pola> </url-phatter> </filter-fighy> <rile-figher> </-figh-figh. </celcome-file-list> </web-app>
Setelah mengkonfigurasi file setiap saat, disarankan untuk memulai server terlebih dahulu untuk melihat apakah terjadi pengecualian, jika tidak, akan sulit untuk men -debug dan menemukan pengecualian di tahap selanjutnya.
Setelah web.xml dikonfigurasi, kita perlu membuat file db-config.properties di direktori src untuk menyimpan informasi konfigurasi sumber data kami:
Kontennya adalah sebagai berikut:
db.url = jdbc: mysql: /// springmvcdb? UseUnicode = true & characterencoding = utf8db.username = rootdb.password = rootdb.dirverclass = com.mysql.jdbc.driver
Setelah db-config.properties dikonfigurasi, mulailah mengkonfigurasi file applicationContext.xml:
<? XML Versi = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmls XSI: schemalocation = "http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-weans-2.5.xsd"> <!-mendefinisikan adapter control default-"beans-beans-2.xsd"> <! name = "Lokasi"> <list> <value> classpath: db-config.properties </ value> </list> </propert> </ bean> <!-Dapatkan sumber data-> <bean id = "DataSource"> <Name Properti = "DriverClassName"> <value> $ {DB.DirVERCRASS} </Name </"Name>" NOVOLE "> <" NOVOLE "$ {DB.DIRVERCRASS} </" <value> $ {db.url} </ value> </pruptent> <property name = "username"> <value> $ {db.userName} </ value> </property> <name properti = "kata sandi"> <value> $ {db.password} </value> </prop Property> </bean> <value!- The Urpsors atau List Mapping dengan Mapporing dengan Mapping} List </ value> </properti> </bean> <value! alamat file, dan nilainya adalah nama kacang prosesor. Alamat file program URL dapat mengadopsi pola pencocokan jalur, seperti: com/mvc/t? St.jsp: cocok dengan com/mvc/test.jsp, com/mvc/tast.jsp, dll. com/mvc /**/*.jsp: Match all URLs with .jsp suffixes under the com/mvc path or the descendant path cn/**/web/bla.jsp: Match requests for cn/option/web/dog.jsp cn/option/test/web/dog.jsp cn/web/dog.jsp cn/web/dog.jsp --> <bean> <property name="mappings"> <value> user.do = UserAction </ value> </preate> </ bean> <!-Tampilan Definisi digunakan melalui internalResourCeview untuk menunjukkan bahwa teknologi servlet/jsp digunakan-> <bean id = "viewResolver"> <view name = "viewclass"> <value> org.springframework.weB.servlet. directory stored in jsp--> <property name="prefix"> <value>/jsp/</value> </property> <!--definition of the suffix of the suffix--> <property name="suffix"> <value>.jsp</value> </property> </bean> <bean id="userDao"> <property name="dataSource"ref="dataSource"></property> </bean> <!--Definition of the controller--> <bean id="userAction"> <property name="dao"> <ref bean="userDao"/> </property> <property name="commandClass"> <value>com.yjde.springmvc.UserDao</value> </property> <property name="viewpage"> <value>userInfo</value> </property> </beans>Setelah aplikasi ApplicationContext.xml dikonfigurasi, kami mulai menulis kelas Java tertentu. Kami membutuhkan kelas DAO, kelas pengontrol dan PO
Kami membuat tabel Usermbo di MySQL, yang memiliki tiga bidang userid, nama pengguna, userage
Kelas userdao:
paket com.yjde.springmvc; impor java.sql.Resultset; impor java.sql.sqlexception; impor java.util.collection; impor java.util.list; impor org.springframework.jdbc.core.rowmapper; impor org.springframework.jdbc.core.support.jdbcdaoSupport; @SuppressWarnings ("All") Public Class Userdao memperluas JDBCDAOSupport {private string msg; Public String getMSG () {return msg; } public void setMSG (string msg) {this.msg = msg; } // Metode ini meminta bidang yang sesuai dengan tabel USEMBO dan memasukkannya ke userpo dalam urutan koleksi publik <userpo> doQuery () {string sql = "pilih t.userid, t.username, t.userage dari usermbo t"; return super.getJdbcTemplate().query(sql, new RowMapper() { public Object mapRow(ResultSet rs, int num) throws SQLException { UserPO user = new UserPO(); user.setUserId(rs.getInt("USERID")); user.setUserName(rs.getString("USERNAME")); user.setuserage (rs.getint ("userage")); }}JDBCtemplate adalah kelas inti dari paket inti. Itu melakukan penciptaan dan pelepasan sumber daya untuk kita, sehingga menyederhanakan penggunaan JDBC kita. Ini juga dapat membantu kita menghindari kesalahan umum seperti lupa untuk menutup koneksi database. Untuk detailnya, silakan merujuk ke API
Kelas pengontrol:
paket com.yjde.springmvc; impor java.io.printwriter; impor java.util.arraylist; impor java.util.collection; impor java.util.hashmap; impor java.util.list; impor java.util.map; impor javax.servlet.http.httpservletRequest; impor javax.servlet.http.httpservletResponse; impor org.springframework.validation.bindexception; impor org.springframework.web.servlet.modelandview; impor org.springframework.web.servlet.mvc.SimpleFormController; @SuppressWarnings ("all") // SimpleFormController adalah pengontrol formulir yang disediakan oleh Spring. Ini menetapkan nama elemen dalam formulir pada halaman yang sama seperti di kacang. Saat lewat, Spring akan secara otomatis meraih nilai elemen yang sama dengan nama kacang dalam formulir dan mengubahnya menjadi kacang, sehingga pengembang dapat menggunakannya dengan sangat nyaman. UserController kelas publik memperluas SimpleFormController {private String ViewPage; Ususdao Dao Pribadi; Public String getViewPage () {return viewpage; } public void setViewPage (String viewPage) {this.viewPage = viewPage; } @Override Protected ModelAndView OnSubmit (permintaan httpservletRequest, respons httpservletResponse, perintah objek, kesalahan bindException) melempar pengecualian {userdao tmp = (userdao) perintah; Koleksi <Userpo> list = dao.doquery (); Daftar <UserPo> Users = NEW ARRAYLIST <UserPo> (); Pengguna userpo; untuk (userpo userpo: list) {user = new userpo (); user.setUserId (userpo.getUserId ()); user.setusername (userpo.getusername ()); user.setUserage (userpo.getUserage ()); Users.add (pengguna); } Peta mp = new HashMap (); mp.put ("daftar", pengguna); return new ModelAndView (getViewPage (), MP); } public void setdao (userdao dao) {this.dao = dao; }} paket com.yjde.springmvc; Public Class UserPo {Private Integer UserId; nama pengguna string pribadi; Userage integer pribadi; integer publik getUserId () {return userId; } public void setUserId (integer userId) {this.userid = userId; } public string getUserName () {return username; } public void setusername (string username) {this.username = username; } public integer getUserage () {return userage; } public void setUserage (integer userage) {this.userage = userage; }} </pri> <br> <p align = "kiri"> <span style = "color: teal"> Setelah pembuatan kelas selesai, kita akan menulis dua </span> <span style = "color: teal"> jsp </span> <span = "color: teal"> color: </span> </p> <p> <span = "<span"> test "> test: </span> </p> <p align =" left "> test"> test: </span> </p> <p align = "left"> test "> test: </span> </p> <p align =" left "> span"> test "> <p align = "left"> <span style = "color:#bf5f3f"> </span> </p> <pre name = "code"> <%@ page language = "java" impor = "java.util.*" pageEncoding = "utf-8"%> <%string path = request.getContextPath (); String basePath = request.getScheme ()+": //"+request.getServerName ()+":"+request.getServerport ()+path+"/"; %> <! Doctype html public "-// w3c // dtd html 4.01 transisi // en"> <html> <head> <base href = "<%= Basepath%>"> <title> methpa letning = "no-conte =" no-cande = "no-conte =" no-conte = "no-conte =" no-cande = 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"> -> </head> <body> <form Action = "user.do" Method = "POST"> Harap masukkan <input name = "msg" type = "text"/> <input type = "kirim" value = "kirim" </formule </body> </ht/html> value = pre "p pre" style = "color: teal"> </span> </p> <p align = "left"> <span style = "color: teal"> hasil lari akhir: </span> </p> <p align = "kiri"> <span style = "color: teal"> <img src = "http://my.csdn.net/uploads/201204/24/1335237733_4732.png"> </span> </p> <p align = "left"> <span = "color: Teal"> Pernyataan pembuatan tabel basis data: <//SPAN SPAN> "PERPANJAAN/" PERTANIAS "> PERSET/PAN LITER"> PERUBAHAN </PSAN> </PAN LITH> "PAN LITH>" style="color:#008080"></span></p> <pre name="code">/* Navicat MySQL Data Transfer Source Server : mysql Source Server Version : 50145 Source Host : localhost:3306 Source Database : springmvcdb Target Server Type : MYSQL Target Server Version : 50145 File Encoding : 65001 Date: 2012-04-24 10:34:25 */ Set asing_key_checks = 0; ------------------------------Struktur Tabel untuk `Usermbo`----------------------------- Jatuhkan Tabel jika ada` Usermbo`; Buat tabel `usermbo` (` userid` int (11) bukan null default '0', `username` varchar (50) default null,` userage` int (11) nol default, kunci utama (`userid`)) engine = innodb defaultCharset = utf8; ------------------------------Catatan Usermbo----------------------------- Sisipkan ke `Usermbo` Values ('1', '李晓红', '25'); Masukkan ke dalam nilai `usermbo` ('2', '柳梦璃', '27'); Masukkan ke `usermbo` value ('3', '韩菱纱', '26'); </pr Pre> Contoh Unduh: Demo
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.