源代码:
<%@ page contentType="text/html;charset=gb2312"@%>
<html>
<body bgcolor=cyan><font size=1>
<p>请输入数字:
<form action="tree.jsp" method=post name=form>
<input type="text" name="boy">
<input type="submit" value="送出" name=submit>
</form>
<p>获取文本框的名字:
<%
String strtext=request.getparameter("boy");
double number=0,r=0;
if(strtext==null)
{
textContext="";
}
try{
number=Double.parseDouble(strtext);
if(number>=0)
{
r=Math.sqrt(number);
out.print("br"+String.valueOf(number)+"的平方根:");
out.print("<br>"+String.valueOf(r));
}
}catch(NumberFormatException e)
{}
%>
</body>
</html>
问题一:为什么要有这段代码?
if(strtext==null)
{
textContext="";
}
问题二:
这段代码什么时候执行?
<%
String strtext=request.getparameter("boy");
double number=0,r=0;
if(strtext==null)
{
textContext="";
}
try{
number=Double.parseDouble(strtext);
if(number>=0)
{
r=Math.sqrt(number);
out.print("br"+String.valueOf(number)+"的平方根:");
out.print("<br>"+String.valueOf(r));
}
}catch(NumberFormatException e)
{}
%>

解决方案 »

  1.   

    if(strtext==null)
    {
    textContext="";
    }//这个不是判断是否为空吗,为空则置为空值 ,主要是为了维护程序的健壮
    问题2,应该是在跳转到这个页面的时候执行
      

  2.   

    首先更正一下代码:textContext="";更改为:strtext=""
    关于这段代码:
    if(strtext==null)
    {
    textContext="";
    }书上是这样解释的:jsp引擎在运行这个jsp页面生成的字节码文件时,会认为使用了空对象,因为在这个字节码被执行时,客户可能还没有提交数据,strtext也还没有被创建。如果还没有创建就是使用了该对象,java解释器就会提示出现了异常。
    请问大虾:
    当运行这个jsp页面时,执行哪些代码,当用户点击提交的时候执行那一段代码?书中的意思是,字节码文件在执行时,还没获取到用户提交的数据?谢拉,我已经被搞晕了
      

  3.   

    <form action="tree.jsp" method=post name=form>
    当你点提交按钮的时候,会将页面的数据,提交到tree.jsp这个页面。
    当你运行你上面的JSP的时候会执行
    <%
    String strtext=request.getparameter("boy");
    double number=0,r=0;
    if(strtext==null)
    {
    textContext="";
    }
    try{
    number=Double.parseDouble(strtext);
    if(number>=0)
    {
    r=Math.sqrt(number);
    out.print("br"+String.valueOf(number)+"的平方根:");
    out.print("<br/>"+String.valueOf(r));
    }
    }catch(NumberFormatException e)
    {}
    %>
    这段代码