初学JSP,才问这种菜鸟问题。我用的服务器是Tomcat5.5,编写box.java代码以下:package first;
public class Box
{
double length;//长
double width;//宽
double height;//高
public Box()
{//构造函数
length=0;
width=0;
height=0;
}
public void setLength(double length)
{//设置长
this.length=length;
}
public double getLength()
{//得到长
return length;
}
public void setWidth(double width)
{//设置宽
this.width=width;
}
public double getWidth()
{//得到宽
return width;
}
public void setHeight(double height)
{//设置高
this.height=height;
}
public double getHeight()
{//得到高
return height;
}
public double volumn()
{//求容积
double volumnValue;
volumnValue=length*width*height;
return volumnValue;
}
public double surfaceArea()
{//求表面积
double surfaceAreaValue;
surfaceAreaValue=length*width*2+width*height*2+height*length*2;
return surfaceAreaValue;
}
}编译成box.class文件后,把box.class文件放于目录
Tomcat 5.5\webapps\ROOT\WEB-INF\classes\first下
然后再编写JavaBeanTest.jsp代码:<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="first.*" %>
<HTML>
<BODY>
<jsp:useBean id="box" class="Box" scope="page">
</jsp:useBean>
<%
box.setLength(10);
box.setWidth(11);
box.setHeight(12);
out.println("在JSP中使用JavaBean<br>");
out.println("盒子的长度为:"+box.getLength()+"<br>");
out.println("盒子的宽度为:"+box.getWidth()+"<br>");
out.println("盒子的高度为:"+box.getHeight()+"<br>");
out.println("盒子的容积为:"+box.volumn()+"<br>");
out.println("盒子的表面积为:"+box.surfaceArea()+"<br>");
%>
</BODY>
</HTML>运行JavaBeanTest.jsp出现以下错误:HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: /55/javaBeanJSP1.jsp(5,0) The value for the useBean class attribute Box is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1175)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1117)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2164)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2214)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2220)
org.apache.jasper.compiler.Node$Root.accept(Node.java:457)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2164)
org.apache.jasper.compiler.Generator.generate(Generator.java:3322)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:296)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:299)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.23 logs.
--------------------------------------------------------------------------------Apache Tomcat/5.5.23本人试过把box.java的“package first;”语句去除,也试过把JavaBeanTest.jsp中的<%@ page import="first.*" %>改成<%@ page import="first.box" %>,还是出错。
请高手指教,感激不尽!
public class Box
{
double length;//长
double width;//宽
double height;//高
public Box()
{//构造函数
length=0;
width=0;
height=0;
}
public void setLength(double length)
{//设置长
this.length=length;
}
public double getLength()
{//得到长
return length;
}
public void setWidth(double width)
{//设置宽
this.width=width;
}
public double getWidth()
{//得到宽
return width;
}
public void setHeight(double height)
{//设置高
this.height=height;
}
public double getHeight()
{//得到高
return height;
}
public double volumn()
{//求容积
double volumnValue;
volumnValue=length*width*height;
return volumnValue;
}
public double surfaceArea()
{//求表面积
double surfaceAreaValue;
surfaceAreaValue=length*width*2+width*height*2+height*length*2;
return surfaceAreaValue;
}
}编译成box.class文件后,把box.class文件放于目录
Tomcat 5.5\webapps\ROOT\WEB-INF\classes\first下
然后再编写JavaBeanTest.jsp代码:<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="first.*" %>
<HTML>
<BODY>
<jsp:useBean id="box" class="Box" scope="page">
</jsp:useBean>
<%
box.setLength(10);
box.setWidth(11);
box.setHeight(12);
out.println("在JSP中使用JavaBean<br>");
out.println("盒子的长度为:"+box.getLength()+"<br>");
out.println("盒子的宽度为:"+box.getWidth()+"<br>");
out.println("盒子的高度为:"+box.getHeight()+"<br>");
out.println("盒子的容积为:"+box.volumn()+"<br>");
out.println("盒子的表面积为:"+box.surfaceArea()+"<br>");
%>
</BODY>
</HTML>运行JavaBeanTest.jsp出现以下错误:HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: /55/javaBeanJSP1.jsp(5,0) The value for the useBean class attribute Box is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1175)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1117)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2164)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2214)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2220)
org.apache.jasper.compiler.Node$Root.accept(Node.java:457)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2164)
org.apache.jasper.compiler.Generator.generate(Generator.java:3322)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:296)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:299)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.23 logs.
--------------------------------------------------------------------------------Apache Tomcat/5.5.23本人试过把box.java的“package first;”语句去除,也试过把JavaBeanTest.jsp中的<%@ page import="first.*" %>改成<%@ page import="first.box" %>,还是出错。
请高手指教,感激不尽!
解决方案 »
- struts2.0中 如何动态控制<s:textfield>readonly 属性
- android Json里的数据怎样传递到html里
- Hibernate多个关联关系添加的问题。
- js如何做一个特效?
- 使用JSP:useBean的一些问题
- myeclipse维护问题???
- mysql中Select中SUM用法的问题,请赐教!
- 关于网站地图的问题
- JBuilder7+Tomcat4.0调试运行Servlet通过,想copy到其它服务器下,tomcat应做哪些设置?
- 当字节字符(两个当字节字符为一个汉字)在 JSP 页面如何显示
- 大哥大姐们,求一个网上二级VB考试的源程序界面和代码
- 高分求如何在jsp中如何把excel转成html页面输出?
<jsp:useBean id="box" class="first.Box" scope="page">
</jsp:useBean>
不如从新建一个目录test,如下:
Tomcat 5.5\webapps\test\WEB-INF\classes\first
\web.xml
test\JavaBeanTest.jsp
还有,听说编译过Box.java后要重起tomcat,
还不行的话,删除Tomcat 5.5\work\Catalina的Catalina文件夹,在启动tomcat
然后拷贝你的Box.class到first下
重起tomcat
package first;
.
.
.
编译成功后将会有一个first文件夹,下面有student.class,然后的first文件夹放在classes目录下面
使用<jsp:useBean id="student" class="first.student" scope="page">则可以了
<jsp:useBean id="Box" class="first.Box" scope="page"></jsp:useBean>
便行。
问题解决了,谢谢大家!