我要通过JSP网页调用一个JAVA程序,不知哪里错了?

一个名为Adder的JAVA文件,一个ABC的包,111.JSP的内容如下:
</head>
<jsp:useBean id="aaa" class="ABC.Adder"/>
<body>
<%= aaa.Adder() %>
</body>
</html>
但是通过TOMCAT老是报错,说
org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 10 in the jsp file: /111.jsp
Generated servlet error:
The method Adder() is undefined for the type Adder
想要源程序的HI我,我发给你,解决后再加20分
ABC包里有6个文件:Adder.class Adder$1.class.....Adder$5.class
是不是只调用一个不行呢?

应该是不能这么调用
要是嵌入到网页中显示应该用applet

package javaee;
import java.awt.*;
import java.applet.*;
public class Calculator extends Applet{
private TextField tfAnswer;
private Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;
private Button bPoint,bEqual,bPlus,bMinus,bClear,bMulti,bDivision;
private String OperatorCurrent,OperatorPre;
private String ForeScreen,BackScreen;
private boolean isFloat=false;
public void init(){
OperatorCurrent=new String("");
OperatorPre=new String("");
ForeScreen=new String("");
BackScreen=new String("");
this.setBackground(Color.gray);
this.setForeground(Color.blue);
setLayout(null);
tfAnswer=new TextField();
tfAnswer.setBounds(5,5,150,20);
this.add(tfAnswer);
bClear=new Button("C");
bClear.setBounds(5,30,20,20);
bClear.setBackground(Color.green);
this.add(bClear);

bDivision=new Button("/");
bDivision.setBounds(30,30,20,20);
bDivision.setBackground(Color.green);
this.add(bDivision);

bMulti=new Button("*");
bMulti.setBounds(55,30,20,20);
bMulti.setBackground(Color.green);
this.add(bMulti);

bMinus=new Button("-");
bMinus.setBounds(80, 30, 20, 20);
bMinus.setBackground(Color.green);
this.add(bMinus);

b7=new Button("7");
b7.setBounds(5,55,20,20);
this.add(b7);
b7.setBackground(Color.magenta);
b8=new Button("8");
b8.setBounds(30, 55, 20, 20);
this.add(b8);
b9=new Button("9");
b9.setBounds(55, 55, 20, 20);
b9.setBackground(Color.magenta);
this.add(b9);

b4=new Button("4");
b4.setBounds(5,80,20,20);
this.add(b4);
b5=new Button("5");
b5.setBounds(30, 80, 20, 20);
b5.setBackground(Color.red);
this.add(b5);
b6=new Button("6");
b6.setBounds(55, 80, 20, 20);
this.add(b6);

bPlus=new Button("+");
bPlus.setBounds(80, 55, 20, 45);
bPlus.setBackground(Color.green);
this.add(bPlus);

b1=new Button("1");
b1.setBounds(5,105,20,20);
b1.setBackground(Color.orange);
this.add(b1);
b2=new Button("2");
b2.setBounds(30, 105, 20, 20);
this.add(b2);
b3=new Button("3");
b3.setBounds(55, 105, 20, 20);
b3.setBackground(Color.orange);
this.add(b3);
b0=new Button("0");
b0.setBounds(5, 130, 45, 20);
b0.setBackground(Color.yellow);
this.add(b0);
bPoint=new Button(".");
bPoint.setBounds(55, 130, 20, 20);
bPoint.setBackground(Color.yellow);
this.add(bPoint);

bEqual=new Button("=");
bEqual.setBounds(80, 105, 20, 20);
bEqual.setBackground(Color.green);
this.add(bEqual);

}

public boolean action(Event e,Object o){
String s=new String("");
if((e.target==b0)||(e.target==b1)||(e.target==b2)||(e.target==b3)||(e.target==b4)||(e.target==b5)||(e.target==b6)
||(e.target==b7)||(e.target==b8)||(e.target==b9)||(e.target==bPoint)){
if(e.target!=bPoint)
{
s=(String)o;
System.out.print(s);
doForeScreen(s);

}
if((e.target==bPoint)&&(!isFloat))
{
isFloat=true;
s=(String)o;
if(ForeScreen.equals(""))
{
ForeScreen+="0.";
repaint();

}
else
{
System.out.print(s);
doForeScreen(s);

}
}
}

if(e.target==bClear)
{
doClear();
}
if((e.target==bMulti)||(e.target==bDivision)||(e.target==bPlus)||(e.target==bMinus))
{
if(ForeScreen!="")
{
OperatorCurrent=((String)o);
doOperator();
System.out.print((String)o);
}
else
{
OperatorPre=((String)o);
}
}
if(e.target==bEqual)
{
doOperator();
}

return true;
}
public void doOperator(){
double dFore,dBack;
Double d;
if(OperatorPre.equals(""))
{
BackScreen=ForeScreen;
ForeScreen="";
tfAnswer.setText(BackScreen);
repaint();
}
else
{
dFore=(new Double(ForeScreen)).doubleValue();
dBack=(new Double(BackScreen)).doubleValue();
ForeScreen="";
BackScreen=tfAnswer.getText();

if(OperatorPre.equals("+"))
{
d=new Double((dBack+dFore));
tfAnswer.setText(d.toString());
BackScreen=d.toString();
repaint();
}

if(OperatorPre.equals("-"))
{
d=new Double((dBack-dFore));
tfAnswer.setText(d.toString());
BackScreen=d.toString();
repaint();

}

if(OperatorPre.equals("*"))
{
d=new Double((dBack*dFore));
tfAnswer.setText(d.toString());
BackScreen=d.toString();
repaint();

}

if(OperatorPre.equals("/"))
{
d=new Double((dBack/dFore));
tfAnswer.setText(d.toString());
BackScreen=d.toString();
repaint();
}
}
OperatorPre=OperatorCurrent;
repaint();
}

public void paint(Graphics g)
{

}

public void doForeScreen(String s)
{
ForeScreen +=s;
tfAnswer.setText(ForeScreen);
repaint();

}

public void doBackScreen(String s)
{
BackScreen=ForeScreen;
ForeScreen="";
tfAnswer.setText(ForeScreen);
repaint();
}

public void doClear()
{
OperatorCurrent="";
OperatorPre="";
ForeScreen="";
BackScreen="";
isFloat=false;
tfAnswer.setText(ForeScreen);
repaint();

}

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-10-23
org.apache.jasper.JasperException: Unable to compile class for JSP

意思是他不能够完成类的编绎,造成他的的原因是我没有正确配置我的vm,在这里我提前说一下我的这个项目在手动启动Tomcat的statup.bat文件的时候是没有任何问题的,出现问题的原因是我用eclipse中的Tomcat启动时出现的,从这里就可以看出确实是我的vm设置的不正确所造成的,经过的查找我发现我在编绎这个项目的时候我用的vm是1.4的(从这里可以查看【Window】->【Preferences】->【Java】->【Compiler】->【JDK Compliance level】->1.4)而在启动eclipse中的tomcat的时候他让tomcat用的vm是eclipse自身带的vm我的eclipse是5.5.1的从这里可以看出他应该是用的1.5的vm(从这里可以查看windows -> preference ->AplicationServers-> tomcat -> JDK-> Tomcate JDK name )因此问题就水落石出了,我们只要么让这两个编绎器相同就可以了。

额外补充一点就是刚才我们费的那老半天的劲就是为了一个目的让他能够用的tools.jar这个工具,因为Tomcat在工作的时候就主要是用这个工具来进行编绎的,所以你如果不用eclipse来启动tomcat的话一定要让tomcat能够找到这个文件,也就是你要在你的环境变量中设置对让你的JAVA_HOME的路径正确。(tool.jar是在你的java的lib目录下的)
第2个回答  2009-10-23
Adder() 是类的构造方法了,试试重新换个名字,你的错误里面提示找不到类,用eclipse重新保存,并检查一下你对应文件中那个class文件是否存在。
第3个回答  2009-10-23
你把adder的内容放出来看看!本回答被提问者采纳
第4个回答  2009-10-23
<%= aaa.Adder() %>这里有问题,应该调方法
相似回答
大家正在搜