国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JavaEE學習的第三部分(重點在第四個知識點,SSM框架整合)

這篇具有很好參考價值的文章主要介紹了JavaEE學習的第三部分(重點在第四個知識點,SSM框架整合)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、攔截器

Spring MVC的攔截器(Interceptor)?類似于Java Servlet的過濾器(Filter)。前面學習Java Web學過一點過濾器。

攔截器的作用 是攔截用戶的請求,并做相應(yīng)的處理 。例如在JSP提交表單數(shù)據(jù)給Controller,先是提交給攔截器的類。比如權(quán)限驗證,是否登錄,然后再交給Controller處理。

作法:需要配置攔截器類。Interceptor類。

接著需要在Springmvc.xml文件里面 注冊攔截器類。并配置攔截器作用的路徑。

攔截器 的類用的不多,在springmvc里面,對登錄權(quán)限進行判斷,一般都是使用的數(shù)據(jù)驗證類。

二、數(shù)據(jù)驗證(需要記憶)

數(shù)據(jù)驗證,在企業(yè)應(yīng)用里面用的比較多,但一般都是結(jié)合 統(tǒng)一異常處理 的方式進行處理。現(xiàn)只講一下數(shù)據(jù)驗證的方式。

它的作用是,使得輸入的數(shù)據(jù)符合 預期,否則 就提示輸入數(shù)據(jù)的格式問題。

這里我們學習Spring框架自帶的驗證組件。Spring驗證器:

Validator接口:(自帶的)

? ? ? 存在兩個方法(自帶的):boolean supports(Class<?> klass)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?void validate(Object object,Errors errors)

? ? ? 存入錯誤消息的方法是reject 或者rejectValue

應(yīng)用實訓:編寫一個添加商品的表單。

要求:1.商品名和商品詳情不能為空。

2.商品價格在0到100之間

3.創(chuàng)建日期不能在系統(tǒng)日期之后。

代碼分析:

第一步:導入依賴? (和前面的依賴是一樣的。Spring自帶的驗證器不需要額外導入包)

第二步:配置web.xml文件,和之前一樣

第2.5步:配置Validator類(驗證器類)和錯誤消息的屬性文件(例如error.properties,這個文件需要在springmvc里面注冊噢。)

這個類自定義,但繼承Validator類。并且重寫它的兩個方法。最后根據(jù)POJO的屬性,對每一個屬性進行一次判定(數(shù)據(jù)驗證。符合上述的要求即可)

第三步:配置POJO、Service層、Contoller層 。方法和之前的差不多。

注意不同的是Controller層可以使用第2.5層定義的Validator(驗證器類)。????????

第四步:配置View頁面。創(chuàng)建數(shù)據(jù)輸入頁面addGoods,jsp。 (使用和前面學過的 數(shù)據(jù)綁定 去綁定POJO類型。)

需要注意一下JSP 和Controller 是可以相互轉(zhuǎn)換的,也就是說,JSP的創(chuàng)建可以放在創(chuàng)建Controller之前。

第五步:配置Spring.mvc。和前面一樣。

不過,多了 配置消息屬性文件(就是第2.5步創(chuàng)建的Validator類),以及注冊格式轉(zhuǎn)換器。

代碼分析優(yōu)化:

像上面那樣分為步驟來編寫,很容易 因為Validate類出現(xiàn)問題而導致整個 項目出現(xiàn)問題。建議,先按 數(shù)據(jù)綁定的方式對代碼進行編寫。如果數(shù)據(jù)綁定通過了,并且最后能查看商品的詳細頁面。再接著去 修改代碼,添加數(shù)據(jù)驗證的方式。

數(shù)據(jù)綁定的方式步驟 的一點感悟:(建議多加練習這個方式,獲得最后的數(shù)據(jù)綁定總結(jié))

一開始,盲寫數(shù)據(jù)綁定。遇到的一個問題是,先編寫JSP頁面進行數(shù)據(jù)綁定到POJO類,還是先編寫Controller類。

在編寫代碼步驟的 建議:

POJO類是首先編寫的。

再編寫Service類(業(yè)務(wù)邏輯層,它的方法一般是一個判斷類型(判斷是否添加成功),一個集合類型(偽裝數(shù)據(jù)庫集合,將POJO的數(shù)據(jù)集合在一起。))。這個Service層的編寫 需要重點注意一下,它需要很強的抽象邏輯。分為一個接口和一個實現(xiàn)類。你要思考,在Controller需要得到什么數(shù)據(jù),那么就把得到的數(shù)據(jù),用抽象方法在Service層表示

再編寫Controller類(要用到service的注入,以及service的方法。比如:判斷條件,然后選擇返回一個頁面,在比如:使用model.Attribude,將service層得到的數(shù)據(jù) 封裝在model類型里面。)。最后編寫JSP頁面。

再加一點感悟:

這是控制Controller類的,它使用goods表示是一個Goods的類型(POJO類),它實際是傳給了JSP類里面。

JavaEE學習的第三部分(重點在第四個知識點,SSM框架整合),java-ee,學習,java

