很不理解的JSP验证程序片段

时间: 2007-06-16 / 分类: 技术相关 / 浏览次数: 820 views / 2个评论 发表评论

[文章作者:叶歆昊   最后修改:2010-07-17   转载请注明原文链接:http://littz.com/not-understand-the-jsp-fragment-validation-process.html]

最近重新设计学生之家后台的时候遇到了一段让人很不理解的JSP验证程序,代码如下

<%@
if((User_Name.indexOf(&quot;>&quot;)>=0)||(User_Name.indexOf(&quot;<&quot;)>=0)||(User_Name.indexOf('&quot;')>=0)||(User_Name.indexOf(&quot;'&quot;)>=0)||(User_Name.indexOf(&quot;*&quot;)>=0)||(User_Name.indexOf(&quot;@&quot;)>=0)||(User_Name.indexOf(&quot;=&quot;)>=0)||(User_Name.indexOf(&quot;%&quot;)>=0))
{
response.sendRedirect(&quot;err.jsp?id=3&quot;);
return;
}
%>

大致是先判断输入的用户名里面是否含有% < >等之类的特殊字符,如果存在的话直接跳转到错误页面,如果不存在这些字符再比对数据库验证用户名和密码以及权限。

逻辑上,如果输入的用户名里面含有一个或多个 > 符号,对应的代码应该是

<%@
User_Name.indexOf (&quot;>&quot;)>=1
%>

才对,可是据说早几届最初设计这个验证程序的时候也是考虑的用>=1,但是没有起到程序应有的验证效果,查了很久之后无意之间把1改成0就能用了,他们也很不理解。希望有朋友能帮我解释这原因,Thank you!

上一篇:
下一篇:

2个评论


  1. 2007/07/03 于 14:07:00

    >=0表示为真,<0就是为假。懂了吧。当时我没反应过来。

  2. LittleHZ
    2007/07/04 于 05:05:00

    了解,不过C语言里面是非0为真,0为假,JAVA里是这样用啊。

发表评论

您的昵称 *

您的邮箱 * (绝对保密)

您的网站