SpringMVC概念和第一個程序

1、SringMVC 概念

1.1、三層架構

1、我們開發架構一般都是基於兩中形式:
一種是 Client/Server 架構(C/S架構),也就是客戶端/服務器;
另一種是 Browser/Server 架構(B/S架構),也就是瀏覽器/服務器。

2、在JavaEE開發種,幾乎全都是基於B/S架構的開發。在B/S架構中,又分成了三層架構。

3、三層架構
表現層:web層,用來和客戶端進行數據交互的,表現層一般採用MVC設計模型。
業務層:寫業務邏輯代碼
持久層:用來操作數據庫的

1.2、MVC模型

1、MVC是模型(model)-視圖(view)-控制器(controller)的縮寫,模型視圖控制器。
2、Model:數據模型,JavaBean的類,用來進行數據封裝。


3、View:指用JSP、HTML來展示數據給用戶
4、Controller:用來接受用戶的請求,整個流程的控制器。
5、角色:

前端控制器(DispatcherServlet)

處理映射器(HandlerMapping)

處理適配器(HandlerAdapter)

視圖解析器(ViewResolver)

處理器或頁面控制器(Controller)

驗證器(Validator)

命令對象(Command)

表單對象(From Object)

1.3、第一個SpringMVC程序

步驟:

1、建立一個maven項目,勾選web框架,創建java包和resource包,右擊,把它們作為source root和resource root。

2、導入pom依賴座標,在resources目錄下,新建配置文件springmvc.xml。

3、編寫index.jsp,在web.xml中添加攔截器。

4、編寫controller類,導入tomcat服務器。

5、運行測試

  • 整個項目結構
SpringMVC概念和第一個程序

詳細步驟:

1、建立一個maven項目,勾選web框架,創建java包和resource包,右擊,把它們作為source root和resource root,如下圖。

SpringMVC概念和第一個程序

2、導入pom依賴座標,在resources目錄下,新建配置文件springmvc.xml。

pom依賴

<code>    
      org.springframework
      spring-web
      5.2.9.RELEASE
    

    
      org.springframework
      spring-webmvc
      5.2.9.RELEASE
    

    
      org.springframework
      spring-context
      5.2.9.RELEASE
    

    
      junit
      junit
      4.11
      test
    

    
      javax.servlet
      servlet-api
      2.5
    

    
      javax.servlet
      jsp-api
      2.0
    
123456789101112131415161718192021222324252627282930313233343536/<code>

springmvc.xml配置文件。因為要開啟註解掃描和用mvc,所以要加上mvc和context,添加如下圖。

SpringMVC概念和第一個程序

完整springmvc.xml。

<code>


     
    

     
    
        
        
    

     
    


12345678910111213141516171819202122232425/<code>

3、編寫index.jsp,在web.xml中添加攔截器。

index.jsp中在第一行添加,防止亂碼;在body標籤中添加a標籤。

<code>



    Title


    

入門程序

入門程序 1234567891011/<code>

在web.xml中,添加攔截器和加載配置文件

<code>  
    dispatcherServlet
    org.springframework.web.servlet.DispatcherServlet

     
    
      contextConfigLocation
      classpath:springmvc.xml
    

    1
  

   
  
    dispatcherServlet
    /
  
123456789101112131415161718/<code>

load-on-startup 元素標記容器是否應該在web應用程序啟動的時候就加載這個servlet,(實例化並調用其init()方法)。它的值必須是一個整數,表示servlet被加載的先後順序。如果該元素的值為負數或者沒有設置,則容器會當Servlet被請求時再加載。如果值為正整數或者0時,表示容器在應用啟動時就加載並初始化這個servlet,值越小,servlet的優先級越高,就越先被加載。值相同時,容器就會自己選擇順序來加載。

4、編寫controller類,導入tomcat服務器。

編寫類HelloController

<code>//控制器
@Controller
public class HelloController {

    @RequestMapping(path = "/hello")
    public String syaHello(){
        System.out.println("Hello SpringMVC!");
        return "success";
    }
}
12345678910/<code>

返回的是一個success界面。在WEB-INF包下邊建一個pages包,在包裡面建一個success.jsp,作為一個點擊後的結果,在springmvc.xml中添加了視圖解析器,為的是可以找到這個文件。

編寫success.jsp

<code>


    Title


    

入門成功

123456789/<code>

怎麼導入tomcat,詳細看這篇文章:https://blog.csdn.net/qq_42524288/article/details/103304138

5、運行測試

運行後界面:

SpringMVC概念和第一個程序


點擊入門程序後跳轉到hello界面:

SpringMVC概念和第一個程序

1.4、第一個SpringMVC程序執行流程

SpringMVC概念和第一個程序

1.5、RequestMapping註解

RequestMapping是一個用來處理請求地址映射的註解。
可以作用在類上和方法上。作用在類上,類中的方法都是以該路徑作為父類路徑。

RequestMapping註解有六個屬性

  • value

    :指定請求的url。它和path屬性的作用一樣。
  • method

    :指定請求的方式。例如GET、POST、PUT、DELETE等。
  • params

    :指定請求中必須包含某些參數值是,才讓該方法處理。
  • headers

    :用於指定限制請求消息頭的條件。

在index.jsp添加標籤:

<code>testRequestMapping
1/<code>

在測試類HelloController中添加::

<code>    //請求方式為post
    //@RequestMapping(value = "/testRequestMapping", method = {RequestMethod.POST})
    //請求參數必須包含username=lu,否則請求失敗
    //@RequestMapping(value = "/testRequestMapping",params = {"username=lu"})
    //請求頭必須包含Accept,否則請求失敗
    @RequestMapping(value = "/testRequestMapping",headers = {"Accept"})
    public String testRequestMapping(){
        System.out.println("測試RequestMapping...");
        return "success";
    }/<code>


分享到:


相關文章: