SpringMVC 的第一個程式——HelloWorld
SpringMVC 的HelloWorld
1.什麼是SpringMVC?
Spring MVC屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裡面。Spring 框架提供了構建 Web 應用程式的全功能 MVC 模組。Spring MVC基於模型-檢視-控制器(Model-View-Controller,MVC)模式,它能夠幫助我們建立靈活和鬆耦合的Web程式。
2.展示圖片
1)請求處理的流程圖
2)專案目錄結構
3.基本步驟
1)響應請求-DispatcherServlet
DispatcherServlet是SpringMVC中最核心
2)處理器對映-HandlerMapping
當DispatcherServlet截獲到請求的時候,不知道要把請求發往哪一個控制器,這個時候就要用到處理器映射了。通過查詢處理器對映,DispatcherServlet就能由使用者的請求知道該用哪一個控制器。
3)控制器-Controller
控制器(Controller)即MVC中的C,控制器在後面的小黑屋完成資料的處理,然後返回一個ModelAndView物件給DispatcherServlet,Model將會在相應的View上顯示出來。
4)檢視解析器-view resolver
檢視解析器(view resolver)對上一步得到的ModelAndView物件進行解析,將其匹配到相應的檢視(例如一個jsp),利用相應的檢視顯示資料。
5)檢視顯示-view
檢視(view)即MVC中的V,其作用就是把控制器返回的相應的model進行顯示。到了這裡,請求的任務基本就已經完成了。
4.第一個HelloWorld程式
1)新建一個JavaWeb專案
2)配置web.xml檔案
在web.xml配置Spring MVC的核心類DispatcherServlet(以及ContextLoaderListener)。
<servlet>
<servlet-name>spring-web</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-web-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring-web</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
servlet-name即自定義你的servlet的名字;
servlet-class即指定你的servlet用的是哪個類;
ini-param中用於指定你的servlet的配置檔案,在這裡指定servlet的配置檔案路徑為/WEB-INF/spring-web-config.xml,不指定的話,則會預設指定為WEB-INF/[DispatcherServlet的Servlet名字]-servlet.xml配置檔案。
load-on-startup設為1,表示啟動容器時初始化該servlet。
url-pattern設為/,表示響應預設servlet對映。
3)配置應用上下文config.xml,即上文提到的servlet的配置檔案
在這裡配置viewresolver和處理器對映HandlerMapping。
<bean name="/helloWorld" class="com.SpringMVC.web.controller.HelloWorldController" />
<!-- ViewResolver -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/"/>
<property name="suffix" value=".jsp"/>
</bean>
處理器對映會將請求的URL和Bean名字對映,如URL為 “上下文/helloWorld”,則Spring配置檔案必須有一個名字為“/helloWorld”的Bean,上下文預設忽略。當用戶請求為/helloWorld的時候,DispatcherServlet就會把請求傳送到相應的HelloWorldController控制器去。
viewresolver中的class指定用的是spring框架中的viewresolver類,prefix和suffix屬性表明查詢檢視頁面的字首和字尾,比如/WEB-INF/helloWorld.jsp。
不過好像現在不流行用這種映射了,直接用註解好像更加方便快捷,不需要再這裡配置map了,新增如下配置,在控制器類中添加註解,程式就會自動檢測並且跳轉到相應的控制器中。
<!-- 自動掃描的包名 -->
<context:component-scan base-package="com.techbirds.controller"></context:component-scan>
<!-- 預設的註解對映的支援 -->
<mvc:annotation-driven />
4)編寫Controller控制器類HelloWorldController.java
程式需要實現Controller介面,並實現裡面的hadleRequest函式。
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class HelloWorldController implements Controller {
public ModelAndView handleRequest(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
return new ModelAndView("/helloWorld");
}
}
程式會根據ModerlAndView中的/helloWorld找到相應的helloWorld.jsp,然後返回給使用者。
如果你使用的是註解,則像下面這樣寫:
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class HelloWorldContorller {
//hello world例子
@RequestMapping(value="/helloWorld")
public String hello(){
System.out.println("spring mvc hello world!");
return "helloWorld";
}
}
使用註解之後,不需要實現Controller介面,只需要新增@RequestMapping(value=”/helloWorld”)註解,程式就會自動匹配了。
5)新增前端檢視helloWorld.jsp
<% String path = request.getContextPath();%>
<% String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>Hello World!</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
-----------------Hello World! ----------------------<br>
</body>
</html>
6)請求
這個時候要先把專案新增到Tomcat中,然後執行Tomcat(Tomcat 伺服器是一個免費的開放原始碼的Web 應用伺服器,屬於輕量級應用伺服器,可利用它響應HTML頁面的訪問請求,你的Web程式要執行在這上面來截獲使用者請求),在瀏覽器輸入 localhost:8080/專案名/helloWorld,即可得到結果。
相關推薦
SpringMVC 的第一個程式——HelloWorld
SpringMVC 的HelloWorld 1.什麼是SpringMVC? Spring MVC屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裡面。Spring 框架提供了構建 Web 應用程式的全功能 MVC
Java (二)第一個程式HelloWorld
我們都知道java是跨平臺的,所說的跨平臺就是指可以在不同得平臺環境上執行,win7,win8,win10,xp,mark等,在不同得平臺上執行就要安裝不同的執行工具JRE,JDK是開發工具它裡面包含了JRE。 1.安裝好開發工具JDK 2.在
《Linux C程式設計一站式學習》——第一個程式HelloWorld.c
1、首先確保linux系統下安裝了gcc編譯器,使用vim編寫一個簡單的C程式: 2、儲存退出,用gcc命令編譯,預設會生成a.out可執行檔案,如果要生成指定名稱的檔案,需要加入-o appname 引數: 3、執行程式; 4、對於程式中出現的一些警告,gcc編
Java的第一個程式HelloWorld
2018年11月10日 12:01:09 LuckyShawn 閱讀數:4 標籤: Java
Servlet實現我的第一個程式HelloWorld!
用myeclipse建立web專案,編寫servlet。部署後,啟動Tomcat伺服器。 import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.ht
wxWidgets教程01:第一個程式 HelloWorld
本節將會手動編寫建立一個最簡單的wxWidgets程式,該程式不做任何事情,只是一個窗體。寫的比較細,包括部分原始碼及執行原理,希望可以徹底理解! 1. Frame和Dialog的區別 一般情況下,有選單工具欄的是Frame,沒有的是Dialog。當然這是一般情況,因為
Java實現我的第一個程式HelloWorld!
public class HelloWorld { public static void main(String[] args){//程式的入口 System.out.print("Hello
用匯編寫的第一個程式---helloworld.asm
DATA SEGMENT ;資料段定義開始 NUMBER DB 'hello,world!',0AH,0DH ;被顯示得字串 DATA ENDS
【 D3.js 入門系列 --- 1 】 第一個程式HelloWorld
下面開始用D3.js處理第一個簡單問題,先看下面的程式碼: <html> <head> <meta charset="utf-8"&g
Struts2入門第一個程式HelloWorld
俗話說萬事開頭難,只要入了門什麼都好說!今天我就來帶看我部落格的朋友們入struts2的門 一、首先我們要下載struts2(去官網www.apache.org找struts2的下載)如圖: 選擇下載即可。這樣我們就完成了第一步,現在我們有了struts2的軟體了,先解壓來
android的第一個程式helloworld (有圖有真相)
1、建立工程 2、都不需要編寫程式碼 非常簡單 AndroidhelloActivity.java package com.mrjing.org; import android.app.Activity; import android.os.Bundle; pub
學習筆記(第一個程式HelloWorld的解釋)
關鍵字,主函式的概念 class Demo { public static void main(String[] args) { System.out.println("hellow java"); } } 1、在我們這個類中,Demo稱之為類名,cl
安卓學習筆記 -- (安裝環境) Android Studio安裝配置、環境搭建詳細步驟及基本使用 Android Studio和SDK官方開發工具下載 Android Studio教程從入門到精通 Android開發-之第一個程式:HelloWorld!
1、下載Android Studio安裝配置、環境搭建詳細步驟及基本使用 https://www.cnblogs.com/yanglh6-jyx/p/Android_AS_Configuration.html https://blog.csdn.net/k491022087/ar
Java環境變數設定後,編寫第一個程式報錯:找不到或無法載入主類 D:\java\HelloWorld
Java 環境變數配置完後,按照網上說的辦法測試都成功了,但在寫第一個HelloWorld程式時,編譯通過了,執行時報“找不到或無法載入主類 D:\java\HelloWorld”錯誤。 網上解決辦法 程式設計時習慣地認為一個執行命令後面一般跟的是一
SpringMVC -- 第一個簡單的程序
add control mar con print tex i++ 控制 str 學習springMVC,我們來記錄下第一個HelloWord的程序 首先。我們組織須要的jar包 commons-logging-1.1.3.jar spring-a
我的Java第一個程式
一個Java程式可以認為是一系列物件的集合,而這些物件通過呼叫彼此的方法來協同工作。下面簡要介紹下類、物件、方法和例項變數的概念。 物件:物件是類的一個例項,有狀態和行為。例如,一條狗是一個物件,它的狀態有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。 類:類是一個模板,它描述一類物件的
python的第一個程式-拷貝檔案遇到的問題
開始學習python了(windows環境). 第一個程式就是跟著文件敲一個備份的程式碼,文件適壓縮成zip檔案,但是系統沒有安裝zip包 #------------------------------上程式碼-----------請注意windows是反斜槓--------------
Java第一個程式hello world
import java.util.Scanner; public class hello { public static void main(String[] args) { System.out.println("hello"); Scanner in
JAVA學習之路第2篇-JAVA第一個程式hello world
java實現hello word 第1篇中我們瞭解了什麼是機器語言以及關於儲存單位的一些知識點,知道了能夠用編寫機器語言的二進位制值程式設計,但是二進位制面向機器挺友好機器能夠快速的識別和執行,但是面向編寫它的人就不太友好了。能否有一種語言對人比較友好而且機器還能識別執行的呢?我告訴你是
Golang的第一個程式-Hello, World !
安裝Golang: 1. 下載安裝包 https://golang.google.cn/dl/ 我這裡使用壓縮包,下載後解壓到D盤(自定義)。 2. 新增環境變數:把解壓後的bin目錄新增到環境變數中 第一個程式: 1. 新建一個test.go檔案,編寫如下內容: