天天看點

SpringMVC之web.xml,了解必要配置項

現代Web應用程式廣泛使用MVC(model、view、controller)模式,那麼SpringMVC就恰好可以輕松幫我們搭建一個Web開發環境。而要搭好開發環境,熟知SpringMVC的三個XML(web.xml、application-context.xml、context-dispatcher.xml)就顯得必不可少。而我呢,雖然前前後後左左右右也大見過三次Web架構,但每次都糾結的要了老命,那麼痛定思痛,我決定下功夫把三個XML給搞得有條理些。

不過呢,作為一個軟體開發的全棧工程師(自黑不是自誇,身為創業團隊的負責人,打雜工的角色我就隻能勉為其難),對于三個XML的見解隻停留在認知的層面,整篇文章的叙述難免有不專業的地方,各位光臨的朋友盡管指摘,我将虛心接受。

本篇先來介紹web.xml,了解其中必要的配置項,為以後順利開發打下堅實基礎。

###①、xml内容

###②、重點内容介紹

####1、contextConfigLocation

指定web項目從項目的src路徑下加載application-context.xml,這是springMVC所必不可少的配置項,classpath字首指定xml的路徑在src下,這是我所喜愛的方式。

通過ContextLoaderListener自動裝配ApplicationContext的配置資訊,這裡可以參照Spring中的ContextLoaderListener使用。

####2、characterEncodingFilter

關于字元集過濾器,就無需多言,從xml配置上就可以看得出來,其作用就是為了防止亂碼,當然最開始在接觸struts2的時候,被中文亂碼困擾的心裡都有了挫敗感,但springMVC輕輕松松搞定了這個煩惱。

配置的方式基本固定如下:

當然了,如果你還有更多的興趣,可以參照

Spring字元集過濾器CharacterEncodingFilter

####3、sessionValidate

sessionValidate的過濾器對于我的項目來說就很關鍵了,其主要作用就是為了在頁面跳轉時檢查session有沒有失效(包含逾時、未登陸),然後呢,如果驗證失敗,可以跳轉到首頁登陸,登陸完成呢,又可以回到原始的頁面(如下圖所示,點選我的資源,系統發現我沒有登陸,那麼彈出登陸視窗,當我登陸完成後,顯示我的資源頁面)。

SpringMVC之web.xml,了解必要配置項

這個配置我稍候會用一整篇的文章來介紹,是以這裡隻做一個引導。

####4、DispatcherServlet

DispatcherServlet是springMVC自帶的一個開箱即用的排程員,這個排程員就和context-dispatcher.xml聯系起來了。

load-on-startup參數,按照《SpringMVC學習指南》所說的意思是:“如果它存在,則它将在應用程式啟動時狀态servlet并調用它的init方法,若不存在,則在該servlet的第一個請求時被加載”。這裡我就不多做深究了,說白了,就是我還深究不到什麼玩意。

url-pattern參數,這裡我使用了"/"。按照《Spring實戰》所說,url-pattern的比對模式通常有“*.html”、“/*”等等,而他們各有各的弊端,而“/”模式聲明它會作為預設的servlet并且會處理所有的請求,包括靜态資源(關于靜态資源,在稍候講context-dispatcher.xml會詳細說明)。

*.html 隻能響應html格式的請求。 /*模式表示沒有映射特定類型的響應,這會在處理圖檔或者樣式css時帶來不必要的麻煩。

####5、session-timeout

session-timeout就不做詳細說明了,很直白,多說無益。有興趣的話可以繼續了解Java Web開發Session逾時設定。

####6、404

通過該配置,當服務端出現404錯誤時就會跳轉到404.jsp頁面。

那麼首先,我們來看一下普通的404頁面寫法。

當出現404時,首先提示使用者頁面通路不到,然後手動跳轉到首頁或者3秒後跳轉到首頁。

SpringMVC之web.xml,了解必要配置項
web