(用了SHH框架)JSP中 假设有个新闻标题的<input>,这个<input>在form表单中,当我输入一些敏感字符,比如<div style= ,之类的,他就不会正常添加了。我想要 使我在<input>中输入了<div style= ,也能正常添加。听别的前辈说要编译一下才行,但是我根本不知道要怎么弄!!!还有限制长度用<input>中size 可行吗?
希望各位大侠能够讲解一下 或者提供一些例子。

解决方案 »

  1.   

    SHH框架是什么?如果是SSH的话,建议去查看一下struts的校验器。能实现你的要求的。
      

  2.   

    限制长度貌似可以用maxsize去定义,如果不行,就写个函数,假设是20个长度例如:<input id="title" type="text" onkeypress="checkSize(20)">
    <script type="text/javascript">
        function checkSize(maxsize)
        {
            var size = document.getElementById("title").value.length;
            if (size > maxsize)
            {
                return false;
            }
        }
    </script>如果要限制特殊字符,楼主可以尝试使用正则表达式。
      

  3.   

    上述问题,你的只要把 标题 "<" ">" 转换一下就可以了,< == &lt;  > == &gt;
    一般在提交的时候写个js替换一下,就可以了。
      

  4.   

    我写的<div style=这类敏感字符只是一个例子,不是说只要过滤这个敏感字符。。
      

  5.   

    public static String htmlEncode( String value, boolean returnNbsp )
        {
            StringBuffer returnVal = null;        if( value == null || value.equals("") )
            {
                returnVal = ( returnNbsp ) ? new StringBuffer("&nbsp;")
                                           : new StringBuffer("");
            }
            else
            {
                returnVal = new StringBuffer();            char c;
                for( int i=0; i<value.length(); i++ )
                {
                    c = value.charAt(i);                if( c == '<' )
                    {
                        returnVal.append( "&lt;" );
                    }
                    else if( c == '>' )
                    {
                        returnVal.append( "&gt;" );
                    }
                    else if( c == '"' )
                    {
                        returnVal.append( "&quot;" );
                    }
                    else if( c == '\'' )
                    {
                        returnVal.append( "&#039;" );
                    }
                    else if( c == '&' )
                    {
                        returnVal.append( "&amp;" );
                    }
                    else
                    {
                        returnVal.append( c );
                    }
                }
            }        return returnVal.toString();
        }找到了这个,是以前做的过滤页面上的一些特殊字符用的,你可以参考一下。
      

  6.   

    非常感谢拉。我提交FORM表单的时候经过这个方法,然后再提交。
    但是这样是不是有点麻烦呀?