javascript
【SSM框架系列】SpringMVC基本介绍
SpringMVC 是web層的框架
-
SpringMVC 是一種基于 Java 的實現 MVC 設計模型的請求驅動類型的輕量級 Web 框架,屬于SpringFrameWork 的后續產品,已經融合在 Spring Web Flow 中。
-
SpringMVC 已經成為目前最主流的MVC框架之一,并且隨著Spring3.0 的發布,全面超越 Struts2,成為最優秀的 MVC 框架。
-
它通過一套注解,讓一個簡單的 Java 類成為處理請求的控制器,而無須實現任何接口。同時它還支持 RESTful 編程風格的請求。
web層主要干嘛的:接收請求參數,封裝數據,調用service,響應給瀏覽器
但是在web層各種域之間存取數據、頁面之間的跳轉、數據寫到響應體中等等這些操作還未進行優化。
Spring提供了spring-web實現Spring整合web開發,但是這種做法很難實現MVC思想,也就是不能簡化我們的web開發。
這里要注意區分兩個不同的概念:
1、軟件三層:展示層、業務層、數據持久層。一個應用根據代碼職責不同劃分為軟件三層。
展示層:負責與前臺交互業務層:負責業務邏輯處理數據持久層:負責業務數據持久化與讀取2、MVC:為了模型和視圖實現代碼上的分離,將軟件三層中的展示層中代碼根據職能不同分為三部分:
模型——Model——M :封裝數據(企業數據和業務規則)視圖——View——V :封裝視圖(用戶可以看到的界面,通過HTML、jsp等技術實現)控制——Controller——C :負責同步M和V,一旦M改變,V應該同步更新。Spring簡化版工作流程
如上圖所示,Servlet需要的做工作有:
- 接收請求
- 通過request對象獲取請求參數
- 將獲取的請求參數封裝成對象
- 調用Service
- 根據Service返回的結果,作出響應,響應可以是將數據寫入各種域中,完成頁面跳轉,也可以把數據封裝成json寫到響應體中,然后直接響應
上述步驟中除了調用Service會根據不同的業務需求調用不同的service之外,其他的基本都是相對比較固定的。這些相對比較固定的步驟就是SpringMVC幫我們去實現的,通過前端控制器幫我們實現。
兩個概念,JavaBean和POJO。
- JavaBean 是指一個類按照指定的規范去編寫
- 這個類必須實現序列化接口
- 這個類必須提供無參構造方法
- 這個類必須私有化成員變量
- 這個類必須提供成員變量的getter和setter
- POJO —— Plain Ordinary Java Object —— 就是簡單的java對象
- 就是一個普通的java類
- 沒有任何實現和繼承(Object除外)
- 可以有自己的成員變量和成員方法
- controller就是一個POJO
代碼演示
導入Spring和SpringMVC的坐標、導入Servlet和Jsp的坐標
<!--Spring坐標--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.0.5.RELEASE</version></dependency><!--SpringMVC坐標--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.0.5.RELEASE</version></dependency><!--Servlet坐標--><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency><!--Jsp坐標--><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.0</version></dependency>在web.xml配置SpringMVC的核心控制器
<!-- 配置SpringMVC前端控制器 --> <servlet><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- servlet初始化參數,用于指定SpringMVC配置文件位置schema約束規定,該標簽需要在load-on-startup上面--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><!-- 0表示web容器啟動時就加載該控制器DispatcherServlet當值為0或者大于0時,表示容器在應用啟動時就加載這個servlet正數的值越小,啟動該servlet的優先級越高設置重復也不會出現異常,服務器會自己決定初始化順序。當是一個負數時或者沒有指定時,則指示容器在該servlet被使用時才加載--><load-on-startup>1</load-on-startup> </servlet> <!-- 攔截規則 --> <servlet-mapping> <servlet-name>DispatcherServlet</servlet-name><url-pattern>/</url-pattern> </servlet-mapping>編寫Controller代碼
public class QuickController {public String quickMethod(){System.out.println("quickMethod running.....");return "index";}}在webapp目錄下編寫視圖頁面index.jsp
<html> <body><h2>Hello SpringMVC!</h2> </body> </html>使用注解裝配Controller、配置方法的映射請求地址
// 把當前類放入Spring容器@Controllerpublic class QuickController {// 給當前方法加訪問路徑@RequestMapping("/quick")public String quickMethod(){System.out.println("quickMethod running.....");// 如果是重定向 “redirect:/quick/index.jsp”// 如果是轉發 “forward:/quick/index.jsp” // 不寫,默認轉發return "index";}}⑤ 編寫spring-mvc.xml
<!--配置SpringMVC的注解掃描,建議只掃描controller層--><context:component-scan base-package="cs.wy.controller"/>總結
以上是生活随笔為你收集整理的【SSM框架系列】SpringMVC基本介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【工具类】页面静态化 --- Freem
- 下一篇: 【工具类】发送邮件的方法