springMvc入門--初識springMvc

来源:http://www.cnblogs.com/liyasong/archive/2017/02/14/springMvc_fst.html
-Advertisement-
Play Games

springMvc是什麼 springmvc是表現層的框架,是一個spring的表現層組件。是整個spring框架的一部分,但是也可以不使用springmvc。跟struts2框架功能類似。其中的mvc指的是,表現層的Model、View、controller。 springMvc可以做什麼 spr ...


         springMvc是什麼

         springmvc是表現層的框架,是一個spring的表現層組件。是整個spring框架的一部分,但是也可以不使用springmvc。跟struts2框架功能類似。其中的mvc指的是,表現層的Model、View、controller。

         springMvc可以做什麼

         springmvc可以接收用戶的數據以及將數據顯示給用戶。

         springMvc的工作原理

         

         springMvc的入門程式

         下麵,我們一起來創建一個基於springmvc框架的小demo。

         第一步:創建一個dynamic web project 項目,取名為springmvc。

         第二步:將我們的程式用到的jar包導入webContent目錄下的WEB-INF目錄下的lib文件夾中,具體如下圖所示:

         

         第三步:創建springmvc.xml文件

         這是springmvc的核心配置文件,可以在該文件中配置一些springmvc的設置,如開啟註解、註解驅動、試圖解析器等。如果沒有配置該文件,框架預設會去找/WEB-INF/springMvc0917-servlet.xml文件,如果依然找不到,那麼就會拋出異常。

         該文件代碼如下:

<?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:dubbo="http://code.alibabatech.com/schema/dubbo" 
    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://code.alibabatech.com/schema/dubbo 
        http://code.alibabatech.com/schema/dubbo/dubbo.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-4.0.xsd">

    <!-- 開啟註解掃描, 這樣@Controller, @Service等註解才會生效 -->
    <context:component-scan base-package="cn.itcast.controller"></context:component-scan>
</beans>

 

 

 

         第四步:配置前端控制器,在web.xml中添加DispatcherServlet的配置。將springmvc框架通過web.xml文件,配置到我們的系統中。並且將springMvc.xml中的配置註入到我們的框架中去。

         web.xml中的代碼如下:

    
 1 <!-- 前端控制器 -->
 2 <servlet>
 3         <servlet-name>springmvc</servlet-name>
 4         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 5         <init-param>
 6                 <param-name>contextConfigLocation</param-name>
 7                 <param-value>classpath:springmvc.xml</param-value>
 8         </init-param>
 9 </servlet>
