可能是你没输入内容的时候取得的值不是null而是"",这样的话你的通配符'%"+s+"%'就是任意字符串的意思了,所以也就输出了所有的记录.
你可以把if的判断条件加强一下,判断当取得的是""时候的处理方法
这样也许可以if(s==null||s="").

解决方案 »

  1.   

    if (s==null)
    没有输入的时候,根本没有认你的这个语句嘛!
    那么就会认为是模糊的所有查询给你显示所有的那!检查处理你的为null的判断处理!
      

  2.   

    用这个if(s==null||s="")也不行啊!!
    楼上的朋友,该如何判断输入框为空??
      

  3.   

    应该这样写吧if (s==null||s.equals(""))
      

  4.   

    不好意思,s=""是我在这里写错了!
    我用if (s==null || s=="")也不行啊!
      

  5.   

    你在网页上查看源文件,看看文本框里的内容是什么,或者out.println(s.length);看看,你最好在用trim()把空格去掉
      

  6.   

    难道没有解决方法嘛??trim()怎么用?
      

  7.   

    楼主对一些基础的东西有些不熟,如果是一个字串比较的话必需用s.equals("");你还需要了解一下==这个比较的是什么
      

  8.   

    不要用null用s.compareTo("")==0看看,很容易的问题
      

  9.   

    darkfly1(清凉雨) :兄弟啊,equals()老早就用过了,连这个都不知道还混什么啊!
      

  10.   

    在客户端用JavaScript判断,
    <script>
      <!--
          function chk(){
             if(document.form名.search.value=="")
             {
                   
                  return false;
              }
          }
      //-->
    </script>
    <input type="submit" value="" onclicked="return chk()">
      

  11.   

    判断是否为空的操作,我们一直在用下面的方式,而且是通杀。
    if (s==null && s.length()>0){...}
    注意两者的先后次序,如果颠倒过来,容易出错,因为null值用length()方法是会抛出异常的。
      

  12.   

    那么这个编码语句
    byte b[]=s.getBytes("ISO8859-1");
    s=new String(b);
    是用在判断之前还是之后??因为不用编码转换语句的话,出来的是乱码
      

  13.   

    String s = request.getParameter("search");
    if (s == null || "".equals(s.trim())) {
        out.print("<tr>");
        out.print("<td>无记录!</td>");
        out.print("</tr>");
    } else {
        s = new String(s.getBytes("ISO8859-1"), "GBK");
        ResultSet schrs = stmt.executeQuery("select * from a where name like '%"+s+"%'");
        //这里是控制显示记录的语句
    }
    这样试试看
      

  14.   

    终于解决了!!
    zcjl(假球迷:最爱米兰!) 的方法是正确的!!