私はいつもSSHを使用しています。会社はSpringMVCを使用したいので、私は以前にそれにさらされたことがないので、今日はあなたと一緒にこのフレームワークを学び、仕事をすることができます。
まず第一に、パターンとは何かを理解しましょう。パターンは、特定のタイプの問題を解決する方法論であり、このタイプの問題に対する解決策を理論レベルまで要約します。これがパターンです。パターンは、開発者が優れたガイダンスの下でタスクを完了するのに役立つガイドです。優れた設計計画を立てることは、半分の労力で結果の2倍を達成できます。そして、あなたは問題に対する最良の解決策を得るでしょう。
MVCパターンは、モデルビューコントローラーの略語であるSmallTalk言語に由来します。 MVCは、ビジネスロジックインターフェイスとデータインターフェイスの間の結合を弱めます。強い信頼性、高い再利用と適応性、低いライフサイクルコスト、迅速な展開、強力なメンテナンスなど、MVCモードを使用することには多くの利点があります。ここでは詳細についてはあまり説明しません。
SpringMVCの機能:
1。役割部門をクリアします。 Springは、モデル、ビュー、コントローラーの非常に明確な分裂を提供します。これらの3つの側面は本当に実行され、それぞれが責任を想定しています。
2。柔軟な構成関数。SpringのコアはIOCであり、MVCの実装では、XMLを介して豆としてさまざまなクラスを構成することもできます。
3.多数のコントローラーインターフェイスと実装クラスを提供するため、開発者はSpringが提供するコントローラー実装クラスを使用したり、コントローラーインターフェイスを実装したりできます。
4。SpringMVCは、実際のビューレイヤーの実装に依存しません。開発者にJSPの使用を強制しません。 Velocity、XSKTなど、他のビューテクノロジーを使用できます。
5。国際化のサポート。 SpringのApplicationContextは、ここで非常に便利に使用できる国際化のサポートを提供します。
6。インターフェイス指向プログラミング。実際、これはSpringMVCの機能だけではありません。春の観点から見ると、この機能は、開発者がプログラムをテストして簡単に管理できるようにするため、非常に明白です。
7。Springは、MVCだけでなく、簡単に組み合わせることができるWebアプリケーション開発のための完全な一連のプロセスを提供します。以下は、私が自分でどのようにしたかの例です。この例を終えた後、私はSpringMVCの力に本当に気づきました。
SpringMVCプロジェクトの構成を始めましょう。
まず、Web-INFディレクトリでWeb.xmlを構成します。
<?xml version = "1.0" encoding = "utf-8"?> <web-appバージョン= "2.5" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns:xsi = "http://www.w3.org/2001/xmlschema-instcance" xsi:schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/ns/javaee/web-app_5.55.55.5.5.55.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.ページ全体の要求パスを制御するDispatcherServlet - > <Servlet-Name> DispatcherServlet </servlet-name> <servet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <! - 初期化パラメーター>/web-inf/クラスContextConfiglocation-> <param-name> contextconfiglocation </param-name> <param-value> /web-inf/classes/applicationcontext.xml </param-value> </init-startup> 2 </load-on-startup> </servlet> <! <Servlet-Name> DispatcherServlet </servlet-name> <url-pattern>*。do</url-pattern> </servlet-mapping> <! - ページから背景に渡すときに発生する中国語の文字化けの問題を処理します - > <filter> <filter> <filter-name> encodingfilter </filter-name> <filter-class> org.springframework.web.filter.characterencodingfilter </filter-class> <init-param> <param-name>エンコーディング</param-name> <param-value> utf-8 </param-value> </init-param> </filter> <filter-name> <filter-name> <filter-name> <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&charateremencoding = 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" "> <! - デフォルトのコントロールアダプター - > name = "locations"> <list> <value> classpath:db-config.properties </value> </list> </property> </bean> <! - get data source-> <bean id = "dataSource"> <プロパティname = "driverclassname"> <value> $ $ {db.dirverclass} <値> $ {db.url} </value> </property> <property name = "username"> <value> $ {db.username} </value> </property name> <property name = "password"> <bule> $ {db.password} </value> </property> </bean> </bean> <プログラムファイルアドレス、値はプロセッサのBean名です。 URLプログラムファイルアドレスは、com/mvc/t?st.jsp:com/mvc/test.jsp、com/mvc/tast.jspなど、com/mvc/mvc /*.jspなどのパスマッチングパターンを採用できます。 com/mvc /**/*.jsp:すべてのURLをCom/MVCパスまたは子孫パスCN/**/Web/bla.jspの下で.JSPサフィックスと一致させます。 user.do = useraction </value> </property> </bean> <! - 定義ビューは内部resourceviewを通じて使用され、サーブレット/JSPテクノロジーが使用されていることを示します - > <bean id = "ViewResolver"> <Property name = "Viewclass"> <value> org.springframework.web.servelet.view。 jsp-> <Property name = "prefix"> <value>/jsp/</value> </property> <! - suffixの接尾辞の定義 - > <プロパティ名= "suffix"> <balue> .jsp> .jsp </value> </property> </bean> <bean id = "userdao"> <property name = "datasource" refpertice "> <コントローラー - > <bean id = "useraction"> <プロパティ名= "dao"> <ref bean = "userdao"/> </property name> <property name = "commandclass"> <balue> com.yjde.springmvc.userdao </value> </property> <propertial name = "viewpage> </value </valueApplicationContext.xmlファイルが構成されたら、特定のJavaクラスの書き込みを開始します。 DAOクラス、コントローラークラス、POが必要です
MySQLにUsermboテーブルを作成しました。
userdaoクラス:
パッケージ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はjdbcdaosupportを拡張します{private string msg; public string getMsg(){return msg; } public void setmsg(string msg){this.msg = msg; } //このメソッドは、usemboテーブルに対応するフィールドを照会し、sequenceパブリックコレクション<userpo> doquery(){string sql = "select t.userid、t.username、t.userage from usermbo t" "; return super.getjdbctemplate()。query(sql、new rowmapper(){public object maprow(resultet rs、int num)throws sqlexception {userpo users = new userpo(); user.setuserid(rs.getint( "userid")); user.setusername(rs.getString( "esername"); 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をインポートします。 Import org.springframework.validation.bindexception; Import org.springframework.web.servlet.modelandview; org.springframework.web.servlet.mvc.simpleformControllerをインポートします。 @suppresswarnings( "all")// SimpleFormControllerは、Springが提供するフォームコントローラーです。ページ上のフォームの要素名をBeanと同じに設定します。渡されると、Springは、フォームのBean Nameと同じ要素値を自動的につかみ、それをBeanに変換し、開発者が非常に便利に使用できるようにします。 Public Class UserControllerは、SimpleFormControllerを拡張します{private String Viewpage;プライベートユーザーダオダオ; public String getViewPage(){return Viewpage; } public void setViewPage(String ViewPage){this.ViewPage = ViewPage; } @Override Protected ModelandView OnSubmit(httpservletRequestリクエスト、httpservletResponse応答、オブジェクトコマンド、bindexceptionエラー)をスローする{userdao tmp =(userdao)コマンド;コレクション<userpo> list = dao.doquery(); List <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()); users.add(user); }マップmp = new Hashmap(); mp.put( "list"、users); 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">クラスの作成が完了した後、2つの</span> <span style = "color"> jsp </span> <span style = "color:teal"> test:</span> </p> <p Align = "> <span </p/> </p> </p> </p> </p> </p> </p <p align = "left"> <span style = "color:#bf5f3f"> </span> </p> <pre name = "code"> <%@ page Language = "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'スタートページ</title> <meta http-equiv = "pragma"> <meta " http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "content =" 0 "> <meta http-equiv =" keyword1、keyword3 "keyword3"> <meta http-equiv = "content =" type = "text/css" href = "styles.css"> - > </head> <body> <form action = "user.do" method = "post"> <入力名= "text =" text "/> <入力タイプ=" submit ""> </form> </body> </html> <p al> </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 = "coler">データベース声明style = "color:#008080"> </span> </p> <pre name = "code">/* navicat mysqlデータ転送ソースサーバー:MySQLソースサーバーバージョン:50145ソースホスト:3306ソースデータベース:SpringMVCDBターゲットサーバータイプ:MySQLターゲットサーバーバージョン:50145ファイルエンコーディ: */ set foreign_key_checks = 0; - --------------------------------「Usermbo」のテーブル構造 - --------------------------------ドロップテーブル「Usermbo」;テーブル `usermbo`(` userid` int(11)not null default '0' '、 `username` varchar(50)default null、` userage` int(11)default null、primary key( `userid`))エンジン= innodb defaultcharset = utf8; - ----------------------------- USERMBOのレコード - -----------------------------------挿入 `Usermbo`値( '1'、 '李晓红'、 '25'); `usermbo`値( '2'、 '柳梦璃'、 '27')に挿入; `usermbo`値( '3'、 '韩菱纱'、 '26'); </pre>に挿入しますダウンロード例:デモ
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。