나는 항상 ssh를 사용했습니다. 회사는 SpringMVC를 사용하기를 원하기 때문에 이전에 노출 된 적이 없으므로 오늘은이 프레임 워크를 배우고 작업을 수행 할 수 있습니다.
우선, 패턴이 무엇인지 이해합시다. 패턴은 특정 유형의 문제를 해결하는 방법론이며, 이러한 유형의 문제에 대한 솔루션을 이론적 수준으로 요약합니다. 이것이 패턴입니다. 패턴은 개발자가 좋은 지침에 따라 작업을 완료하는 데 도움이되는 가이드입니다. 훌륭한 설계 계획을 세우면 절반의 노력으로 결과의 두 배를 달성 할 수 있습니다. 그리고 당신은 문제에 대한 최상의 해결책을 얻을 것입니다.
MVC 패턴은 Model-View-Controller의 약어 인 SmallTalk 언어에서 비롯되었습니다. MVC는 비즈니스 로직 인터페이스와 데이터 인터페이스 간의 커플 링을 약화시킵니다. 강력한 신뢰성, 높은 재사용 및 적응성, 낮은 수명주기 비용, 빠른 배포, 강력한 유지 관리 등과 같은 MVC 모드를 사용하면 많은 이점이 있습니다.
SpringMVC의 특징 :
1. 명확한 역할 부서. Spring은 모델,보기 및 컨트롤러의 매우 명확한 분할을 제공합니다. 이 세 가지 측면은 진정으로 수행되며 각각의 책임을 가정합니다.
2. Spring의 핵심이 IOC이고 MVC를 구현할 때 XML을 통해 Bean으로 다양한 클래스를 구성 할 수 있습니다.
3. 많은 컨트롤러 인터페이스 및 구현 클래스를 제공하므로 개발자는 Spring에서 제공하는 컨트롤러 구현 클래스를 사용하거나 컨트롤러 인터페이스 자체를 구현할 수 있습니다.
4. SpringMVC는 실제 뷰 레이어 구현 독립적입니다. 개발자가 JSP를 사용하도록 강요하지는 않습니다. 속도, XSKT 등과 같은 다른 뷰 기술을 사용할 수 있습니다.
5. 국제화 지원. Spring의 ApplicationContext는 국제화를 지원하며 여기에서 매우 편리하게 사용할 수 있습니다.
6. 인터페이스 지향 프로그래밍. 실제로 이것은 SpringMVC의 특징 일뿐입니다. Spring의 관점에서 볼 때이 기능은 개발자가 프로그램을 쉽게 테스트하고 쉽게 관리 할 수 있기 때문에 매우 분명합니다.
7. Spring은 쉽게 결합 할 수있는 MVC뿐만 아니라 웹 애플리케이션 개발을위한 완전한 프로세스 세트를 제공합니다. 아래는 내가 어떻게 직접했는지의 예입니다. 이 예제를 마친 후 SpringMVC의 힘을 실제로 깨달았습니다.
SpringMVC 프로젝트 구성을 시작하겠습니다.
먼저 Web-Inf 디렉토리에서 web.xml을 구성합니다.
<? xml version = "1.0"encoding = "utf-8"?> <web-app version = "2.5"xmlns = "http://java.sun.com/xml/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_50 전체 페이지의 요청 경로를 제어하는 DispatcherServlet (> <servlet-name> dispatcherServlet </servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherservlet </servlet class> <! 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> <! <Servlet-name> dispatcherservlet </servlet-name> <Url-pattern>*. <filter-class> org.springframework.web.filter.characterencodingfilter </filter-class> <init-param> incoding </param-name> <param-value> utf-8 </param- value> </init-param> </filter> <filter-name> encodefilter <Url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file> index.jsp </welcome-file> </welcome-file-list> </web-app>
매번 파일을 구성한 후에는 서버를 시작하여 예외가 발생하는지 확인하는 것이 좋습니다. 그렇지 않으면 후반 단계에서 디버깅하고 예외를 찾기가 어렵습니다.
Web.xml이 구성되면 SRC 디렉토리에 DB-Config.Properties 파일을 작성하여 데이터 소스 구성 정보를 저장해야합니다.
내용은 다음과 같습니다.
db.url = jdbc : mysql : /// springmvcdb? useUnicode = true & charac
db-config.properties가 구성되면 ApplicationContext.xml 파일 구성을 시작하십시오.
<? xml 버전 = "1.0"alcoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans"xmlns : xsi = "http://ww.w.w3.org/2001/xmlschema-instance" xsi : schemalocation = "http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <!-기본 제어 어댑터-> <bean/<!-구성 파일을 get get "> <구성합니다. 이름 = "locations"> <str> <value> classpath : db-config.properties </value> </list> </property> </bean> <!-데이터 소스 가져옵니다-> <bean id = "dataSource"> <property name = "driver className"> <value> $ {db.dirverclass} </property> <urt Property name> <value> $ {db.url} </value> </propert> <property name = "username"> <value> $ {db.username} </value> </property name = "production name ="password "> <value> $ {db.password} </value> </property> </bean> <! 주소 및 값은 프로세서의 콩 이름입니다. URL 프로그램 파일 주소는 com/mvc/t? st.jsp : com/mvc/tast.jsp, com/mvc/tast.jsp 등과 같은 경로 일치 패턴을 채택 할 수 있습니다. com/mvc/tast.jsp. com/mvc /**/*.jsp : com/mvc 경로 또는 후손 경로 cn/**/web/bla.jsp에서 .jsp 접미사와 모든 URL을 일치시킵니다. user.do = userAction </value> </property> </bean> <!-정의보기는 내부 resourceView를 통해 사용하여 서블릿/JSP 기술이 사용됨-> <bean id = "viewResolver"> <property name = "value> <value> org.spramework.web.servlet.view.internalresourview <-value> </value> jsp-> <property name = "prefix"> <value>/jsp/</value> </property> <!-접미사의 접미사 정의-> <property name = "woldix"> <value> .jsp> </value> </property> </bean> <bean id = "userDao"> <property name = "dataSource"ref = "</Propertion> <! <bean id = "userAction"> <property name = "dao"> <Ref bean = "userDao"/> </property> <속성 이름 = "CommandClass"> <value> com.yjde.springmvc.userdao </value> <property name = "value"> value> userinfo </value> </beans>ApplicationContext.xml 파일이 구성되면 특정 Java 클래스를 작성하기 시작합니다. DAO 클래스, 컨트롤러 클래스 및 PO가 필요합니다.
MySQL에서 usermbo 테이블을 만들었습니다.이 3 개의 필드 userID, 사용자 이름, Userage가 있습니다.
userdao 클래스 :
패키지 com.yjde.springmvc; java.sql.resultset import; java.sql.sqlexception 가져 오기; java.util.collection import; Java.util.list 가져 오기; import org.springframework.jdbc.core.rowmapper; import org.springframework.jdbc.core.support.jdbcdaosupport; @SuppressWarnings ( "All") 공개 클래스 userDao 확장 jdbcdaoSupport {private String msg; 공개 문자열 getmsg () {return msg; } public void setmsg (문자열 msg) {this.msg = msg; } //이 메소드는 usembo 테이블에 해당하는 필드를 쿼리하고 시퀀스 공개 컬렉션에서 userpo에 넣습니다. <usterpo> doquery () {String sql = "usermbo t에서 t.userid, t.username, t.userage를 선택하십시오. return super.getJdbctemplate (). query (sql, new rowMapper () {public 객체 maprow (resultet rs, int num)는 sqlexception {userpo user = new userPo (); user.setUserId ( "userId"); user.setusername (rs.getString ( "username")); user.setuserage ( "userage"); }}jdbctemplate은 핵심 패키지의 핵심 클래스입니다. 그것은 우리를 위해 자원의 생성과 출시를 수행하여 JDBC의 사용을 단순화합니다. 또한 데이터베이스 연결을 닫는 것을 잊어 버리는 것과 같은 일반적인 실수를 피하는 데 도움이 될 수 있습니다. 자세한 내용은 API를 참조하십시오
컨트롤러 클래스 :
패키지 com.yjde.springmvc; import java.io.printwriter; java.util.arraylist 가져 오기; java.util.collection import; java.util.hashmap import; Java.util.list 가져 오기; java.util.map import; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; org.springframework.validation.bindexection; org.springframework.web.servlet.modelandview import; import org.springframework.web.servlet.mvc.simpleformcontroller; @SuppressWarnings ( "All") // SimpleFormController는 Spring에서 제공하는 양식 컨트롤러입니다. 페이지의 양식에서 요소 이름을 Bean과 동일하게 설정합니다. 통과하면 Spring은 양식의 Bean 이름과 동일한 요소 값을 자동으로 가져 와서 Bean으로 변환하여 개발자가 매우 편리하게 사용할 수 있도록합니다. Public Class UserController 확장 SimpleFormController {private String viewPage; 개인 userdao dao; 공개 문자열 getViewPage () {return viewPage; } public void setViewPage (String viewPage) {this.ViewPage = ViewPage; } @Override Protected ModelView OnSubmit (httpservletrequest request, httpservletResponse 응답, 개체 명령, Bindexception 오류) 예외 {userDao tmp = (userDao) 명령; 컬렉션 <userpo> list = dao.doquery (); 목록 <userpo> users = new arraylist <userpo> (); userpo 사용자; for (userpo userpo : list) {user = new userPo (); user.setuserid (userpo.getuserid ()); user.setusername (userpo.getusername ()); user.setuserage (userpo.getUserage ()); user.add (사용자); } map mp = new Hashmap (); mp.put ( "목록", 사용자); 새로운 ModelAndView (getViewPage (), MP)를 반환합니다. } public void setdao (userdao dao) {this.dao = dao; }} 패키지 com.yjde.springmvc; 공개 클래스 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 : teal"> jsp </span spant = "color : test : </span> </p> <p align ="> <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.*"utf-8 "pageEncoding ="%string path = ritt. String BasePath = request.getScheme ()+": //"+request.getServerName ()+":"+request.getServerport ()+path+"/"; %> <! doctype html public "-// w3c // dtd html 4.01 전환 // en"> <html> <head> <head> <base href = "<%= basepath%>"> <title> 나의 jsp 'index.jsp'시작 페이지 </titp-equiv = "pragma"= no-cache ""no-cache ""pragma " http-equiv = "Cache-control"content = "no-cache"> <meta http-equiv = "chewors"content = "0"> <meta http-equiv = "keyword ="keyword1, keyword2, keyword2, keyword3 "> <meta http-equiv ="descript "> <" "rel rel rele"> type = "text/css"href = "styles.css"> -> -> </head> <body> <form action = "user.do"method = "post"> 입력하십시오 <input name = "msg"type = "text"/<입력 유형 = "제출"value = "subms"> </form> </body> </html> <pre> </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_4732.png"> </span> </p> <p align = "left"> <span style = "color : teal"> database table creation : </span> <p> 스타일 = "색상 :#008080"> </span> </p> <pre name = "code">/* navicat mysql 데이터 전송 소스 서버 : mysql 소스 서버 버전 : 50145 소스 호스트 : 로컬 호스트 : 3306 소스 데이터베이스 : SpringMVCDB Target Server 유형 : MySQL 대상 서버 : 50145 인코딩 : 65-24 10 441414141414141414141414. */ set forex_key_checks = 0; ---------------------------`usermbo`를위한 테이블 구조---------------------------------- 'usermbo'가 존재하는 경우; 테이블 작성`usermbo` (`usermbo` (11) not null default '0',`username` varchar (50) 기본 null,`userage` int (11) 기본 널, 기본 키 (`userId`)) 엔진 = innodb defaultcharset = utf8; ------------------------------------------------------------------`usermbo` 값 ( '1', '李晓红', '25')에 삽입; `usermbo` 값 ( '2', '柳梦璃', '27')에 삽입; `usermbo` 값 ( '3', '韩菱纱', '26')에 삽입; </pre> 다운로드 예 : 데모
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.