?JavaEE學習的第三部分(重點在第四個知識點,SSM框架整合),java-ee,學習,java

小結(jié):

所以獲取Controller類里面的model.Addribute(" name",service層的方法?)

有兩種方式:第一種,最常用的是EL表達式:${name}?

第二種,就是在表單元素里面的modelAttribute="name"? ?。

總結(jié):數(shù)據(jù)驗證,需要額外創(chuàng)建 Spring的驗證器類 以及對它的類進行配置注冊。

三、統(tǒng)一異常處理(重點部分)

請結(jié)合數(shù)據(jù)驗證 的方式,判斷異常處理 的過程有何不同。

異常處理方式比數(shù)據(jù)驗證方式用的多,而且異常處理方式有的時候也可以代替數(shù)據(jù)驗證。所以統(tǒng)一異常處理這個知識點需要掌握。?

主要介紹 自定義異常類。因為無論是dao、service、Controller層。都是可以throws Exception。所以,異常類的實現(xiàn) 單獨用一個exception包來存放,對這些層里面拋出的異常,這里我們主要介紹兩種方式來實習,這兩種方式都用的比較多。

第一種:HandlerExceptionResolver接口實現(xiàn)。

這個是系統(tǒng)自帶的類,我們定義好了異常類,需要繼承implements它,它存在一個方法,然后你重寫方法就行。

不過,這種系統(tǒng)自帶的異常類。使用的時候,需要去springmvc.xml文件里面,注冊配置。

一般都是一句:<bean class=" exception.自定義的類"/>

第二種:通過注解實現(xiàn)聲明異常類。@ExceptionHandler (不過實踐運用中,這個省略關(guān)系不大)? ?(最常用這種方式)

這種異常類都是自定義,并且沒有繼承關(guān)系。

但是,需要在控制層里面,對需要進行異常處理的Controller類 進行繼承自定義的這個類,例如:

@Controller

public class TestExceptionController extends BaseController? ?{? }

暫時沒有例子。

四、SSM框架整合(本此JavaEE學習的最終目標,非常重要)

本次學習的最終目標,就是能夠?qū)崿F(xiàn)SSM框架的整合。

在前面第一部分的學習,我們提到了Spring和MyBatis的整合,第二部分學習SpingMVC的框架?,F(xiàn)在結(jié)合這三個框架一起使用。SSM其實就是(Spring、Spring MVC、MyBatis)這三個大框架的整合。

以應(yīng)用項目為實例,進行這部分的學習:

項目:根據(jù)用戶名 模糊查詢用戶信息。

問題分析:

第一個問題:

Caused by: java.lang.UnsupportedClassVersionError: org/mybatis/spring/SqlSessionFactoryBean has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0 (鏃犳硶杞藉叆鐨?.綾? [org.mybatis.spring.SqlSessionFactoryBean])
?? ??? ?

原因:org.mybatis.spring.SqlSessionFactoryBean?類是由一個比當前 Java 運行時更新的版本編譯的(類文件版本為 61.0),而當前 Java 運行時只能識別最高到 52.0 版本的類文件。

糾錯:在pom.xml文件里面,改變mybatis的版本。將mybatis的版本降低一些,或者mysql的版本提高一些。

第二個問題:

JavaEE學習的第三部分(重點在第四個知識點,SSM框架整合),java-ee,學習,java

第三個問題:(多加練習。)

測試是否獲取dao的數(shù)據(jù)。(沒有進行測試,結(jié)果導致,是否獲取到了數(shù)據(jù)都不知道。所以以后做SSM的框架,從數(shù)據(jù)庫提取的數(shù)據(jù)都進行測試一下。)

測試作法:

在Controller編寫TestController 類方法 和Test 類測試。

TestController 類方法:編寫測試用到的數(shù)據(jù)。(調(diào)用的是Dao類的方法)

Test類:就是調(diào)用applicationContext.xml文件的類方法,進行調(diào)用上一個的test方法。

將第二個問題解決之后,發(fā)現(xiàn),代碼可以運行的通了,而且符合預期?。?!訣絕子

請多加練習SSM框架,建議組合式練習,先練習spring+mybatis的框架整合,在添加spingmvc的框架。

一定要理解springmvc是怎么綁定POJO的,因為在mybatis的框架里面,我們發(fā)現(xiàn),它連接數(shù)據(jù)庫之后對數(shù)據(jù)獲取進行測試,是對POJO類型 ,就是設(shè)置了setName="某個字符串",就是加了這樣的設(shè)置,才能進行測試。

但在springmvc框架里面不需要進行這樣的設(shè)定。(這個地方一定要多加練習,了解它們是怎么就綁定了POJO類的)

練習:使用工廠模式的思維進行練習

實現(xiàn)登錄,注冊,查詢?nèi)齻€功能。文章來源地址http://www.zghlxwxcb.cn/news/detail-528579.html

到了這里,關(guān)于JavaEE學習的第三部分(重點在第四個知識點,SSM框架整合)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包