Ich habe SSH immer benutzt. Da das Unternehmen SpringMVC verwenden möchte, wurde ich noch nie zuvor ausgesetzt. Heute werde ich diesen Rahmen mit Ihnen lernen, damit ich meinen Job machen kann.
Lassen Sie uns zunächst verstehen, was ein Muster ist. Muster ist die Methodik zur Lösung eines bestimmten Problems und die Zusammenfassung der Lösungen für diese Art von Problem auf die theoretische Ebene. Dies ist das Muster. Muster sind ein Leitfaden, der Entwicklern hilft, Aufgaben unter einer guten Anleitung zu erledigen. Wenn Sie einen hervorragenden Designplan erstellen, kann dies mit der halben Anstrengung doppelt so hoch sein. Und Sie erhalten die beste Lösung für das Problem.
Das MVC-Muster stammt aus der SmallTalk-Sprache, die die Abkürzung des Modells-Ansicht-Kontrollers ist. MVC schwächt die Kopplung zwischen Geschäftslogik -Schnittstelle und Datenschnittstelle. Es gibt viele Vorteile bei der Verwendung des MVC -Modus, wie z. B. starke Zuverlässigkeit, hohe Wiederverwendung und Anpassungsfähigkeit, niedrige Lebenszykluskosten, schneller Einsatz, starke Wartung usw. Ich werde hier nicht zu viel über die Details erklären.
Merkmale von SpringMVC:
1. Clear Rollenabteilung. Spring bietet eine sehr klare Aufteilung in Modell, Ansicht und Controller. Diese drei Aspekte werden wirklich durchgeführt und übernimmt jeweils ihre Verantwortung.
2. Flexible Konfigurationsfunktion, da der Kern von Spring IOC und bei der Implementierung von MVC verschiedene Klassen auch über XML als Beans konfiguriert werden können.
3. Geben Sie eine große Anzahl von Controller -Schnittstellen und Implementierungsklassen an, sodass Entwickler die von Spring bereitgestellten Controller -Implementierungsklassen verwenden oder die Controller -Schnittstelle selbst implementieren können.
V. Es wird Entwickler nicht zwingen, JSP zu verwenden. Wir können andere Ansichtstechnologien wie Geschwindigkeit, XSKT usw. verwenden.
5. Unterstützung der Internationalisierung. Der Anwendungscontext von Spring bietet Unterstützung für die Internationalisierung, die hier sehr bequem verwendet werden kann.
6. Schnittstellenorientierte Programmierung. Tatsächlich ist dies nicht nur ein Merkmal von SpringMVC. Aus der Sicht des Frühlings ist diese Funktion sehr offensichtlich, da es Entwicklern leicht macht, Programme zu testen und einfach zu verwalten.
7. Spring bietet eine vollständige Prozesse für die Entwicklung von Webanwendungen, nicht nur MVC, die leicht kombiniert werden können. Unten ist ein Beispiel dafür, wie ich es selbst gemacht habe. Nachdem ich dieses Beispiel beendet hatte, habe ich die Kraft von SpringMVC wirklich erkannt.
Beginnen wir mit der Konfiguration unseres SpringMVC -Projekts:
Zunächst konfigurieren wir Web.xml im Web-inf-Verzeichnis:
<? XSI: scheMalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2- the 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 <Servlet-name> DispatcherServlet </Servlet-Name> <URL-Pattern>*. Do </url-pattern> </servlet-Mapping> <!-Behandeln Sie chinesische auf die Chinesisch auftretende chinesische Probleme, die bei der Übergabe von Chinesen von der Seite an den Hintergrund übergeben werden. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <URL-Muster>/*</URL-Muster> </filter-mapping> <Welcome-File-List> <Welcome-Datei> Index.jsp </Welcome-File> </Welcome-File-List> </web-App>
Nachdem jedes Mal eine Datei konfiguriert wurde, wird empfohlen, den Server zuerst zu starten, um festzustellen, ob eine Ausnahme auftritt. Andernfalls ist es schwierig, die Ausnahme in der späteren Phase zu debuggen und die Ausnahme zu finden.
Nach der Konfiguration des web.xml müssen wir im SRC-Verzeichnis eine DB-Config.Properties-Datei erstellen, um unsere Datenquellenkonfigurationsinformationen zu speichern:
Der Inhalt ist wie folgt:
db.url = jdbc: mysql: /// springmvcdb? useUnicode = true & charakterencoding = utf8db.username = rootdb.password = rootdb.dirverclass = com.mysql.jdbc.driver
Nachdem die DB-config.Properties konfiguriert wurde, konfigurieren Sie die Datei applicationContext.xml:
<? XSI: Schemalocation = "http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-Beans-2.5.xsd"> <! name="locations"> <list> <value>classpath:db-config.properties</value> </list> </property> </bean> <!-- Get data source--> <bean id="dataSource"> <property name="driverClassName"> <value>${db.dirverClass}</value> </property> <property name="url"> <wert> $ {db.url} </value> </Property> <Eigenschaft name = "userername"> <value> $ {db.username} </value> </property> <Eigenschaft name = "password"> <value> $ {db.password} </value> </property> </bean> <!- Das Ur-Zuschreibungs-DROFTUBS-DROFTUTE-DRECKEL. Adressen, und der Wert ist der Bean -Name des Prozessors. Die URL -Programmdateiadresse kann ein Pfad -Matching -Muster annehmen, wie z. 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> </property> </bean> <!-Die Definitionsansicht wird über InternalResourceView verwendet, um anzuzeigen, dass die Servlet/JSP-Technologie verwendet wird-> <bean id = "viewresolver"> <Eigenschaft name = "viewClass"> <Wirps> org.springFramework.Web.Servlet.Internal.internalresourCew./proby/servlet.internalresourCew./proby/servlet. gespeichert in JSP-> <Eigenschaft name = "Präfix"> <wert>/jsp/</value> </property> <!-Definition des Suffix des Suffix-> <Eigenschaft name = "suffix"> <value> .jsp </value> </Eigenschaft> </bean> <bean id = "userdao" </datasource "-datasource" datasource " des Controllers-> <bean id = "userAction"> <Eigenschaft name = "dao"> <ref bean = "userdao"/> </property> <Eigenschaft name = "commandClass"> <wert> com.yjde.SpringMvc.Userdao </value> </property> </property> </property> </property> <-Nachdem die Datei applicationContext.xml konfiguriert wurde, schreiben wir spezifische Java -Klassen. Wir brauchen eine Dao -Klasse, eine Controller -Klasse und eine PO
Wir haben eine Usermbo -Tabelle in MySQL erstellt, die drei Fields UserID, Benutzername und Benutzerage hat
Userdao -Klasse:
Paket com.yjde.springmvc; importieren java.sql.resultset; importieren java.sql.sqlexception; Import Java.util.Collection; importieren java.util.list; import org.springframework.jdbc.core.rowmapper; import org.springframework.jdbc.core.support.jdbcdaosupport; @SuppressWarnings ("All") öffentliche Klasse UserDao erweitert JDBCDAOSUPPORT {private String msg; public String getmsg () {return msg; } public void setmsg (String msg) {this.msg = msg; } // In dieser Methode werden die Felder, die der Usembo -Tabelle entsprechen, in UserPO in Sequence Public Collection <Benerpo> doQuery () {String SQL = "T.Userid, T.UserName, T.Userage von Usermbo T" ausgelöst. return super.getJdbCtemplate (). Query (SQL, New RowMapper () {public Object MapRow (Ergebnisset rs, int num) löst SQLEXception {userpo user = new userPo (); user.setUserid ("userId"); user.setuername ("username"); user.setUserage (rs.getInt ("userage"); }}JDBCTEMplate ist die Kernklasse des Kernpakets. Die Erstellung und Freigabe von Ressourcen für uns und so vereinfacht die Verwendung von JDBC. Es kann uns auch helfen, häufige Fehler wie das Vergessen zu vermeiden, die Datenbankverbindung zu schließen. Weitere Informationen finden Sie in der API
Controller -Klasse:
Paket com.yjde.springmvc; Import Java.io.printwriter; Import Java.util.ArrayList; Import Java.util.Collection; import Java.util.hashMap; importieren java.util.list; import Java.util.map; importieren javax.servlet.http.httpServletRequest; importieren javax.servlet.http.httpServletResponse; import org.springframework.validation.bindException; import org.springframework.web.servlet.ModelandView; import org.springframework.web.servlet.mvc.simpleformController; @SuppressWarnings ("All") // SimpleFormController ist ein Formular Controller, der von Feder bereitgestellt wird. Es legt den Elementnamen im Formular auf der Seite auf das gleiche wie in der Bohne fest. Bei der Übergabe greift Spring automatisch den Elementwert desselben wie den Bean -Namen in der Form und konvertiert ihn in eine Bohne, sodass Entwickler ihn sehr bequem verwenden können. Public Class UserController erweitert SimpleFormController {private String -ViewPage; private userdao dao; public String GetViewPage () {Rückgabeansicht; } public void setViewPage (String -Ansicht) {this.viewpage = viewPage; } @Override Protected modelAndView OnSubmit (httpServletRequest -Anforderung, httpServletResponse -Antwort, Objektbefehl, BindException -Fehler) löst die Ausnahme aus {userDao tmp = (userDao); Sammlung <userPo> list = dao.doquery (); LIST <BENEPO> Users = New ArrayList <BedoPo> (); Benutzerpo -Benutzer; für (userpo userPo: list) {user = new UserPo (); user.setUerID (userPo.getUerId ()); user.setUnername (userpo.getUnername ()); user.setUserage (userpo.getUserage ()); users.Add (Benutzer); } Map mp = new HashMap (); mp.put ("Liste", Benutzer); Neue ModelAndView zurückgeben (GetViewPage (), MP); } public void setdao (userDao dao) {this.dao = dao; }} Paket com.yjde.springMvc; public class userpo {private Integer userId; privater String -Benutzername; private Ganzzahl -Benutzerage; public Integer getUserid () {userID zurückgeben; } public void setUerId (Integer userId) {this.userId = userId; } public String getUnername () {return userername; } public void setUnername (String -Benutzername) {this.username = userername; } public Integer getUserage () {{userage zurückgeben; } public void setUserage (Ganzzahl userage) {this.userage = userage; }} </pre> <br> <p align = "links"> <span style = "color: teal"> Nach Abschluss der Klassenerstellung schreiben wir zwei </span> <span style = "color: teal"> jsp </span> <span Style = "Farbe: Teal"> Test: </pl> </p> </p> </palig = "links"> </> </> </> </> <"> </> </> <"> </> <"> </> <"> </> <"> </> <"> </> <"> </> <"> </> </> <"> </> <"> </> <"> </> <"> </> <"> </> <"> </> <"> </> <"> </> </> <"> </> <"> <"> </> </> <"> <"> </> </> <"> < <p align = "links"> <span style = "color:#bf5f3f"> </span> </p> <pre name = "code"> <%@ page Sprache = "java" import = "java.util. String basepath = request.getScheme ()+": //"+request.getSerVername ()+":"+request.getServerport ()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-äquiv = "cache-control" content = "no-cache"> <meta http-äquiv = "expires" content = "0"> <meta http-äquiv type="text/css" href="styles.css"> --> </head> <body> <form action="user.do" method="post"> Please enter <input name="msg" type="text" /> <input type="submit" value="submit"> </form> </body> </html> </pre><p align="left"><span style="color:teal"> </span> </p> <p align = "links"> <span style = "color: teal"> Final Run Ergebnis: </span> </p> <p Align = "links"> <span style = "color: teal"> <img src = "http://my.csdn.net/uploads/201204/24/1335237733_4732.png"> </span> </p> <p Align = "links"> <span style = "color: teal"> Datenbank -Tisch -Kreation: </pal> </pl. 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 */ Setze fremd_key_checks = 0; ------------------------------Tabellenstruktur für `usermbo`------------------------- tabelle, wenn existiert` usermbo`; Tabelle `usermbo` (` userId` int (11) nicht null Standard '0', `username` varchar (50) Standard Null,` userage` int (11) Standardnull, Primärschlüssel (`userId`)) Engine = innoDB defaultcharset = utf8; ------------------------------Aufzeichnungen von Usermbo------------------------- In "usermbo`) einfügen ('1', '李晓红', '25'); In "usermbo" -Werte einfügen ('2', '柳梦璃', '27'); In "usermbo`) einfügen ('3', '韩菱纱', '26'; </pre> Beispiel herunterladen: Demo
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.