1. 程式人生 > >SpringMVC知識點學習筆記

SpringMVC知識點學習筆記

1、概述:

① SpringMVC是一個模型-檢視-控制器(MVC)的Web框架建立在中央前端控 制器ServletDispatcherServlet),他負責傳送每個請求到合適的處理程式, 使用檢視來最終返回響應結果的概述。SpringMVC是Spring產品組合的一部 分,他享有Spring loC容器緊密結合Spring鬆耦合等特點,因此它有Spring 的所有優點

② Spring web MVC框架提供了MVC(模型-檢視-控制器)架構和用於開發靈活 和鬆散耦合的web應用程式元件,MVC模型導致應用程式的不同方面(輸入 邏輯,業務邏輯和UI邏輯)分離,同時提供這些元素之間的鬆散耦合,模型 (Model)封裝了應用程式資料,通常他們將由POJO類組成,檢視(View) 負責渲染模型資料,一般來說他生成客戶端瀏覽器可以解釋HTML輸出。控制 器(Controller)負責處理使用者請求並構建適當的模型,並將其傳遞給檢視進 行渲染

在這裡插入圖片描述

2、SpringWeb中自定義xxx-servlet.xml檔案配置:

在這裡插入圖片描述

3、Springweb中web.xml檔案配置:

在這裡插入圖片描述

4、DispatcherServlet元件類:

Spring Web模型-檢視-控制器(MVC)框架是圍繞DispatcherServlet設計的,它處理所有的HTTP請求和響應,Spring Web MVC DispatcherServlet的請求處理工作流如下圖所示:

在這裡插入圖片描述

DispatcherServlet在傳入HTTP請求的事件順序:
在接收到HTTP請求後,DispatcherServlet(中央控制器)會查詢HandlerMapping以呼叫相應的Controller,Controller接收請求,並根據使用的GET或POST方法呼叫相應的服務方法,服務方法將基於定義的業務邏輯設定模型資料,並將檢視名稱返回給DispatcherServlet,DispatcherServlet將從ViewResolver(檢視解析器)獲取請求的定義檢視,當檢視完成,DispatcherServlet將模型資料傳遞到最終的檢視,並在瀏覽器上呈現

                       @Controller:宣告該類是控制器類
                       @RequestMapping:請求對映

注意:
WEB-INF目錄下的資源只能被服務端訪問,不能被客服端直接訪問,所以它是安全的。

後臺接收前端傳過來的值:
有三種超連結、表單和Ajax。
1、如果是超連結傳值,我們後臺則使用@PathVariable註解來接收傳過來的值.
2、如果是表單傳值,我們後臺則使用@RequestParam註解來接收傳過來的值.

後臺程式返回值到頁面常見使用的有(ModelAndView)和(ModelMap)。

springMVC訪問靜態資源需要加上配置標籤

<mvc:annotaion-driven></mvc:annotation-driven>
<mvc:default-servlet-handler>

@ResponseBody註解實現返回物件,該註解寫在方法體上面
要想使用@ResponseBody註解需要匯入 3個包,分別是:
jackson-core
jackson-annotations
jackson-databind

5、SpringMVC國際化

第一步:首先要匯入jar包,jstl.jar和stands.jar
第二步:配置好對應的資原始檔(.properties)

配置檔案的命名規範:
基名_語言_地區
例如:i18n_zh_CN //中文
	i18n_en_US//美國英語

第三步:在SpringMVC的配置檔案中配置資原始檔
(ResourceBundleMessageSource)
第四步:使用國際化,需要在jsp檔案中引入SpringMVC的標籤庫。

注意:(.properties)
1、資原始檔裡面都是鍵值對的形式key=value
2、配置SpringMVC檔案時,國際化資原始檔的bean必須要寫id屬性,且值必須為messageSource

Ajax非同步重新整理請求技術
1、語法:

	$.ajax({
			type:"請求方式",
			url:"請求路徑",
			data:"請求引數",
			狀態
	})

