练习 3.5:客户机端验证与服务器端验证比较
在上一个练习中,您学会了如何将验证规则应用于 Web 页面上的字段。这些验证规则是服务器端验证规则。服务器端验证规则由应用程序服务器评估。客户机端验证规则由客户机浏览器评估。服务器端验证更适用于数据驱动的规则或复杂的规则,对于简单验证规则,客户机端验证则可以节省服务器处理时间。
在此练习中,将把一个简单的客户机端验证规则添加至 UpdateSession.jsp 页面。此验证规则是用 JavaScript 编写的。与
EGL 不同,JavaScript 是一种区分大小写的语言,因此,在此练习过程中插入代码时,可以从此练习中复制并粘贴它,或者请确保输入的内容与所显示的内容完全匹配。
将客户机端 Javascript 添加至页面
在此练习中,可以使用“快速编辑”视图来将客户机端 JavaScript 添加至页面以验证密码字段。这不是将客户机端代码或
Javascript 代码添加至 Web 页面的唯一方法,但它适用于诸如验证规则之类的小段代码。
- 打开 UpdateSession.jsp 页面。
- 在 UpdateSession.jsp 页面中,单击密码输入字段而不是它旁边的文本标签。此输入字段包含文本 {EGLpassword},这意味着它被绑定至 PageHandler 的 userSession 记录中的 EGL 变量 password。
- 选中密码字段,打开“快速编辑”视图。“快速编辑”视图通常位于工作台的底部。如果找不到“快速编辑”视图,则单击窗口 > 显示视图 > 快速编辑,然后它将打开。
- 在“快速编辑”视图的左窗格中,单击 onblur。
- 在“快速编辑”视图的右窗格中,完全如下面所示插入以下代码:
if (thisObj.value == "password")
{
alert("Your password can not be the word 'password'.");
thisObj.select();
thisObj.focus();
return false;
}
以下是一些有关刚才插入的代码的技术说明:
- “快速编辑”视图的左窗格显示与选择的输入字段相关联的事件。在此示例中,您选择了 onblur 事件,当从选择的输入字段移走焦点时就会执行它。
- 此 Javascript if 语句工作方式与 EGL if 语句类似。
- 代码 thisObj.value 表示在输入字段中输入的文本。如果此文本是字符串“password”,则会执行 if 语句中的代码。
- alert 语句会导致打开一个消息框,该框显示文本 Your password can not be the word 'password'。
- 代码 thisObj.select(); 和 thisObj.focus(); 将浏览器的焦点发送至密码字段以便用户可以在该字段中立即输入有效密码。
“快速编辑”视图看起来应如下所示:

- 保存该页面。
- 在服务器上运行 UpdateSession.jsp 页面。
- 当该页面在 Web 浏览器中打开时,将有效信息输入到除密码字段之外的每个字段中。
- 在密码字段中,输入 password 这个单词。
- 单击写至会话对象。
一个窗口将打开,显示消息 Your password can not be the word 'password'。
- 单击确定,然后输入有效密码。
- 单击写至会话对象按钮。页面将正常工作。
在此练习中,您看了一个简单的客户机端验证示例。应用程序可能需要客户机端验证、服务器端验证或两者的组合。您使用的处理类型取决于应用程序的详细信息。
继续练习 3.6:调用远程逻辑。