java mvc 菜鳥_【java框架】SpringMVC(1)--SpringMVC入門

1.

SpringMVC框架認識

Spring MVC是一個基于MVC模式的Web框架,SpringMVC作為Spring中的一個模塊,它與Spring能夠無縫集成,主要用于解決企業Web開發中常見的問題:如參數接收、文件上傳、表單驗證、國際化等等。

2.

SpringMVC HelloWorld模式使用

2.1.

導入Spring與SpringMVC的依賴jar包

配置Spring的環境

準備Spring的環境——SpringMVC以Spring為核心,而Spring最核心的模塊是DI/IOC容器,也就是SpringMVC的核心類和控制器要交給Spring管理。所以使用SpringMVC必須先保證Spring容器初始化,也就是讓項目擁有Spring的運行環境。

基于Spring的初始化環境需要導入Spring的核心包與beans包(使用spring-framework-4.1.2.RELEASE),jar包目錄位置在spring-framework-4.1.2.RELEASElibs文件中:

需要導入:

com.springsource.org.apache.commons.logging-1.1.1.jar

spring-beans-4.1.2.RELEASE.jar

spring-context-4.1.2.RELEASE.jar

spring-core-4.1.2.RELEASE.jar

spring-expression-4.1.2.RELEASE.jar

a4aea900c268014ed20cf7132b675e82.png

配置applicationContext.xml,具體配置參照如下:

http://www.springframework.org/schema/beans/spring-beans.xsd">

創建Junit4測試類查看是否獲取到配置的Bean對象:

importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;public classSpringEnvTest {

@org.junit.Testpublic voidGetBeanTest(){//讀取資源文件applicationContext.xml//拿到ApplicationContext核心對象

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");

System.out.println("-------------實例化分割線--------------------");//獲取Bean同樣具有三種方式:這里不再一一列出

Object myDate = applicationContext.getBean("myDate");

System.out.println(myDate);

}

}

②配置SpringMVC的環境

SpringMVC作為Spring中的一個模塊存在,無需單獨下載,Spring的lib文件中就包含了SpringMVC的jar包。

jar包目錄位置也是在spring-framework-4.1.2.RELEASElibs中,需要導入的jar包:

spring-web-4.1.2.RELEASE.jar

spring-webmvc-4.1.2.RELEASE.jar

26c249f136378522c07d4320de6cbb8b.png

2.2.在web.xml中配置核心控制器DispatcherServlet

在SpringMvc框架中使用的是DispatcherServlet作為核心控制器,DispatcherServlet核心控制器會攔截匹配的請求,把攔截下來的請求,依據相應的規則分發到目標Controller來處理。

所以,我們要在web.xml中配置SpringMVC的核心控制器DispatcherServlet,具體配置如下:

web.xml配置:

dispatcherServlet

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:applicationContext-mvc.xml

1

dispatcherServlet

/

2.2.配置SpringMVC的配置文件

SpringMVC的配置文件和Spring的配置差不多,在resources目錄中新建一個applicationContext-mvc.xml文件即可,需要配置映射Controller類的映射路徑及class:

http://www.springframework.org/schema/beans/spring-beans.xsd">

2.3.準備Controller控制器并配置

這里需要創建一個HelloController類來實現Controller接口,實現handleRequest()方法:

importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;public class HelloController implementsController {/***

* 控制層業務處理:①參數的接收;②調用Service層的業務邏輯;③返回一個視圖

*@paramequest

*@paramresponse

*@return*@throwsException*/@Overridepublic ModelAndView handleRequest(HttpServletRequest equest, HttpServletResponse response) throwsException {

System.out.println("進入Springmvc Controller視圖模型控制器......");

String view= "/WEB-INF/views/hello.jsp"; //視圖

String modelName = "msg"; //模型名字

Object modelObject = "helloObj"; //模型對象

ModelAndView modelAndView = newModelAndView(view, modelName, modelObject);returnmodelAndView;

}

}

2.4.根據applicationContext-mvc.xml訪問映射路徑

運行Tomcat并啟動web項目,訪問配置的url路徑,即可訪問到對應的/hello映射的/WEB-INF/views/hello.jsp文件。

49900f7a3a037c1a3c3e58de5a9ab975.png

3.?? SpringMVC入門Demo的執行流程分析

從上面的使用配置過程我們可以分析得出SpringMVC的執行流程:

首先,我們通過瀏覽器客戶端發起請求(localhost:8080/hello),這個請求會被web.xml中配置的核心控制器DispatcherServlet所攔截,攔截到的請求地址會交由配置在classpath下的applicationContext-mvc.xml SpringMVC的配置文件中去找到對應的bean的請求url,并且找到對應的Bean class,通過Bean class配置再找到對應的Controller,通過Controller中的handleRequest()方法返回的對應的ModelAndView視圖,返回對應的hello.jsp頁面,通過頁面hello.jsp去呈現頁面上的內容。

