SpringMVC的解釋與搭建Maven私有代理伺服器
SpringMVC靜態資源處理
通常會配置SpringMVC攔截所有請求
即將DisptcherServlet的url-pattern設定為 /
此時會導致SpringMVC同時攔截.css .jpg .js等靜態資源
而我們並不會為這些靜態資源新增相應的@RequestMapping
就會導致靜態資源404錯誤
解決方法:
方法一:讓SpringMVC攔截的範圍縮小,
即設定url-pattern為*.do 或*.action或者*.spr
方法二:
在springmvc-servlet.xml中
<!--啟用預設Servlet
<mvc:default-servlet-handler/>
方法三:
在springmvc-servlet.xml中
<!--靜態檔案對映 -->
<mvc:resources mapping="/static/**" location="/static/"/>
處理靜態資源,通常會把靜態資源放到static資料夾統一管理
方法四:使用動靜分離的方案,將靜態檔案都放在其它伺服器上
1.靜態資源移走後,springmvc伺服器可以專門處理業務請求,
不必再為靜態資源消耗處理能力(
更重要的是不必為靜態資源浪費頻寬
可以使業務伺服器能夠併發處理更多請求
2.靜態資源可以放在更便宜的伺服器上,節省開支
3.靜態資源消耗的頻寬和磁碟都很大,可以藉助CDN加速,
CDN即內容分發網路,是專業從事靜態資源網際網路級快取業務的公司提供的
SpringMVC收集瀏覽器傳過來資料
方法一:直接在請求處理方法中新增相應的引數,
SpringMVC會自動將請求體/URL中的引數繫結到請求方法的引數上
要求名字必須相同
如果名字不同,可以加@RequestParam(“表單中的名字”)
SpringMVC請求URL與方法對映
@RequestMapping()
既可以寫在控制器類上,也可以寫在請求處理方法上
如果類上和方法上都有,url將會連線在一起
SpringMVC的的重定向和轉發
在Servlet中 重定向 response.sendRedirect(通常寫成絕對url)
轉發 request.getRequestDisptcher(url).forword(req,res);
在SpringMVC中 重定向 “redirect:url” Spring 會自動新增應用路徑
轉發 “forword:url”
SpringMVC從控制器向檢視傳資料
在Servlet中 呼叫request.setAttribute(“name”,value);
然後轉發請求到JSP頁面
在SpringMVC中
① 先拿到model,可以通過在引數中新增Model、ModelAndView等引數拿到
② 呼叫addObject() 或 addAtrribute() 方法,將資料設定進去
一句話:通過Model傳過去!
Maven私有代理伺服器
簡稱Maven私服
使用私服的原因:
1.Maven中央伺服器或其它互聯代理伺服器速度都不如區域網速度快
所以在區域網內搭建一臺Maven伺服器將會大大
提高jar包的下載速度和穩定性
2.可以把把公司公用的jar(公司自有框架、工具類)包釋出到私服上,
公司內部程式設計師使用時,只需要新增座標即可
搭建Maven私服
1) 從senotype下載安裝包(推薦使用2.x)
2) 安裝成windows服務(在bin中執行 nexus install)
3) 啟動nexus服務
4) 使用 localhost:8081/nexus訪問
5) 登入 賬號admin/密碼admin123
6) 開啟central的索引下載(repositories -> central -> config -> download remote index)
在central這一行點右鍵,repaire index update index
7) 新增阿里雲映象(可選)
(repositories -> add 在表單中填寫 名字、阿里雲地址)
8) 設定 public組
(repositories -> public.... ->把需要公開的倉庫加到左側
9) 在程式設計師自己的電腦上把私服的public url設定為映象
SpringMVC Form標籤庫
<form:form modelAttribute=”modelName”>
<form:label path=”屬性名”>
<form:input path=”屬性名”>
</form:form>
modelAttribute 指向資料模型物件,需要在控制器中建立一個模型物件,通過Model傳到頁面上
使用Form標籤庫的好處是,可以簡化表單,使表單與模型物件的繫結更方便
SpringMVC的表單與模型物件的繫結
1.使用form標籤庫的modelAttribute可以指明表單與Model中哪個物件繫結
2.在請求處理方法中可以直接寫一個模型類引數,這個模型類引數將被SpringMVC自動填充
3.而且這個模型類引數實際上也存在於Model中,這樣如果再次返回這個JSP,則資料會直接傳過去,不需要往Model中新增!