日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

服务器端输入验证

發布時間:2025/4/16 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 服务器端输入验证 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、沒有使用框架情況下,在目標方法處,通過手動的編寫代碼來進行驗證

二、Struts2

1.支持聲明式驗證,即通過配置的方式來驗證。需要實現接口?ValidationAware,依賴于兩個攔截器?validation 和?workflow 攔截器。

validation 攔截器:進行驗證和創建字段錯誤列表

workflow ?攔截器:檢查 validation 攔截器發現的錯誤,如果發現,返回 "input"(默認)result。

如果沒有指定 name=input 對應的 result ,則返回一個錯誤消息告訴我們 "there's no "input" result defined for the action"。

2. Struts2 默認的驗證器

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC"-//Apache Struts//XWork Validator Definition 1.0//EN""http://struts.apache.org/dtds/xwork-validator-definition-1.0.dtd"><validators><validator name="required" class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/><validator name="requiredstring" class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/><validator name="int" class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/><validator name="long" class="com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator"/><validator name="short" class="com.opensymphony.xwork2.validator.validators.ShortRangeFieldValidator"/><validator name="double" class="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"/><validator name="date" class="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"/><validator name="expression" class="com.opensymphony.xwork2.validator.validators.ExpressionValidator"/><validator name="fieldexpression" class="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"/><validator name="email" class="com.opensymphony.xwork2.validator.validators.EmailValidator"/><validator name="url" class="com.opensymphony.xwork2.validator.validators.URLValidator"/><validator name="visitor" class="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"/><validator name="conversion" class="com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator"/><validator name="stringlength" class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/><validator name="regex" class="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"/><validator name="conditionalvisitor" class="com.opensymphony.xwork2.validator.validators.ConditionalVisitorFieldValidator"/> </validators>

3.驗證規則配置文件

(1)位置:在需要驗證的 Action 同包下。

(2)當前 Action 類所有 action 使用同樣的驗證規則:Action簡單類名-validation.xml

(3)當前 Action 類某個 action 使用具體的驗證規則:Action簡單類名-ActionName-validation.xml

4. 驗證分類

(1)字段驗證(Field Validator Syntax)

e1:驗證?myPurchaseCode 字段長度必須為10

<validators><field name="myPurchaseCode"><field-validator type="stringlength"><param name="minLength">10</param><param name="maxLength">10</param><param name="trim">true</param><message>Your purchase code needs to be 10 characters long</message></field-validator></field> </validators>

e1:驗證 age 必須在 20 到 50 之間

<validators><field name="age"><field-validator type="int"><param name="min">20</param><param name="max">50</param><message>Age needs to be between ${min} and ${max}</message></field-validator></field> </validators>

(2)類型驗證(Plain Validator Syntax)

e1:驗證?myPurchaseCode 字段長度必須為10:

<validators><validator type="stringlength"><param name="fieldName">myPurchaseCode</param><param name="minLength">10</param><param name="maxLength">10</param><param name="trim">true</param><message>Your purchase code needs to be 10 characters long</message></validator> </validators>

e2:驗證 age 必須在 20 到 50 之間

<validators><validator type="int"><param name="fieldName">age</param><param name="min">20</param><param name="max">50</param><message>Age needs to be between ${min} and ${max}</message></validator> </validators>

(3)表達式驗證

e:判斷密碼和確認密碼輸入是否一致

<validators><validator type="expression"><param name="expression"><![CDATA[pwd==pwdConfirm]]></param><message>密碼和確認密碼不一致</message></validator> </validators>

其中:<param name="expression"> 標簽體中的內容會自動進行 OGNL 解析。

5.短路驗證:

對于同一個字段進行多個規則驗證,如果第一個驗證沒有通過,則后續的規則不進行驗證。

只需要在?validator 或 field-validator 標簽內加入 short-circuit 屬性并設置為 true 即可。

如:

<validators><field name="email"><field-validator type="stringlength" short-circuit="true"><param name="minLength">4</param><param name="maxLength">10</param><param name="trim">true</param><message>email length must between ${minLength} and ${maxLength}</message></field-validator><field-validator type="email"><message>Must provide a valid email</message></field-validator></field> </validators> email validate

6.類型轉換失敗提示與驗證出錯提示消息

struts2 默認的攔截器棧為?defaultStack,規定了?conversionError 攔截器在?validation 攔截器之前執行。但是?conversionError 攔截器攔截到類型轉換出錯的消息,并不會返回 "input",而是繼續讓proxy調用后續的攔截器。

這里的源碼我們不能進行更改,但是我們可以仿造一個,類的加載順序是采取的就近原則。所以我們在項目的 src 目錄下,新建與?conversionError 攔截器對應的目錄結構,然后修改?conversionError 攔截器代碼。

7.對 Action 類的要求