4.?? 靜態資源文件訪問放行

通過上面的配置,我們如果在Webapp路徑下存在靜態資源(.html與css/js)文件時,我們通過瀏覽器直接去訪問是訪問不了的,會出現404 not find問題。

8fc4de999237baedeff4fb00781a4717.png

原因就在于我們在web.xml中默認配置了攔截所有的請求,我們需要在SpringMVC的配置文件applicationContext-mvc.xml中去開啟對靜態資源的訪問:

applicationContext-mvc.xml具體配置如下:

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc.xsd">

配置之后,通過瀏覽器頁面就能訪問到webapp路徑下的靜態資源文件了。

8c7e5a53fa4a7a8aa86b98ff1b5d1786.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/445776.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445776.shtml
英文地址,請注明出處:http://en.pswp.cn/news/445776.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php設置cookie 域名,php如何設置cookie對整個域名有效?

php設置cookie對整個域名有效的方法:由setcookie函數讓cookie對整個域名有效,代碼為【setcookie("cookie_test", this is cookie test, time()3600,"/",“】。php設置cookie對整個域名有效的方法:默認情況下的cookie僅對…

php 配置 gd2,配置PHP對gd庫的支持

搭建zabbix的時候遇到有對PHP的需求檢測,發現沒有對gd的支持,記錄下。。。GD庫是php處理圖形的擴展庫,它提供了一系列用來處理圖片的API,使用GD庫可以處理圖片,或者生成圖片,也可以給圖片加水印。1、安裝zl…

我的世界一個程序導致JAVA,Java地位無可動搖的12個原因

如今,面對曾經在程序員中被各種新技術掩蓋直至堙滅的技術值得懷念。猶如COBOL這當年被老程序員們尊為神器的語言如今也基本沒有價值。而Java作為現代程序員的中堅力量在這點上或許會成為下一個COBOL。有關JAVA的技術賣出多少本書已經是一個很久遠的記憶了。現處中年…

php 自定義格式化,PHP自定義函數格式化json數據示例

本文實例講述了PHP自定義函數格式化json數據的方法。分享給大家供大家參考,具體如下:/*** Formats a JSON string for pretty printing** param string $json The JSON to make pretty* param bool $html Insert nonbreaking spaces and s for tabs and …

php 單選框選中事件,html中的checkbox和radio事件選擇用法詳解

radio注冊了click事件以后,神奇的是用鍵盤上的上下左右選擇時,居然會觸發鼠標事件,滾輪也會觸發,這種神奇的事情在mousedown下面是不會發生的。(webkit不能使用上下左右選擇)checkbox注冊click事件后,奇跡再次上演&…

java水文模型,分布式水文模型.ppt

分布式水文模型ppt課件第九章分布式水文模擬技術 第九章 分布式水文模擬技術 9.1 分布式水文模型的發展 9.1.1 分布式水文模型的研究進展 9.1.1.2 幾點討論 9.1.2 分布式水文模型的發展 9.2 基于DEM的流域分布式水文模型 9.2.1 流域水文過程及其數學模擬 流域水循環過程示意圖 …

php 實現的n,php 實現數據N等分。

本例給出實現3等分的代碼和運行結果。在保證&#xff0c;每一個部分都不會宕機的情況下&#xff0c;這種算法是最簡單的。否則就用一致性哈希算法。公式原理&#xff1a;求余算法: hash(object)%Nfor($i 1;$i<100;$i){$result crc32($i) % 3;echo "i:".$i . &qu…

ccf json解析 java,【求助】e4a json解析 求助大佬幫忙老看下怎么取?

[PHP] 純文本查看 復制代碼[{"title":"\u4e1c\u98ce\u7834","url":"\/tv\/QrRobH7kTGTqNX.html","star":"\u4e3b\u6f14\uff1a\u5f20\u7b11\u541b \u5f20\u94ce \u725b\u4e3d\u71d5 \u5218\u5c0f\u950b \u68a6\u6960&qu…

java 場景處理,將黃瓜場景示例作為一個場景處理

我遇到了Cucumber的問題 - 現在我正在進行移動自動化&#xff0c;并且我有使用場景輪廓的功能 - 我在場景中有一些變量&#xff1a;場景大綱&#xff1a;菜單項Given the user is on the hamburger menuAnd the language is Then menu item is Examples:| menu item | language…

mysql 5.5.23 winx64,win10下mysql 5.7.23 winx64安裝配置方法圖文教程

本文記錄了mysql 5.7.23 winx64安裝教程&#xff0c;具體內容如下Step1選擇手動下載版本解壓到自己指定的路徑上圖中的my.ini及data文件夾在壓縮包里是沒有的&#xff0c;后面需要自己添加my.ini如下&#xff0c;直接copy~然后在目錄下創建一個data文件夾Step2設置環境變量電腦…

php if !=,php If else 用法

PHP的&#xff0c;如果聲明是非常類似于其他編程語言使用if語句&#xff0c;但對于那些誰不熟悉它&#xff0c;圖片如下&#xff1a;想想你的決定作出之前&#xff0c;你去睡覺。如果你有這樣做的第二天&#xff0c;說去上班&#xff0c;上學&#xff0c;或任用&#xff0c;那么…

matlab生成均勻部分散點圖,應用halton序列生成均勻散點圖

前言一門課的作業要用RBF-DQ方法計算流場。簡單來講就是要在無網格的條件下用高精度格式實現流場的仿真計算。生成散點圖時&#xff0c;用蒙特卡洛的方法得到的散點圖分布不是很均勻&#xff0c;于是想到一種叫做halton的序列。本篇將運用halton序列生成均勻的散點圖。halton序…

php分頁頁數過多隱藏,織夢DEDE中內容頁分頁數目太多時隱藏方法

在dede程序的文章或圖集模型&#xff0c;內容頁分頁過多&#xff0c;假如分頁80頁&#xff0c;那么dede默認的內容分頁標簽{dede:pagebreak/}會把所有的分頁都顯示出來&#xff0c;這樣會撐破網頁模板&#xff0c;即使使用css控制可以解決這個撐破模板問題&#xff0c;用overfl…

nginx php 跨域訪問權限,nginx + php 實現跨域請求填坑筆記

最近自己構建了一個輕量級的 MVC 框架&#xff0c;現在將該MVC用于生產環境的項目中&#xff0c;目前因為項目中有跨域的請求&#xff0c;所以需要做一些CORS授權&#xff0c;但在實際使用出現了一些問題&#xff0c;目前已解決&#xff0c;故做下記錄。服務器&#xff1a;cent…

python 內存溢出能捕獲嗎,Python——寫自己的異常(形成強大的捕捉和處理能力)...

"""1、編寫自己的異常時&#xff0c;通常是繼承Exception2、如果繼承的是BaseException&#xff0c;那么就不會被通用的except Exception捕捉到3、自己定義的異常Python不會自動觸發&#xff0c;需要自己觸發&#xff0c;用raise進行觸發4、python只會自動觸發它…

解決動態規劃問題4步曲

概述 &#xff08;確定狀態&#xff09;確定問題狀態 提煉最后一步子問題轉化 &#xff08;求得方程&#xff09;轉移方程&#xff0c;把問題方程化&#xff08;設初置界&#xff09;按照實際邏輯設置初始條件和邊界情況&#xff08;確序再解&#xff09;確定計算順序并求解 …

php ajax隊列,AJAX請求隊列實現

這篇文章主要為大家詳細介紹了AJAX請求隊列的實現代碼,具有一定的參考價值&#xff0c;感興趣的小伙伴們可以參考一下AJAX在使用的過程中會遇到一個問題&#xff0c;當用戶短時間內執行了多個異步請求的時候&#xff0c;如果前一個請求沒完成&#xff0c;將會被取消執行最新的一…

php Spreadsheet 導出,PhpSpreadsheet 導出Excel

/*** Excel 助手* sudo composer require phpoffice/phpspreadsheet*/namespace CommonUtil;use PhpOfficePhpSpreadsheetSpreadsheet;use PhpOfficePhpSpreadsheetWriterXlsx;use PhpOfficePhpSpreadsheetStyleAlignment;use PhpOfficePhpSpreadsheetStyleColor;class ExcelUt…

php 不同時區時間轉換,在PHP中將DateTime字符串轉換為不同的時區

好吧,我有以下代碼$from "Asia/Manila";$to "UTC";$org_time new DateTime("2012-05-15 10:50:00");$org_time $org_time->format("Y-m-d H:i:s");$conv_time NULL;$userTimezone new DateTimeZone($from);$gmtTimezone new…

php iis ajax 無效,IIS7中Ajax.AjaxMethod無效的原因及解決方法

最近做用Ajax.AjaxMethod方法的時候&#xff0c;在asp.net的服務器下一切正常&#xff0c;用iis的時候&#xff0c;js中總是cs類找不到&#xff0c;我就郁悶了&#xff0c;折騰了大半天&#xff0c;終于找到錯誤原因了。因為我發布網站用的是iis7&#xff0c;所以在web.config位…