SpringMVC是基于MVC模式的web框架,采用前端控制器設計模式,屬于SpringFrameWork的后續(xù)產品?,F在以一個基本Hello World入門程序為例,通過XML配置形式介紹springMVC基本開發(fā)流程:
成都創(chuàng)新互聯(lián)公司專注于企業(yè)營銷型網站、網站重做改版、陜州網站定制設計、自適應品牌網站建設、H5網站設計、商城網站定制開發(fā)、集團公司官網建設、外貿網站制作、高端網站制作、響應式網頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為陜州等各大城市提供網站開發(fā)制作服務。1.加入所需要的jar包,springMVC是建立在Spring IoC為容器,因此需要加入IoC相關的jar包(采用spring3.2.16版本)
commons-logging-1.1.3.jar
spring-beans-3.2.16.RELEASE.jar
spring-context-3.2.16.RELEASE.jar
spring-core-3.2.16.RELEASE.jar
spring-expression-3.2.16.RELEASE.jar
spring-web-3.2.16.RELEASE.jar
spring-webmvc-3.2.16.RELEASE.jar
2.配置springMVC的核心控制器DispatcherServlet,該控制器是一個servlet因此需要在web.xml中進行配置,如下
dispatcher org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:spring.xml 1 dispatcher *.action
3.加載配置文件,配置文件默認為名稱為:核心控制器名稱-servlet.xml,本例默認配置文件為
dispatcher-servlet.xml,該文件位置在WEB-INF目錄下,若配置文件名自定義,則需要在配置核心控 制器時,配置參數contextConfigLocation指定其路徑,一般放在classpath下
4.配置處理器映射器HandlerMapper,默認為BeanNameUrlHandlerMapping
5.配置處理器適配器HandlerAdapter,默認為SimpleControllerHandlerAdapter
6.創(chuàng)建處理器HelloController繼承Controller
package com.lw.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; public class HelloController implements Controller { @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mv = new ModelAndView(); mv.setViewName("hello"); mv.addObject("hello", "hello world"); return mv; } }
7.在配置文件中配置該處理器,name為url與該控制器映射
8.配置視圖解析器ViewResolver
9.創(chuàng)建在WEB-INF/jsp目錄下創(chuàng)建一個hello.jsp頁面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>hello頁面 ${hello}
10.將該項目部署到tomcat上,打開瀏覽器訪問路徑http://localhost:8080/springMVC/hello.action
輸出結果為
hello world
簡單總結SpringMVC工作原理
客戶端發(fā)送http請求給web服務器,web服務器對請求進行解析,若匹配DispatcherServlet映射路徑(在web.xml中配置),則web容器將轉發(fā)給DispatcherServlet。
DispatcherServlet接收請求后通過配置的處理器映射器handlerMapping對request進行映射解析找到請求的處理器,并將其封裝成處理器執(zhí)行鏈HandlerExecutionChain返回給DispatcherServlet;
DispatcherServlet根據放回的HandlerExecutionChain中的處理器找到處理器適配器HandlerAdapter
DispatcherServlet通過HandlerAdapter來調用具體處理器的方法來處理請求,對數據處理完后將返回一個ModelAndView對象給DispatcherServlet
返回的ModelAndView只是一個邏輯視圖,需要DispatcherServlet調用視圖解析器ViewResolver將邏輯視圖轉化為真正視圖View對象,并返回一個view對象給DispatcherServlet
DispatcherServlet通過調用view對象的render方法對視圖進行渲染,終展現出完整的view并返回給客戶端。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。