Я всегда использовал SSH. Поскольку компания хочет использовать SpringMVC, я никогда не подвергался ей раньше, поэтому сегодня я узнаю с вами эту структуру, чтобы я мог выполнять свою работу.
Прежде всего, давайте поймем, что такое шаблон. Паттерн - это методология решения определенного типа проблемы, и суммирование решений этой проблемы до теоретического уровня. Это шаблон. Паттерны - это руководство, которое помогает разработчикам выполнять задачи под хорошим руководством. Создание отличного плана дизайна может достичь вдвое больше, чем половина усилий. И вы получите лучшее решение проблемы.
Паттерн MVC возник из языка SmallTalk, который является аббревиатурой модели-контроллера. MVC ослабляет связь между интерфейсом бизнес -логики и интерфейсом данных. Существует много преимуществ использования режима MVC, таких как надежная надежность, высокое повторное использование и адаптивность, низкая стоимость жизненного цикла, быстрое развертывание, сильное обслуживание и т. Д. Я не буду слишком много объяснять о деталях здесь.
Особенности Springmvc:
1. Четкое разделение ролей. Spring обеспечивает очень четкое разделение в модели, просмотре и контроллере. Эти три аспекта действительно выполняются, и каждый из них берет на себя свои обязанности.
2. Гибкая функция конфигурации, потому что ядро пружины - МОК, а при реализации MVC различные классы также могут быть настроены через XML в качестве бобов.
3. Предоставьте большое количество интерфейсов контроллера и классов реализации, чтобы разработчики могли использовать классы реализации контроллера, предоставленные Spring, или сами реализовать интерфейс контроллера.
4. Springmvc является реальным представлением, независимым от реализации. Это не заставит разработчиков использовать JSP. Мы можем использовать другие технологии представления, такие как скорость, XSKT и т. Д.
5. Поддержка интернационализации. Spring's ApplicationContext обеспечивает поддержку интернационализации, которая может использоваться здесь очень удобно.
6. Программирование, ориентированное на интерфейс. На самом деле, это не только особенность SpringMVC. С точки зрения весны, эта функция очень очевидна, потому что разработчикам легко тестировать программы и легко управлять ими.
7. Spring предоставляет полный набор процессов для разработки веб -приложений, а не только MVC, который можно легко объединить. Ниже приведен пример того, как я это сделал сам. После завершения этого примера я действительно осознал силу SpringMVC.
Давайте начнем настраивать наш проект SpringMVC:
Во-первых, мы настраиваем web.xml в каталоге Web-Inf:
<? xml version = "1.0" Encoding = "utf-8"?> <web-app arser = "2,5" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http://www.w3.org/2001/xmlschema electan "/www.w3. xsi: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-pp_2_5.xs.xsmv> <! DispatcherServlet, который контролирует путь запроса всей страницы-> <servlet-name> DispatcherServlet </servlet-name> <vervlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <!-Параметры инициализации>/web-inf/classeerservelt </serplet> <! ContextConfiglocation-> <param-Name> contextConfigLocation </param-Ame> <param-value> /web-inf/classes/applicationcontext.xml </param-value> </init-param> <duto-on-startup> 2 </load-on-startup> </servlet> <!-Intercept All Запросы в конечном <Servlet-name> DispatcherServlet </servlet-name> <url-pattern>*. Do </url-pattern> </servlet-mapping> <!-обрабатывать китайские искаженные задачи, возникающие при передаче китайцев со страницы на фоновый <filter-class> org.springframework.web.filter.characterencodingfilter </filter> <init-param> <param-name> кодирование </param-name> <value> utf-8 </param-value> </init-param> </filter> <filter-maping> <filter-name> Ename> Ename> Ename> Ename> Ename> Ename> Ename> Ename> Ename> ename> ename> </init-param> </filter> <filter> <Url-pattern>/*</url-pattern> </filter-mapping> <selcopply-file-list> <selcopply-file> index.jsp </wervedied-file> </werving-file-list> </web-app>
После настройки файла каждый раз рекомендуется сначала запустить сервер, чтобы увидеть, происходит ли исключение, в противном случае его будет трудно отладить и найти исключение на более позднем этапе.
После того, как Web.xml настроен, нам необходимо создать файл db-config.properties в каталоге SRC, чтобы сохранить информацию о конфигурации нашей источника данных:
Содержание следующим образом:
db.url = jdbc: mysql: /// springmvcdb? useUnicode = true & hareverencoding = utf8db.username = rootdb.password = rootdb.dirverclass = com.mysql.jdbc.driver
После настройки db-config.properties начните настроить файл 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: schemalocation = "http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <!-определить адаптер управления-> <bean/> <! 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"> <dulch> $ {db.url} </value> </property> <name = "username"> <dulch> $ {db.username} </value> </property> <name = "password"> <value> $ {db.password} </value> </property> </bean> <! Адреса, а значение - это имя боба процессора. Адрес файла программы URL может принять шаблон соответствия пути, такой как: com/mvc/t? St.jsp: match com/mvc/test.jsp, com/mvc/tast.jsp и т. Д. com/mvc /* com/mvc /**/*.jsp: Сопоставьте все URL -адреса с суффиксами .jsp в соответствии с путем Com/MVC или пути потока CN/**/web/bla.jsp: запросы на совпадение для CN/Option/Web/Dog.jsp CN/Option/test/web/dog.jsp cn/web/dog.jsp cn/web/dog.jsp -> <bean> <bers> <bers> <bean> <Bean> <Bean> <Bean> <Bean> <Bean> <Bean> <Bean> <Bean> <Bean> <Bean> <Bean> <Bean> <Bean> user.do = userAction </value> </property> </bean> <!-Определение представление используется через InternalResourceView, чтобы указать, что используется технология сервиса/JSP-> <Bean Id = "viewResolver"> <свойство = "ViewClass"> <value> org.sprimework.web.servlet.view.internalResourcevevestrame. 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>После настроения файла ApplicationContext.xml мы начинаем писать определенные классы Java. Нам нужен класс DAO, класс контроллера и PO
Мы создали таблицу usermbo в MySQL, которая имеет три поля пользователя, имя пользователя, пользователь
Пользовательский класс:
пакет com.yjde.springmvc; импортировать java.sql.resultset; Импорт java.sql.sqlexception; Импорт java.util.collection; импортировать java.util.list; Импорт org.springframework.jdbc.core.rowmapper; Импорт org.springframework.jdbc.core.support.jdbcdaosupport; @Suppresswarnings ("all") public class userdao Extends jdbcdaosupport {private String msg; public String getMsg () {return msg; } public void setMsg (String msg) {this.msg = msg; } // Этот метод запрашивает поля, соответствующие таблице USEMBO, и помещает их в пользовательскую серию в последовательности Public Collection <userPo> doQuery () {String SQL = "Select T.Userid, T.Username, T.Userage From usermbo t"; вернуть super.getJdbctemptAte (). user.setuserage (rs.getint ("userage"); }}JDBctemplate является основным классом основного пакета. Он выполняет создание и выпуск ресурсов для нас, тем самым упрощая наше использование JDBC. Это также может помочь нам избежать общих ошибок, таких как забыть о закрытии подключения к базе данных. Для получения подробной информации, пожалуйста, обратитесь к API
Класс контроллера:
пакет com.yjde.springmvc; Импорт java.io.printwriter; импортировать java.util.arraylist; Импорт java.util.collection; импортировать java.util.hashmap; импортировать java.util.list; импортировать java.util.map; Импорт javax.servlet.http.httpservletrequest; Импорт javax.servlet.http.httpservletresponse; Импорт org.springframework.validation.bindexception; Импорт org.springframework.web.servlet.modelandView; Импорт org.springframework.web.servlet.mvc.simpleformcontroller; @Suppresswarnings («All») // SimpleFormController - это контроллер формы, предоставленный весной. Он устанавливает имя элемента в форме на странице на то же самое, что и в бобах. При передаче Spring автоматически захватит значение элемента того же, что и название бобов в форме, и преобразовать его в боб, чтобы разработчики могли использовать его очень удобно. открытый класс USERCONTROLLER Extens SimpleFormController {Private String ViewPage; Private Userdao Dao; public String getViewPage () {return ViewPage; } public void setViewPage (String ViewPage) {this.ViewPage = ViewPage; } @Override Protected ModelAndView onSubmit (httpservlectrequest, httpservletresponse response, команда объекта, ошибки BindException) Throws Exception {userDao tmp = (userDao) команда; Коллекция <userpo> list = dao.doquery (); Список <userPo> users = new ArrayList <SOMMERPO> (); Пользователь userpo; for (userpo userpo: list) {user = new userpo (); user.setuserid (userpo.getuserid ()); user.setusername (userpo.getusername ()); user.setuserage (userpo.getUserage ()); users.add (пользователь); } Map mp = new hashmap (); mp.put ("list", пользователи); вернуть New ModelAndView (getViewPage (), mp); } public void setDao (userDao dao) {this.dao = dao; }} пакет com.yjde.springmvc; public class userpo {private integer userId; частное имя пользователя; частное целочисленное пользователи; 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 userage; } public void setUserage (Integer Userage) {this.Userage = userage; }} </pre> <br> <p align = "Left"> <span style = "color: teal"> после завершения создания класса мы напишем два </span> <span style = "color: cheal"> jsp </span> <span style = "color: teal"> test: </span> </p> <p ulign = "> <span = style = "color: teal"> index.jsp: </span> </p> <p align = "left"> <span style = "color:#bf5f3f"> </span> </p> <pre name = "code"> <%@ page language = "java" import = "java.util.*" pageencoding = "utf-8"%> <%> stringpetreptreptreptreptrepte. 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' начальная страница </tite> <meta http-equiv = "pragma" no-contex "no-contex" no-contex "no-contex" no-c http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "expires" content = "0"> <meta http-equiv = "Content" Content = ", ключевое слово1, ключевое слово3"> <meta http-equiv = "description". type = "text/css" href = "styles.css"> -> </head> <body> <form action = "user.do" method = "post"> Пожалуйста, введите <input name = "msg" type = "/> <input type =" prope "value ="> </form> </body> </html> </pre> <p align = "> </form> </body> </html> </pre> <p align ="> </span "> </html> </pre> <p align =" </span> </p> <p align = "Left"> <span style = "color: teal"> окончательный результат выполнения: </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 = "Цвет: билет"> Создание таблицы базы: </span> <p> <p Align = " Style = "color:#008080"> </span> </p> <pre name = "code">/* Navicat MySQL Передача данных Сервер: MySQL Source Server Версия: 50145 Источник Хост: Localhost: 3306 Источник база данных: 65001 */ Set foreign_key_checks = 0; ------------------------------Структура таблицы для `USERMBO`----------------------------- Стол. Если существует` usermbo`; Создать таблицу `usermbo` (` userId` int (11) не null default '0', `username` varchar (50) по умолчанию NULL,` userage` int (11) нулевой, первичный ключ (`userId`)) innodb defaultCharset = utf8; ------------------------------Записи USERMBO----------------------------- Вставьте в `usermbo 'значения (' 1 ',' 李晓红 ',' 25 '); Вставить в «usermbo» значения ('2', '柳梦璃', '27'); Вставьте в `usermbo` values ('3', '韩菱纱', '26'); </pre> Пример загрузки: демонстрация
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.