注意
我們使用jquery裡面的ajax方法實現,所以需要匯入jquery的檔案,然後在頁面中引入該檔案。

6、Spring MVC整合日誌元件

1、概述:
日誌元件就是幫助我們監控,記錄程式執行狀態的程式,日誌元件大大的提高了我 們程式的可維護性

2、SpringMVC整合log4j的步驟:
第一步:導包(log4j-1.2.17.jar)

第二步:編寫配置檔案:

   #Root logger option
    log4j.rootLogger=DEBUG, stdout, file

 #Redirect log messages to console
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %c:%L - %n

#Redirect log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender

#outputs to Tomcat home
log4j.appender.file.File=C:/Users/Administrator/Desktop/logs/myapp.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %c:%L - %n

第三步:建立日誌物件

private static final Logger LOG=Logger.getLogger(類名.class)

3、Log4J配置檔案的基本格式如下:
① #配置根Logger
② #配置日誌資訊輸出目的地Appender
③ #配置日誌資訊的格式(佈局)
日誌配置檔案:根+資訊輸出地+格式

其中[level]是日誌輸出級別,共有5級:
FATAL 0
ERROR 3
WARN 4
INFO 6(一般定義等級)
DEBUG 7
根:DEBUG(DEBUG除錯輸出)、stdout(標準輸出)、file(檔案輸出)
資訊輸出地:

org.apache.log4j.ConsoleAppender(控制檯),
org.apache.log4j.FileAppender(檔案),
org.apache.log4j.DailyRollingFileAppender(每天產生一個日誌檔案),
org.apache.log4j.RollingFileAppender(檔案大小到達指定尺寸的時候產生一個新的檔案),
org.apache.log4j.WriterAppender(將日誌資訊以流格式傳送到任意指定的地方)

日誌輸出格式:

org.apache.log4j.HTMLLayout(以HTML表格形式佈局),
org.apache.log4j.PatternLayout(可以靈活地指定佈局模式),
org.apache.log4j.SimpleLayout(包含日誌資訊的級別和資訊字串),
org.apache.log4j.TTCCLayout(包含日誌產生的時間、執行緒、類別等等資訊)

列印引數: Log4J採用類似C語言中的printf函式的列印格式格式化日誌資訊,如下:
  %m 輸出程式碼中指定的訊息
  %p 輸出優先順序,即DEBUG,INFO,WARN,ERROR,FATAL
  %r 輸出自應用啟動到輸出該log資訊耗費的毫秒數
  %c 輸出所屬的類目,通常就是所在類的全名
  %t 輸出產生該日誌事件的執行緒名
  %n 輸出一個回車換行符,Windows平臺為“/r/n”,Unix平臺為“/n”
  %d 輸出日誌時間點的日期或時間,預設格式為ISO8601,也可以在其後 指定格式,比如:%d{yyy MMM dd HH:mm:ss ,SSS},輸出類似:2002 年10月18日 22 : 10 : 28 , 921
  %l 輸出日誌事件的發生位置,包括類目名、發生的執行緒,以及在程式碼中 的行數。舉例:Testlog4.main(TestLog4.java: 10 )

7、常見報錯處理的方法

1、報500錯為什麼會報錯?怎麼解決?
程式的程式碼邏輯或配置檔案邏輯不對,這時看控制檯顯示的錯誤資訊去定位錯誤並解決。(控制檯那麼多的報錯資訊怎麼看?找自己看的懂的,熟悉的,有印象的然後再找caused by顯示的錯誤資訊,caused by顯示的錯誤資訊往往就是我們產生錯誤的根本)
2、報404錯為什麼會報錯?怎麼解決?
路徑錯誤可能是因為瀏覽器裡的路徑不正確,也可能是訪問的資原始檔路徑不正確,或者路徑中的單詞錯誤等。快取的話就多清理幾次tomcat和project,最好把tomcat裡的快取檔案給刪除(\work\catalina)
在這裡插入圖片描述