代码如下 
在tomcat的webapp目录下新建一个文件夹myCounter,Counter.jsp存放在myCounter 的WEB-INF层,Counter.class打包为beans也存放在WEB-INF层
package beans;
public class Counter{

private long counter;

public long getCounter(){
return counter;
} public void setCounter(long counter){
this.counter = counter + 1;
}
}
Counter.jsp<%@ page language="java" import="java.util.*" pageEncoding="gb2312" %>
<jsp:useBean id="counter007" class="beans.Counter" scope="application"></jsp:useBean>
<html>
<head><title>javaBean计数器</title></head>
<body>
<%
if(session.isNew())
{
long temp = counter007.getCounter();
counter007.setCounter(temp);
}
%>
<font size="2"><strong>本页展示的是利用javaBean实现的计数器</strong></br>
欢迎光临,你是本网站的第
<jsp:getProperty name="counter007" property="counter" />
个访客</br>
</font>
</body>
</html>
报错内容如下
org.apache.jasper.JasperException: /Counter.jsp(2,0) The value for the useBean class attribute beans.Counter 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:1200)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1155)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2338)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2388)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2394)
org.apache.jasper.compiler.Node$Root.accept(Node.java:489)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2338)
org.apache.jasper.compiler.Generator.generate(Generator.java:3374)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:210)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

解决方案 »

  1.   

    在JSP文件中应该使用<%@ import="beans.Counter">引入你所要使用的JavaBean
      

  2.   

    出现这种情况的问题有3点.
    1. 在编译 JSP 时(不是运行时),指定的 Bean 类没找到 
    2. Bean 虽然找到了,但是它不是 public 的,或者找到的 class 文件是 interface 或抽象类 
    3. Bean 类中没有 public 的默认构建函数 
      

  3.   

    <jsp:getProperty name="counter007" property="counter" />
    问题就在这里。应该用temp或getCounter()来赋值。而你这句等于
    Counter counter007=new Counter()
    property=counter007.counter;