在使用Spring MVC做開(kāi)發(fā)時(shí),可以利用框架的特性可以很方便的將運(yùn)行時(shí)異常隱藏起來(lái),避免暴露給用戶(hù)降低體驗(yàn),同時(shí)提高系統(tǒng)安全。
現(xiàn)在大家都知道了,Spring MVC的核心是Servlet轉(zhuǎn)發(fā)。所以,我們完全可以利用這個(gè)特性在系統(tǒng)內(nèi)部統(tǒng)一將運(yùn)行時(shí)異常捕獲并記錄下來(lái),留作分析使用,在外觀(guān)上,使用友好的提示頁(yè)面展示給用戶(hù)。
現(xiàn)在來(lái)說(shuō)說(shuō)具體的實(shí)現(xiàn)步驟,以ssm3為例,首先在web.xml文件里面加上這段配置:
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/error/500</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error/500</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error/404</location>
</error-page>
<error-page>
<error-code>405</error-code>
<location>/error/405</location>
</error-page>
<error-page>
<error-code>400</error-code>
<location>/error/400</location>
</error-page>
然后再寫(xiě)一個(gè)Controller來(lái)處理這些異常,比如像下面這樣:

RequestMapping的URL就是用來(lái)匹配/error/404,/error/500這樣的異常路徑,它們所對(duì)應(yīng)的正是各自的ErrorCode。
做好這些后,剩下的就是錯(cuò)誤頁(yè)面的設(shè)計(jì)了,這部分就可以交給美工和前端來(lái)實(shí)現(xiàn)。
本文為菠蘿大象原創(chuàng),如要轉(zhuǎn)載請(qǐng)注明出處。http://www.tkk7.com/bolo
posted on 2013-12-04 15:10
菠蘿大象 閱讀(1670)
評(píng)論(0) 編輯 收藏 所屬分類(lèi):
Spring3