1.校驗理解
通常使用較多的是前端校驗,比如頁面js校驗,對於安全性要求高一點的建議在伺服器端校驗。
伺服器端校驗:
控制層controller:校驗頁面請求引數的合法性,在伺服器端控制層controller校驗不區分客戶端型別(瀏覽器,手機客戶端,遠端校驗)
業務層service:(使用較多)主要校驗關鍵業務引數,僅限於service介面使用的引數
持久層dao:一般不進行校驗
2.springmvc校驗
springmvc使用hibernate的校驗框架validation
校驗思路:
頁面提交請求的引數,請求到controller方法中,使用validation進行校驗,如果校驗出錯,將錯誤資訊展示到頁面
3.環境準備
hibernate的validation所需的jar包
hibernate-validation-4.3.0.final.jar
jboss-logging-3.1.0.cr2.jar
validation-api-1.0.0.ga.jar
4.配置校驗器
classpath:customvalidationmessage
ps:value 中的值在idea 中會出現紅色錯誤,不影響使用
5.校驗器注入到處理器介面卡
6.在pojo中新增校驗規則
如在字段上加一行**
@size(min=1,max=30,message="")
private string name;
上面的兩行**表示校驗名稱在1到30個字元之間,message表示出錯提示資訊,
不在上面配置出錯資訊,就配置到上面的資源檔案中,防止硬編碼(資源檔案中例:item.name.length.error=內容)
7.配置 .properties檔案
item.name.length.error=字元長度不合適
8.在controller中進行校驗捕獲
將頁面提交過來的pojo進行校驗,在controller的pojo形參前加如:@validated item item,後面再加乙個引數 bindingresult bindingresult)
如:
public string index(@validated item item , bindingresult bindingresult)
注:1.在需要校驗的pojo前面加@validated在需要校驗的pojo後面加bindingresult bindingresult 接收校驗的出錯信 息。
2.多個需要校驗的,則@validated 和 bindingresult bindingresult是配對出現的,並且順序是固定的一前一後
在controller中獲取校驗錯誤資訊:
if(bindingresult.haserrors()) }
用來測試是不是捕獲了錯誤資訊
9.在頁面顯示校驗的錯誤資訊
需要在controller方法中將錯誤資訊傳到頁面,使用model,return的時候返回該頁面
(具體的頁面的修改,如何將錯誤資訊顯示在特定的位置這裡不做說明)
SpringMVC學習之跨伺服器上傳檔案
什麼時跨伺服器上傳檔案,簡單說就是建兩個web專案乙個用來上傳檔案,另乙個用來存放上傳的檔案。首先說環境 需要匯入兩個包 建立兩個專案。方法 public string upload1 multipartfile upload throws exception 這裡需要在另乙個專案目錄下手動建乙個資...
SpringMVC上傳檔案到伺服器
客戶端傳送reqeust請求 前端控制器接收request,並且通過配置檔案解析器解析request 解析器返回upload物件,傳送給控制器 控制器執行方法,傳入物件 檔案上傳包 commons fileupload groupid commons fileupload artifactid 1....
asio學習之 UDP伺服器
想找乙個好的c 網路庫,選來選去都不太滿意,mudo不支援windows,也不支援udp,evpp 有點複雜,libevent是c語言的,最後感覺還是asio最完善,支援最好,據說c 20標準中可能標準化,所以就進行一些學習。1.基本使用 需要定義 asio standalone 單獨使用asio不...