struts 2検証フォーム無効なsqlクエリを回避
2776 ワード
一般的なWebログインでは、最も簡単なのはユーザー名とパスワードですが、ユーザーが正しいフォーマットで入力していないため、sqlクエリーがトリガーされる可能性がありますが、このようなクエリーはサイトの負担を大きくします.このような問題を回避するためにstruts 2検証器を使用して、私たちが望む結果を完了することができます.
このようなフォームがあると仮定します.
このようなフォームがあると仮定します.
:<s:textfield name="loginName" cssClass="msg"></s:textfield>
:<s:password name="loginPwd" cssClass="msg"></s:password>
検証構成を設定する必要があります.一般的に、開発中のこのような構成とログインモジュールのactionブロッキングにパッケージを置く必要があります.<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<!-- input -->
<validators>
<!-- 1 -->
<field name="loginName">
<!-- 1.1 -->
<field-validator type="requiredstring">
<message> </message>
</field-validator>
<!-- 1.2 -->
<field-validator type="stringlength">
<param name="maxLength">14</param>
<param name="minLength">2</param>
<message> ${minLength}-${maxLength} </message>
</field-validator>
</field>
<!-- -->
<!-- 1 -->
<field name="loginPwd">
<!-- 1.1 -->
<field-validator type="requiredstring">
<message> </message>
</field-validator>
<!-- 1.2 -->
<field-validator type="stringlength">
<param name="maxLength">16</param>
<param name="minLength">4</param>
<message> ${minLength}-${maxLength} </message>
</field-validator>
</field>
</validators>
当然如果你就这样结束的话,还是有问题的,来看下问题所在。
把开发者模式给开启
<!-- 开发模式 --><constant name="struts.devMode" value="true"></constant>
どういう意味ですか.Actionではinputとして返されるタイプの結果は定義されていません.現在のstrutsのプロファイルに一言追加する必要があります.Struts Problem Report Struts has detected an unhandled exception: Messages: No result defined for action com.canyugan.crm.staff.web.action.StaffAction and result input Stacktraces No result defined for action com.canyugan.crm.staff.web.action.StaffAction and result input
/WEB-INF/pages/login.jsp
ここで転向したページをログインページに設定しました.
これにより、構成が完了し、Webページをリフレッシュして不正なデータを入力すると、検証器が動作し、サーバにhibernateクエリー文が表示されません.