J'ai toujours utilisé SSH. Parce que l'entreprise veut utiliser SpringMVC, je n'y ai jamais été exposée auparavant, alors aujourd'hui, j'apprendrai ce cadre avec vous afin que je puisse faire mon travail.
Tout d'abord, comprenons ce qu'est un modèle. Le modèle est la méthodologie de résolution d'un certain type de problème et résume les solutions à ce type de problème au niveau théorique. C'est le modèle. Les modèles sont un guide qui aide les développeurs à effectuer des tâches sous de bonnes conseils. Faire un excellent plan de conception peut atteindre deux fois le résultat avec la moitié de l'effort. Et vous obtiendrez la meilleure solution au problème.
Le motif MVC provenait de la langue SmallTalk, qui est l'abréviation de Model-View-contrôleur. MVC affaiblit le couplage entre l'interface logique métier et l'interface de données. Il existe de nombreux avantages de l'utilisation du mode MVC, comme une forte fiabilité, une réutilisation élevée et une adaptabilité, un coût du cycle de vie faible, un déploiement rapide, une forte entretien, etc. Je n'expliquerai pas trop les détails ici.
Caractéristiques de SpringMVC:
1. Division des rôles clairs. Spring fournit une division très claire dans le modèle, la vue et le contrôleur. Ces trois aspects sont vraiment effectués et assume chacun leurs responsabilités.
2.
3. Fournissez un grand nombre d'interfaces de contrôleur et de classes d'implémentation, afin que les développeurs puissent utiliser les classes d'implémentation du contrôleur fournies par Spring, ou implémenter l'interface du contrôleur elles-mêmes.
4. Springmvc est une véritable vue indépendante de l'implémentation de la couche. Il n'obligera pas les développeurs à utiliser JSP. Nous pouvons utiliser d'autres technologies de vue, telles que la vitesse, le XSKT, etc.
5. Support d'internationalisation. ApplicationContext de Spring fournit une prise en charge de l'internationalisation, qui peut être utilisée très commodément ici.
6. Programmation orientée vers l'interface. En fait, ce n'est pas seulement une caractéristique de SpringMVC. Du point de vue du printemps, cette fonctionnalité est très évidente car il permet aux développeurs de tester facilement les programmes et de les gérer facilement.
7. Spring fournit un ensemble complet de processus pour le développement d'applications Web, pas seulement MVC, qui peut être facilement combiné. Vous trouverez ci-dessous un exemple de la façon dont je l'ai fait moi-même. Après avoir terminé cet exemple, j'ai vraiment réalisé la puissance de SpringMVC.
Commençons à configurer notre projet SpringMVC:
Tout d'abord, nous configurons web.xml dans le répertoire Web-Inf:
<? xml version = "1.0" encoding = "utf-8"?> <web-app version = "2.5" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http://www.w3.org/2001/xmlschema instance" 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_5.xsd"> <frlet> Dispatterservlet, qui contrôle le chemin de demande de toute la page -> <Servlet-name> DispatterServlet </Servlet-Name> <Servlet-Class> org.springframework.web.servlet.dispatcherServlet </vrlet-Class> <! - Paramètres d'initialisation> / web-inf / Classes / équivalente à SRC Directory -> <initial> contextConfiglocation -> <param-name> contextConfiglocation </ param-name> <param-value> /web-inf/classes/applicationContext.xml </ param-value> </ init-param> <ony-on-startup> 2 </ lodat-on-startup> </servlet> <! <Servlet-Name> Dispatcherservlet </vrlett-name> <Url-Pattern> *. Do </url-potern> </vrlett-mapping> <! - Gérer les problèmes chinois bruits qui se produisent lors du passage du chinois de la page à l'arrière-plan -> <filter> <filter-name> EncodingFilter </ Filter-Name> <Filter-Class> org.springframework.web.filter.CaracTerencodingFilter </ Filter-Class> <Init-Param> <Amam-Name> Encoding </ Param-Name> <AmAram-Value> UTF-8 </ Param-Value> </1nit-Param> </filter> <maping-mapping> <URL-Pattern> / * </ url-stern> </filter-mapping> <Welcome-File-list> <leen welcome-file> index.jsp </ bienvenue-file> </ welcome-file-list> </ web-appin>
Après avoir configuré un fichier à chaque fois, il est recommandé de démarrer d'abord le serveur pour voir si une exception se produit, sinon il sera difficile de déboguer et de trouver l'exception au stade ultérieur.
Une fois le web.xml configuré, nous devons créer un fichier DB-Config.properties dans le répertoire SRC pour stocker nos informations de configuration de la source de données:
Le contenu est le suivant:
db.url = jdbc: mysql: /// springmvcdb? useunicode = true & caractères encoding = utf8db.username = rootdb.password = rootdb.dirverclass = com.mysql.jdbc.driver
Une fois la configuration de DB-Config.Properties, commencez à configurer le fichier applicationContext.xml:
<? xml version = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" XSI: ScheMalation = "http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-Beans-2.5.xsd"> <! - Define un adaptateur de contrôle par défaut -> <e Bean /> <! name = "Locations"> <s liste> <value> CLASSPATH: DB-Config.properties </value> </sist> </ propriété> </ bean> <! - Get Data Source -> <Bean Id = "DataSource"> <propriété Name = "DriverClassName"> <value> $ {db.dirverclass} </value> </prewet> </ Property <value> $ {db.url} </value> </ propriété> <propriété name = "username"> <value> $ {db.username} </value> </ propriété> <propriété name = "mot de passe"> <value> $ {db.password} </value> </ / propriété> </an> <! Adresses de fichier, et la valeur est le nom de bean du processeur. L'adresse du fichier du programme URL peut adopter un modèle de correspondance de chemin, tel que: com / mvc / t? St.jsp: match com / mvc / test.jsp, com / mvc / taste.jsp, etc. com / mvc /*.jsp: assortir tous les urls avec le suffixe jsp sous com / mvc // ** / test.jsp: correspond à tous les tests. com / mvc /**/*.jsp: correspondez à toutes les URL avec des suffixes .jsp sous le chemin com / mvc ou le chemin descendant CN / ** / web / bla.jsp: correspond aux demandes de CN / option / web / dog.jsp cn / option / test / web / dog.jsp cn / web / dog.jsp CN / web / dog.jsp -> <jp name = "MAMPELS" user.do = userAction </value> </ propriété> </-bean> <! - La vue de définition est utilisée via InternalResourceView pour indiquer que la technologie servlet / jsp est utilisée -> <bean id = "ViewResolver"> <propriété name = "ViewClass"> <value> org.springframework.web.servlet.view.internalresource </value> </ propriété> name = "prefix"> <value> / jsp / </value> </ propriété> <! - Définition du suffixe du suffixe -> <propriété name = "suffixe"> <value> .jsp </value> </ propriété> </ bean> <bean id = "userdao"> <propriété name = "datasource" Ref = "datasource"> </prewet> </pank> id = "userAction"> <propriété name = "dao"> <ref bean = "userdao" /> </ propriété> <propriété name = "commandclass"> <value> com.yjde.springmvc.userdao </value> </ propriété> <propriété name = "Viewpage"> <value> userInfo </value> </pare> </pans>Une fois le fichier applicationContext.xml configuré, nous commençons à écrire des classes Java spécifiques. Nous avons besoin d'une classe DAO, d'une classe de contrôleur et d'un PO
Nous avons créé une table Userbo dans MySQL, qui possède trois champs utilisateur, nom d'utilisateur, utilisateur
Classe UserDao:
package com.yjde.springmvc; import java.sql.resultSet; import java.sql.sqlexception; import java.util.collection; Importer java.util.list; import org.springframework.jdbc.core.rowmapper; import org.springframework.jdbc.core.support.jdbcdaosupport; @SuppressWarnings ("all") public class userDao étend jdbcdaosupport {private String msg; String public getmsg () {return msg; } public void setmsg (String msg) {this.msg = msg; } // Cette méthode interroge les champs correspondant à la table Usembo et les met dans UserPo dans la collection publique de séquence <UserPo> doQuery () {String sql = "select t.userid, t.username, t.userage from userbo t"; return super.getJDBCTemplate (). Query (SQL, new RowMapper () {public Object MapRow (resultSet rs, int num) lève Sqlexception {userPo user = new UserPo (); user.SetUserId (Rs.getInt ("userId")); userPo (SetherSername (Rs.GetString ("userName")); User.SetUserage (Rs.GeTInt ("Userage"); }}JDBCTemplate est la classe de base du package de base. Il fait la création et la libération de ressources pour nous, simplifiant ainsi notre utilisation de JDBC. Il peut également nous aider à éviter les erreurs courantes, comme l'oubli de fermer la connexion de la base de données. Pour plus de détails, veuillez consulter l'API
Classe de contrôleur:
package com.yjde.springmvc; import java.io.printwriter; import java.util.arraylist; import java.util.collection; import java.util.hashmap; Importer java.util.list; importation java.util.map; Importer javax.servlet.http.httpservletRequest; import 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 est un contrôleur de formulaire fourni par Spring. Il définit le nom de l'élément dans le formulaire sur la page à la même chose que dans le haricot. Lorsqu'il est passé, Spring saisira automatiquement la valeur de l'élément de la même chose que le nom de haricot dans la forme et le convertira en haricot, afin que les développeurs puissent l'utiliser très facilement. La classe publique UserController étend SimpleformController {private String ViewPage; Userdao privé DAO; String public getViewPage () {return ViewPage; } public void setViewPage (string ViewPage) {this.viewPage = ViewPage; } @Override Protected ModelAndView onSubmit (demande httpServLERquest, réponse httpservletResponse, commande objet, erreurs bindException) lance l'exception {userdao tmp = (userdao) commande; Collection <UserPo> list = dao.doQuery (); List <ser userpo> users = new ArrayList <UserPo> (); UserPo User; pour (userpo userpo: list) {user = new UserPo (); User.SetUserId (userpo.getUserId ()); user.setUsername (userpo.getUserName ()); user.SetUserage (userpo.getUserage ()); users.add (utilisateur); } Map mp = new hashmap (); mp.put ("liste", utilisateurs); return new ModelandView (getViewPage (), MP); } public void setDao (userdao dao) {this.dao = dao; }} package com.yjde.springmvc; classe publique UserPo {private Integer UserId; Nom d'utilisateur de chaîne privée; utilisateur entier privé; public Integer 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 utilisateur; } public void setUserage (entier utilisateur) {this.Userage = utilisateur; }} </ pre> <br> <p align = "Left"> <span style = "Color: Teal"> Une fois la création de classe terminée, nous écrire deux </span> <span style = "Color: Teal"> jsp </span> <span style = "Color: Teal"> Test: </span> </p> <p ALIGN = "Left"> <pan Style = "Color: Teal"> index.jsp: </span> </p> <p align = "Left"> <span style = "Color: # bf5f3f"> </span> </p> <pren name = "code"> <% @ page Language = "Java" Import = "Java.util. *" PageEcoding = "utf-8"%> <% String Path = remercie. String basepath = request.getscheme () + ": //" + request.getServerName () + ":" + request.getServerport () + path + "/"; %> <! Doctype html public "- // w3c // dtd html 4.01 transitional // en"> <html> <adread> <base href = "<% = basepath%>"> <titre> mon jsp 'index.jsp' Page de départ </ title> <meta http-equiv = "Pragma" Contenu = "non-Cache"> <méta http-equiv = "cache-control" contenu = "no-cache"> <meta http-equiv = "expires" contenu = "0"> <meta http-equiv = "keywords" contenu = "keyword1, keyword2, keyword3"> <meta http-equiv = "description" contenu = "c'est ma page"> <! type = "text / css" href = "Styles.css"> -> </ head> <body> <form action = "user.do" method = "post"> Veuillez saisir <entrée name = "msg" type = "text" /> <entrée type = "soumi" value = "soumi"> </ form> </panche> </ html> </span> </p> <p align = "Left"> <span style = "Color: Teal"> Résultat final: </span> </p> <p align = "Left"> <span style = "Color: Teal"> <img src = "http://my.csdn.net/uploads/201204/24/1335237733_4732.png"> </span> </p> <p align = "Left"> <span style = "Color: Teal"> Tableau de base de données: </pan> </p> <p align = "Left"> greffe de la base de données: </pan> </p> <p ALLIGN = "Left"> Database Table Style = "Color: # 008080"> </span> </p> <pren name = "code"> / * NAVICAT MYSQL TRANSFERT DATA TRANSFERT SERVER SOURCE: MySQL Source Server Version: 50145 Hôte source: LocalHost: 3306 Source Database Encoding: 65001 Date: 2012-04-24 10: 50145 * / Set Foreign_Key_Checks = 0; - ---------------------------- - Structure de la table pour `Userbo` - ---------------------------- Tableau de dépôt si existe` Userbo`; Créer la table `userMbo` (` userId` int (11) non null par défaut '0', `username` varchar (50) par défaut null,` userage` int (11) par défaut null, clé primaire (`userId`)) moteur = innodb defaultCharset = utf8; - ---------------------------- - Enregistrements d'Usermbo - ---------------------------- Insérer dans les valeurs «Userbo» («1», «李晓红», «25»); Insérer dans les valeurs `userbo` (« 2 »,« 柳梦璃 »,« 27 »); Insérer dans les valeurs «userbo» («3», «韩菱纱», «26»); </ pre> Télécharger l'exemple: démo
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.