SpringMvc介紹及入門程序

什麼是SpringMvc

Spring Mvc 與Struts2都屬於表現層框架。Spring 框架提供了構建 Web 應用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構,從而在使用Spring進行WEB開發時,可以選擇使用Spring的SpringMVC框架或集成其他MVC開發框架。

處理流程
這裏寫圖片描述

入門程序

  • 導包
    這裏寫圖片描述

  • 配置前端控制器
    SpringMvc所有的請求,都先通過前端控制器進行過濾,然後交給處理器,然後處理器做出響應給前端控制器。所以現在web.xml文件中配置前端控制器 過濾器

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>springmvc-01</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

  <!-- 前端控制器 -->
  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 加載springmvc.xml配置文件。
    默認找 /WEB-INF/[servlet的名稱]-servlet.xml -->
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springmvc.xml</param-value>
    </init-param>
  </servlet>

  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <!-- 
        1. /*  攔截所有   jsp  js png .css  真的全攔截   建議不使用
        2. *.action *.do 攔截以do action 結尾的請求     肯定能使用   ERP  
        3. /  攔截所有 (不包括jsp) (包含.js .png.css)  強烈建議使用     前臺 面向消費者  www.jd.com/search   /對靜態資源放行
     -->
    <url-pattern>*.action</url-pattern>
  </servlet-mapping>
</web-app>
  • 準備pojo類與前端jsp頁面
    前端頁面,進行一個簡單的列表展示,將商品數據封裝到集合中,進行遍歷。
    這裏寫圖片描述

pojo類

public class Item {
    // 商品id
    private int id;
    // 商品名稱
    private String name;
    // 商品價格
    private double price;
    // 商品創建時間
    private Date createtime;
    // 商品描述
    private String detail;

創建帶參數的構造器
set/get。。。
}
  • 創建springmvc.xml配置文件
    這是springmvc框架的核心,SpringMVC本身就是Spring的子項目,對Spring兼容性很好,不需要做很多配置。這裏只配置一個Controller掃描就可以了,讓Spring對頁面控制層Controller進行管理。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">

    <!-- 配置controller掃描包 -->
    <context:component-scan base-package="cn.itcast.springmvc.controller" />

</beans>
  • 測試
    創建一個ItemController普通的java類,不需要實現任何接口。
    需要在類上添加@Controller註解,把Controller交由Spring管理
    在方法上面添加@RequestMapping註解,裏面指定請求的url。其中“.action”可以加也可以不加。
@Controller
public class ItemController {

    // @RequestMapping:裏面放的是請求的url,和用戶請求的url進行匹配,會自動根據請求地址來掃描指定的包,類,和方法。
    // action可以寫也可以不寫
    @RequestMapping("/itemList.action")
    public ModelAndView queryItemList() {
        // 創建頁面需要顯示的商品數據
        List<Item> list = new ArrayList<>();
        list.add(new Item(1, "1華爲 榮耀8", 2399, new Date(), "質量好!1"));
        list.add(new Item(2, "2華爲 榮耀8", 2399, new Date(), "質量好!2"));
        list.add(new Item(3, "3華爲 榮耀8", 2399, new Date(), "質量好!3"));
        list.add(new Item(4, "4華爲 榮耀8", 2399, new Date(), "質量好!4"));
        list.add(new Item(5, "5華爲 榮耀8", 2399, new Date(), "質量好!5"));
        list.add(new Item(6, "6華爲 榮耀8", 2399, new Date(), "質量好!6"));

        // 創建ModelAndView,用來存放數據和視圖
        ModelAndView modelAndView = new ModelAndView();
        // 設置數據到模型中
        modelAndView.addObject("list", list);
        // 設置視圖jsp,需要設置視圖的物理地址
        modelAndView.setViewName("/WEB-INF/jsp/itemList.jsp");

        return modelAndView;
    }
}
  • 啓動項目
    通過訪問RequestMapping的請求地址。
    這裏寫圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章