JAVA中NULL和“”有什么区别?
<%@ page contentType="text/html;charset=gb2312"%><!--JSP指令标签-->
<%@ page import="java.util.*"%>                 <!--JSP指令标签-->
<html><!--HTML标记符-->
<body>
<form name="form1" action="instring.jsp" method="post">
<input type="text" name="jcs">
<input type="submit" name="submit" value="提交">
</form>
<%!String s=null;%><!--变量声明-->
<%//以下为Java程序片
  s=request.getParameter("jcs");
  if(s==null)
  {
    out.println("您输入的是空串!");
  }
  else
  {
    out.println("您输入的是:"+s);
  }
%>
</body><!--HTML标记符-->
</html>为什么我在TEXT中什么也不输,它依然输出“您输入的是:”,难道不应该是”您输入的是空串“吗
但是为什么改成下面的样子就正确了呢?JAVA中NULL和“”有什么区别?s=request.getParameter("jcs");
  if(s==null)s="";
  if(s.equals(""))
  {
    out.println("您输入的是空串!");
  }
  else
  {
    out.println("您输入的是:"+s);
  }
高手指教,呵呵

解决方案 »

  1.   

    如果你的form里面没有:
    <input type="text" name="jcs">
    就应该是null了。因为form里有<input type="text" name="jcs">,虽然你没有输入,但是服务器会因为是一个空字符串。
      

  2.   

    null是空的对象
    ""是空的字符串,但不是空对象
    楼上解释的有道理。
    若你想进行判断是否为空可以参考如下代码:
    <%
      s=request.getParameter("jcs");
      if(s==null || "".equals(s))
      {
        out.println("您输入的是空串!");
      }
      else
      {
        out.println("您输入的是:"+s);
      }
    %>