10 <servlet-mapping>
11         <servlet-name>springmvc</servlet-name>
12       <!-- 
13       /*   在springMvc中不可以使用, 因為/* 所有的路徑都會進入到DispatcherServlet中但是不放行
14       /     所有的url路徑都會進入DispatcherServlet, 放行.jsp的文件, 其他文件都不放行包括.js.css.png.jpg等
15       *.action   url路徑只有以.action結尾的才可以進入DispatcherServlet, 並放行
16        -->
17         <url-pattern>*.action</url-pattern>
18 </servlet-mapping>
View Code

 

         第五步:創建ItemsController
         ItemController是一個普通的java類,不需要實現任何介面,只需要在類上添加@Controller註解即可。@RequestMapping註解指定請求的url,其中“.action”可以加也可以不加。在itmesController中@RequestMapping("/list")指的是,我們在訪問ModelAndView這個方法的時候,在url路徑上需要寫的地址是:主機名:埠號名/工程名稱/list.action。modelAndView.addObject("itemList", itemList);則是將一個itemList對象存入request域中,存的名稱則是前面第一參數中的itemList。modelAndView.setViewName("/WEB-INF/jsp/itemList.jsp");設置的是返回到哪個頁面。

 

  
 1 package cn.itcast.controller;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import org.springframework.stereotype.Controller;
 7 import org.springframework.web.bind.annotation.RequestMapping;
 8 import org.springframework.web.servlet.ModelAndView;
 9 
10 import cn.itcast.pojo.Items;
11 
12 @Controller
13 public class ItemsController {
14 
15     //表示url到請求方法的映射, 其實就是通過瀏覽器中輸入一個url, 這個url可以對應訪問到一個controller中的方法
16     @RequestMapping("/list")
17     public ModelAndView list() throws Exception{
18         List<Items> itemList = new ArrayList<>();
19         
20         //商品列表
21         Items items_1 = new Items();
22         items_1.setName("聯想筆記本_3");
23         items_1.setPrice(6000f);
24         items_1.setDetail("ThinkPad T430 聯想筆記本電腦!");
25         
26         Items items_2 = new Items();
27         items_2.setName("蘋果手機");
28         items_2.setPrice(5000f);
29         items_2.setDetail("iphone6蘋果手機!");
30         
31         itemList.add(items_1);
32         itemList.add(items_2);
33         
34         //模型和視圖
35         //模型中可以放入返回給頁面的數據,
36         //視圖中放了頁面的路徑
37         ModelAndView modelAndView = new ModelAndView();
38         //將返回給頁面的數據放入其中
39         modelAndView.addObject("itemList", itemList);
40         //指定頁面的邏輯路徑
41         //邏輯路徑: 就是頁面地址的字元串
42         //物理路徑: 物理路徑就是頁面的對象
43         modelAndView.setViewName("/WEB-INF/jsp/itemList.jsp");
44         return modelAndView;
45     }
46 }
View Code
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • (慕課網視頻學習--C++離港篇的學習memo)1: 函數的參數預設值,只能在最右邊。 如果有三個參數,只有中間一個有預設值,這是錯誤的。 函數聲明的時候寫預設值,定義的時候不要寫。(有些編譯器會出錯。)2:內聯函數:編譯時,將函數體實參和代碼替換掉調用語句。 關聯字 inline 內聯函數是建議性 ...
  • 1.普通成員普通成員都是屬於對象的用對象調用 2.靜態成員靜態成員是屬於類的用類名調用 stactic 靜態關鍵字 靜態方法裡面不能包含普通成員普通方法裡面可以包含靜態成員 抽象類: 1.關鍵字:abstract2.抽象類可以包含抽象方法和普通方法3.abstract關鍵字可以定義方法為抽象方法,抽 ...
  • Hibernate工作原理及為什麼要用? 原理:1.通過Configuration().configure();讀取並解析hibernate.cfg.xml配置文件2.由hibernate.cfg.xml中的<mapping resource="com/xx/User.hbm.xml"/>讀取並解析 ...
  • #include #include using namespace std; void main() { string s="Hello Lucy!"; //s.replace(5,1,"Lily"); //"Lucy" -> "Lily" int indexStart=s.find("Lucy")... ...
  • 在java中可有兩種方式實現多線程,一種是繼承Thread類,一種是實現Runnable介面;Thread類是在java.lang包中定義的。一個類只要繼承了Thread類同時覆寫了本類中的run()方法就可以實現多線程操作了,但是一個類只能繼承一個父類,這是此方法的局限。 下麵看例子: 但是,此時 ...
  • 顯然只需求LCP(i,j)就可以了。 將s反轉,然後插入尾碼自動機。由於尾碼自動機的link指針構成了一棵尾碼樹,而字元串又反轉過,所以兩個結點的LCP就是LCA。 樹形DP,求出以每個結點為LCA的個數就可以了。 代碼: 1 #include<iostream> 2 #include<cstdio ...
  • 在之前的章節中,我們都是假設程式中只有一條執行流,程式從main方法的第一條語句逐條執行直到結束。從本節開始,我們討論併發,在程式中創建線程來啟動多條執行流,併發和線程是一個複雜的話題,本節,我們先來討論Java中線程的一些基本概念。 創建線程 線程表示一條單獨的執行流,它有自己的程式執行計數器,有 ...
  • 我們知道,mapper.xml是我們配置操作資料庫的sql語句的地方。其中每個sql語句對應著一個方法,每個方法都有自己的輸入輸出參數類型。那麼這些類型都是怎麼配置的呢?今天我們來一起學習下。 輸入映射 首先是輸入類型,輸入類型分為以下幾種:1.基本類型。2.pojo對象類型。3.pojo包裝對象。 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...