要驗證的字段,必須提供 getXxx() 和 setXxx() 方法,getXxx() 方法用于 validate 攔截器進行比較驗證。

8.一個簡單的例子:

<s:form action="/validateNum"><s:textfield name="age" label="age"/><s:submit label="submit"/> </s:form> form 表單 <!DOCTYPE validators PUBLIC"-//Apache Struts//XWork Validator 1.0.2//EN""http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd"><validators><field name="age"><field-validator type="int"><param name="min">20</param><param name="max">50</param><message>Age needs to be between ${min} and ${max}</message></field-validator></field> </validators> ValidateAction-validation.xml <struts><package name="default" namespace="/" extends="struts-default"><action name="validateNum" class="com.nucsoft.struts.ValidateAction"><result>/success.jsp</result><result name="input">/index.jsp</result></action> </struts> struts.xml

9.自定義驗證器

(1)普通的驗證器繼承?ValidatorSupport 類,字段驗證程序繼承?FieldValidatorSupport。如需要提供參數,提供 setXxx() 方法,如錯誤消息要獲取驗證器類中的屬性,提供對應的 getXxx() 方法。

(2)注冊驗證器類:在類路徑根目錄下新建?validators.xml ,內容可以參考?default.xml 文件里的配置信息。(驗證框架首先在根目錄下查找validators.xml文件,找不到則調用默認的驗證設置)

(3)正常使用

10.編程式驗證:

Struts2提供了一個 Validateable 接口,Action 類可以實現這個接口中的 validate() 方法,在其中編寫驗證邏輯。ActionSupport 類已經實現了 Validateable 接口。

?

?

?

?

?

?

?

未完,待續

轉載于:https://www.cnblogs.com/solverpeng/p/5661233.html

總結

以上是生活随笔為你收集整理的服务器端输入验证的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: www.亚洲免费 | 91精品国产一区二区在线观看 | 77777av| 奇米影视大全 | 天天爽天天射 | 日韩欧美福利视频 | 中文字幕一区二区三 | 色天堂视频 | 亚洲乱亚洲乱妇 | 成人免费看片又大又黄 | chinese精品自拍hd| 夜夜骚av一区二区三区 | 操操综合| 一起操在线观看 | 亚洲精品国产av | 日日夜夜干| 91久久久久久久久久久久 | 区一区二区三 | 91国产一区二区 | 91精品美女| 性――交――性――乱睡觉 | 最新极品jizzhd欧美 | 麻豆免费av | 免费av的网站 | 在线视频福利 | 无码人妻丰满熟妇精品区 | 欧美野外猛男的大粗鳮 | 最新中文字幕av专区 | 在线视频三区 | 中文资源在线观看 | 天天操天天舔天天干 | 国产精品亚洲专区无码牛牛 | 亚洲精品网站在线播放gif | 性欧美精品中出 | 狠狠干2017 | 国产夫妻在线观看 | 久久久久久久亚洲av无码 | 国产一区二区毛片 | 成人精品一区二区三区视频 | 成人区人妻精品一区二区不卡视频 | 日本www视频在线观看 | 午夜精品区 | 精品一区二区电影 | 一区二区三区四区高清视频 | 一级做a爰片 | a级在线免费观看 | 久久网伊人 | 国产美女一区二区 | 国产精品久久久久久人妻精品动漫 | 亚洲美女性视频 | 成人久久网站 | 亚洲午夜久久久久 | 少妇被躁爽到高潮 | 久草免费福利视频 | 久久伊人网站 | 国产睡熟迷奷系列精品视频 | 天天色天天草 | 欧美在线色图 | 中文字幕在线视频播放 | 精品国模| 欧美大片免费观看 | 日日噜噜噜 | 成人免费网站在线观看 | 国产重口老太伦 | 中文字幕亚洲一区 | 欧美黄色一级 | 深夜国产视频 | 欧美国产日韩在线观看成人 | 免费成人国产 | 国产精品久久欧美久久一区 | 日韩综合精品 | 91大神在线观看视频 | 理想之城连续剧40集免费播放 | 黄色免费网站在线 | 国产成人无码精品久久久电影 | www黄色 | 天天操操操操操 | 99精品在线免费观看 | 国产精品99一区二区三区 | 国产av无毛 | 午夜一区二区三区四区 | 三级黄色在线播放 | 992tv人人草 国产第6页 | 久久亚洲精品小早川怜子 | 亚洲综合婷婷久久 | 国产精品第八页 | 秘密基地电影免费版观看国语 | 久草资源福利 | 大乳女喂男人吃奶视频 | 久久一级黄色片 | 成人h片在线观看 | 成人在线视频免费看 | 污视频免费在线观看网站 | 国产欧美精品国产国产专区 | 一级日韩一级欧美 | 亚洲性视频在线 | 中文字幕在线观看视频一区二区 | 欧美精品一二 | 精品国产免费无码久久久 |