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>

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
どういう意味ですか.Actionではinputとして返されるタイプの結果は定義されていません.現在のstrutsのプロファイルに一言追加する必要があります.
/WEB-INF/pages/login.jsp
ここで転向したページをログインページに設定しました.
これにより、構成が完了し、Webページをリフレッシュして不正なデータを入力すると、検証器が動作し、サーバにhibernateクエリー文が表示されません.