摘要:構(gòu)建應(yīng)用程序映射請求到控制器透明地綁定表單參數(shù)校驗表單提交跟蹤的請求發(fā)起請求攜帶請求和表單信息到前端控制器查詢處理器映射發(fā)送給選中的控制器將請求連同模型和視圖名發(fā)送回使用視圖解析器來將邏輯視圖名匹配為一個特定的視圖實現(xiàn)視圖的實現(xiàn)
構(gòu)建Spring Web應(yīng)用程序
映射請求到Spring控制器
透明地綁定表單參數(shù)
校驗表單提交
跟蹤Spring MVC的請求發(fā)起請求->攜帶請求URL和表單信息到前端控制器(DispatcherServlet)->查詢處理器映射(handler mapping)->
發(fā)送給選中的控制器->將請求連同模型和視圖名發(fā)送回DispatcherServlet ->使用視圖解析器(view resolver)來將邏輯視圖名
匹配為一個特定的視圖實現(xiàn)->視圖的實現(xiàn)(可能是JSP),使用模型數(shù)據(jù)渲染輸出返回客戶端
DispatcherServlet的任務(wù)是將請求發(fā)送給Spring MVC控制器(controller),是Spring MVC的核心
處理器映射會根據(jù)請求所攜帶的URL信息來進(jìn)行決策
控制器處理用戶提交的信息,并打包模型數(shù)據(jù)輸出到視圖
http://sishuok.com/forum/uplo...
http://sishuok.com/forum/uplo...
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; /** * 配置DispatcherServlet */ public class SpittrWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { /** * 根配置定義 */ @Override protected Class>[] getRootConfigClasses() { return new Class>[]{RootConfig.class }; } /** * 指定配置類 */ @Override protected Class>[] getServletConfigClasses() { return new Class>[]{WebConfig.class}; } /** * 將DispatcherServlet映射到 "/" */ @Override protected String[] getServletMappings() { return new String[]{ "/" }; } } import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import org.springframework.web.servlet.view.InternalResourceViewResolver; @Configuration //開啟配置 @EnableWebMvc //啟用Spring MVC @ComponentScan("com.leaf.u_spring.chapter05") //掃描的包 public class WebConfig extends WebMvcConfigurerAdapter { /** * 配置JSP視圖解析器 * @return */ @Bean public ViewResolver viewResolver(){ InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/WEB-INF/views/"); resolver.setSuffix(".jsp"); resolver.setExposeContextBeansAsAttributes(true); return resolver; } /** * 配置靜態(tài)資源的處理,DispatcherServlet將對靜態(tài)資源的請求轉(zhuǎn)發(fā)到Servlet容器中默認(rèn)的Servlet上 */ @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } } import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan.Filter; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.FilterType; import org.springframework.web.servlet.config.annotation.EnableWebMvc; @Configuration @ComponentScan(basePackages={"com.leaf.u_spring"}, excludeFilters={@Filter(type=FilterType.ANNOTATION, value=EnableWebMvc.class)}) public class RootConfig { }搭建Spring MVC
配置DispatcherServlet:在web.xml中配置或Java代碼配置(SpittrWebAppInitializer)
Spring MVC允許多種方式將客戶端中的數(shù)據(jù)傳送到控制器的處理器方法中:
查詢參數(shù)(Query Parameter)
表單參數(shù)(Form Parameter)
路徑參數(shù)(Path Parameter)
Java校驗API所提供的校驗注解
@AssertFalse 所注解的元素必須是Boolean類型,并且值為false
@AssertTrue 所注解的元素必須是Boolean類型,并且值為true
@DecimalMax 所注解的元素必須是數(shù)字,并且它的值要小于或等于給定的BigDecimalString值
@DecimalMin 所注解的元素比誰數(shù)字,并且它的值要大于或等于給定BigDecimalString值
@Digits 所注解的元素必須是數(shù)字,并且它的值必須有指定的位數(shù)
@Future 所注解的元素的值必須是一個將來的日期
@Max 所注解的元素必須是數(shù)字,并且它的值要小于或等于給定的值
@Min 所注解的元素必須數(shù)數(shù)字,并且它的值要大于或等于給定的值
@NotNull 所注解的元素的值不能為null
@Null 所注解的元素的值必須為null
@Past 所注解的元素的值必須是一個已經(jīng)過去的日期
@Pattern 所注解的元素的值必須匹配給定的正則表達(dá)式
@Size 所注解的元素的值必須是String、集合或數(shù)組,并且它的長度要符合給定的范圍
引用:《Spring In Action 4》第5章
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/71164.html
摘要:指南無論你正在構(gòu)建什么,這些指南都旨在讓你盡快提高工作效率使用團(tuán)隊推薦的最新項目版本和技術(shù)。使用進(jìn)行消息傳遞了解如何將用作消息代理。安全架構(gòu)的主題指南,這些位如何組合以及它們?nèi)绾闻c交互。使用的主題指南以及如何為應(yīng)用程序創(chuàng)建容器鏡像。 Spring 指南 無論你正在構(gòu)建什么,這些指南都旨在讓你盡快提高工作效率 — 使用Spring團(tuán)隊推薦的最新Spring項目版本和技術(shù)。 入門指南 這些...
摘要:要使用容器上傳文件,您需要注冊一個類在中。最好不要使用內(nèi)容加載應(yīng)用程序的文件系統(tǒng)。允許用戶上傳文件的表單從后端提供的文件列表調(diào)整文件上傳限制配置文件上傳時,設(shè)置文件大小限制通常很有用。 本指南將指導(dǎo)您完成創(chuàng)建可以接收HTTP多文件上傳服務(wù)器應(yīng)用程序的過程。 你要構(gòu)建什么 您將創(chuàng)建一個接受文件上傳的Spring Boot Web應(yīng)用程序。您還將構(gòu)建一個簡單的HTML界面來上傳測試文件。 ...
摘要:一旦最基本的應(yīng)用創(chuàng)建好了,你可以給他加上安全防護(hù)。一旦成功登出了,我們的應(yīng)用程序重定向到到并顯示相應(yīng)的登陸成功的消息。這標(biāo)記該應(yīng)用程序是一個應(yīng)用程序,并激活一些關(guān)鍵行為,比如創(chuàng)建一個。一旦應(yīng)用程序啟動,用瀏覽器訪問。 原網(wǎng)頁 https://spring.io/guides/gs/securing-web/ 本指南將引導(dǎo)您完成創(chuàng)建一個資源由Spring Security的保護(hù)的一個簡單...
摘要:構(gòu)建系統(tǒng)強烈建議你選擇一個支持依賴管理的構(gòu)建系統(tǒng),并且可以使用發(fā)布到中心存儲庫的工件。例如,要升級到另一個,你可以將以下元素添加到你的在前面的示例中,我們指定了一個,但是任何依賴類型都可以以相同的方式被覆蓋。 13. 構(gòu)建系統(tǒng) 強烈建議你選擇一個支持依賴管理的構(gòu)建系統(tǒng),并且可以使用發(fā)布到Maven中心存儲庫的工件。我們建議你選擇Maven或Gradle,可以讓Spring Boot與其...
摘要:構(gòu)建服務(wù)本指南將引導(dǎo)你完成使用創(chuàng)建服務(wù)的過程。接下來,你將創(chuàng)建將為這些問候語提供服務(wù)的資源控制器。告訴在包中查找其他組件配置和服務(wù),允許它找到控制器。顯示日志輸出,該服務(wù)應(yīng)在幾秒內(nèi)啟動并運行。 構(gòu)建RESTful Web服務(wù) 本指南將引導(dǎo)你完成使用Spring創(chuàng)建hello world RESTful Web服務(wù)的過程。 將要構(gòu)建什么 你將構(gòu)建一個接受HTTP GET請求的服務(wù): ht...
摘要:編寫一個接口創(chuàng)建命名為根據(jù)實際情況修改創(chuàng)建類,內(nèi)容如下啟動主程序,使用等工具發(fā)起請求,可以看到頁面返回編寫單元測試用例打開的下的測試入口類。 簡介 在您第1次接觸和學(xué)習(xí)Spring框架的時候,是否因為其繁雜的配置而退卻了?在你第n次使用Spring框架的時候,是否覺得一堆反復(fù)黏貼的配置有一些厭煩?那么您就不妨來試試使用Spring Boot來讓你更易上手,更簡單快捷地構(gòu)建Spring應(yīng)...
閱讀 1375·2021-11-11 10:57
閱讀 3797·2021-09-07 10:10
閱讀 3493·2021-08-03 14:03
閱讀 3131·2019-08-30 13:45
閱讀 748·2019-08-29 11:19
閱讀 1100·2019-08-28 18:07
閱讀 3165·2019-08-26 13:55
閱讀 876·2019-08-26 12:17