完全相同的一个JavaBean测试文件useBean.jsp内容如下:
<%@ page contentType="text/html; charset=gb2312" import="test.SimpleBean" %>
<HTML>
<HEAD>
<TITLE>Reusing JavaBeans in JSP</TITLE>
</HEAD><BODY>
<CENTER>
<TABLE BORDER=1>
<TR><TH>在JSP页面中重用JavaBeans组件</th></tr></TABLE>
</CENTER>
<P><jsp:useBean id="test" class="test.SimpleBean"/>
<jsp:setProperty name="test" property="message" value="welcome to use JavaBeans com"/>
<jsp:getProperty name="test" property="message"/></BODY>
</HTML>其中SimpleBean.java内容如下:
package test;public class SimpleBean{
private String message;

public String getMessage(){
return message;
}

public void setMessage(String mess){
message = mess;
}
}在tomcat的webapps下有两个文件夹myjsp 及JSP
方式一
myjsp\useBean.jsp
myjsp\WEB-INF\classes\test\SimpleBean.java
myjsp\WEB-INF\classes\test\SimpleBean.class方式二
JSP\02\useBean.jsp
JSP\02\WEB-INF\classes\test\SimpleBean.java
JSP\02\WEB-INF\classes\test\SimpleBean.class在IE7.0地址栏输入 http://localhost:8888/myjsp/usebean.jsp 运行正确;
在IE7.0地址栏输入 http://localhost:8888/JSP/02/usebean.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: org.apache.jasper.JasperException: Unable to load class for JSP
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:156)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause org.apache.jasper.JasperException: Unable to load class for JSP
org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:620)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.lang.ClassNotFoundException: org.apache.jsp._02.usebean_jsp
java.net.URLClassLoader$1.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(Unknown Source)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:134)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:618)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.
为什么这样,是否是因为路径问题?

解决方案 »

  1.   

    JSP放哪无所
    WEB-INF要放在应用根目录下
    JSP/WEB-INF/classes
    要不还要改配置
      

  2.   

    在IE7.0地址栏输入 http://localhost:8888/myjsp/usebean.jsp 运行正确; 
    在IE7.0地址栏输入 http://localhost:8888/JSP/02/usebean.jsp 运行错误; 
    上面这两个用的是不同的servlet,myjsp底下有WEB-INF/classes/test/SimpleBean.class而另外一个底下没有
      

  3.   


    JSP/02/目录下也有WEB-INF/classes/test/SimpleBean.class的文件的.
      

  4.   


    目录没有错的啊, 使用JavaBean需要特殊配置吗, myjsp目录也没有另外加配置确可以运行.
      

  5.   

    JSP/02/目录下也有WEB-INF/classes/test/SimpleBean.class的文件的.应当是:JSP目录下,不是JSP/02/
      

  6.   

    <%@ page contentType="text/html; charset=gb2312" import="test.SimpleBean" %> 
    你这里import的类路径是不是搞错?
      

  7.   

    WEB-INF 文件夹不是应当跟.jsp文件在同一个目录的吗? JSP/和JSP/02/只是多加了一个文件夹而已哦.不过我把usebean.jsp 和 WEB-INF/classes/test/SimpleBean.class移到JSP文件下确实可以运行为什么会这样只是多一个02/文件夹, 在02文件下其他jsp文档 servlet照样可以运行,唯独javaBean不可以.