Day04:開(kāi)始編寫(xiě)Web程序

1、Spring MVC基礎(chǔ)

1.1 請(qǐng)求追蹤

  • 用戶(hù)點(diǎn)擊鏈接或提交表單:請(qǐng)求開(kāi)始
  • step1:Spring的DispatcherServlet前端控制器,將請(qǐng)求發(fā)送給spring mvc控制器(controller)【通過(guò)處理器映射handler mapping確定走向哪個(gè)控制器】
  • step2:控制器處理請(qǐng)求,請(qǐng)求卸下負(fù)載并等待返回信息
  • step3:控制器對(duì)model加工打包,返回模型和視圖名給dispatcherservlet
  • step4:dispatcherservlet使用視圖解析器view resolver根據(jù)視圖名匹配視圖實(shí)現(xiàn)
  • step5:視圖使用模型數(shù)據(jù)渲染輸出并傳遞給客戶(hù)端

1.2 配置dispatcherservlet

繼承 AbstractAnnotationConfigDispatcherServletInitializer getServletMappings() //映射 getServletConfigClasses() //指定配置類(lèi)

1.3 測(cè)試

  • 將controller忽略注解,當(dāng)成pojo來(lái)測(cè)試
  • 按照控制器的方法測(cè)試:TestController controller = new TestController(); MockMvc mockMvc = standaloneSetup(controller).build(); mockMvc.perform(get("/")).addExpect(view().name("home"));//對(duì)“/”進(jìn)行g(shù)et請(qǐng)求并預(yù)期的home視圖

1.4 查詢(xún)參數(shù)

/spittles/show?spittle_id=12345 從面向資源的角度來(lái)看這并不理想,在理想的情況下,要識(shí)別的資源應(yīng)該通過(guò)URL路徑進(jìn)行標(biāo)示,而不是通過(guò)查詢(xún)參數(shù),相比來(lái)說(shuō)少了參數(shù)解析,性能要高
@RequestMapping(value="/{spittleId}", method=RequestMethod.GET) public String spittle(@PathVariable("spittleId") long spittleId, Model model) { //**** }

2

2.1 導(dǎo)向

  • redirect:重定向規(guī)則
  • forward:前往指定URL,而不是重定向

2.2 校驗(yàn)

Spring對(duì)java的校驗(yàn)支持:Java Validation API, JSR-303

  • javax.validation.constraints

@AssertFalse:必須是Boolean:false @AssertTrue:Boolean:true @DecimalMax:數(shù)字,小于等于給定BigDecimalString @DecimalMin:數(shù)字,大于等于給定的BigDecimalString值 @Digits:數(shù)字,指定的位數(shù) @Futrue:將來(lái)的日期 @Max:數(shù)字,小于等于該值 @Min:數(shù)字,大于等于該值 @NotNull:不能為null @Null:必須為null @Past:已過(guò)去的日期 @Pattern:正則表達(dá) @Size:String/集合/數(shù)組:長(zhǎng)度符合范圍

  • 應(yīng)用校驗(yàn):public String processRegist(@Valid User user,Errors errors){ //errors.hasErrors()判讀是否出錯(cuò) }
    errors參數(shù)緊跟@Valid注解的參數(shù)后面
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容