日期:2014-05-17  浏览次数:20694 次

简单jsp问题
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY BGCOLOR=cyan>
  <%! double x,y;
  double multi(double x,double y)
  {return x*y;}
  double div(double x,double y)
  {return x/y;}
  %>
  x=127.0;
  y=18.0;
  out.println("调用multi方法计算"+x+"与"+y+"之积:");
  double a=multi(x,y);
  out.println(a);
  x=a;
  out.println("调用div方法计算"+x+"除以"+y+"的商:");
  double b=div(x,y);
  out.println(b);
  %>
</BODY></HTML>




为什么显示的是代码中x=127.0之后的部分呢?再加一个<% ...%>之后显示错误

------解决方案--------------------
<% 这里是java代码,百分号开始,百分号结束 ,百分号之后不用 感叹号了%> 
x=127.0之前java代码已经结束,之后就是html代码了,所以......你懂的。
------解决方案--------------------
你的<%! %>这个算是定义、声明,在html中这些标识符都是成对出现的,你看你后面那个%>和那个对应啊。应该把 {return x/y;}
%>
改成
{return x/y;}
%>
<%

因为你这个是在body里面,所以<% %>或者<%! %>里面的是执行,不在这个标识符里的就会打印。不信你试试,例子,直接放在body之间,
<% int i=3 int j=5 int k=i+j out.print(k); %> 效果为: out.print(k);

运行结果为:

8 效果为: out.print(k);
------解决方案--------------------
探讨
<% 这里是java代码,百分号开始,百分号结束 ,百分号之后不用 感叹号了%>
x=127.0之前java代码已经结束,之后就是html代码了,所以......你懂的。

------解决方案--------------------
当然可以运行啊,后面的是当做Html代码,直接显示在页面上了,而不是作为java代码,当然不会编译出错了。
------解决方案--------------------
中间都是Java代码
把中间那个%>去掉
------解决方案--------------------
这种学习中练习的代码为什么不写在类里面呢?写个带main方法的类测试不就行了么!一般项目开发中不允许在jsp里面出现<%=%>这种代码的。最基本的也要用EL表达式,或自定义标签
------解决方案--------------------
探讨

中间都是Java代码
把中间那个%>去掉

------解决方案--------------------
四楼的是对的,去掉中间那个%>也是对的。
楼主一定要注意这些符号的配对情况。
------解决方案--------------------
探讨
这种学习中练习的代码为什么不写在类里面呢?写个带main方法的类测试不就行了么!一般项目开发中不允许在jsp里面出现<%=%>这种代码的。最基本的也要用EL表达式,或自定义标签