急!JSP调用javabean老是出错!

来源:百度知道 编辑:UC知道 时间:2024/05/28 15:22:36
我在自学jsp,用的是tomcat5.0,需要用的文件都是放在D:\Tomcat 5.0\webapps\jsp-examples这个里面的,还有这个文件夹jsp-examples\WEB-INF\classes\JavaBean
我有2个文件,一个counter.jsp
<jsp:useBean id="counter" scope="application" class="JavaBean.Counter"/>
<br>
该网页已经被访问了
<%
out.println("counter.getCount()");
counter.addCount();
%>次。

还有个Counter.java
public class Counter
{
int Count=1;
public void Counter()
{
}
public void addCount()
{
Count++;
}
public int getCount()
{
return Count;
}
}
我把编译好的.class文件放在jsp-examples\WEB-INF\classes\JavaBean
里面。但是我在浏览器里面老是出现错误:
exception

javax.servlet.ServletException: JavaBean/Counter (wrong name: Counter)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:244)
javax.servlet.http.HttpServlet.servic

好像发现问题了。
1、编译好的javabean所放的位置不对。
在Counter.java 中没有发现楼主用到什么包,所以jsp-examples\WEB-INF\classes\JavaBean 中的JavaBean 没必要,如果javabean没使用到什么包的话,直接放在classes下面就行了。如果非要jsp-examples\WEB-INF\classes\JavaBean 这个路径的话,很简单,在Counter.java 的第一行中加入package JavaBean;并重新编译放好就行了。
2、无关紧要的问题。
<%
out.println("counter.getCount()");
counter.addCount();
%>次。
照样的代码我估计就只会打印出counter.getCount()了。在out.println()中,加了双引号的话会被当做字符串输出。所以可以把双引号去掉或者换成<%=counter.getCount()%>。
至于<% %>之间的那两句代码的顺序,因为我这没装工具所以不好调试,所以还是楼主自己试试看吧。

-------------
主要的问题就是你那javabean没放好。上面已经说到,有包的要放在相应包里面,然后一起放在WEB-INF\classes\下面,没有的话自己建一个。
如果tomcat本身已经配置正确,做JSP的话就不用做些什么修改。如果你是用eclipse、myeclipse等IDE来开发的话javabean之类的话工具会自动帮你放好。不过当javabean发生修改、编译后最好重启下tomcat,这样服务器就会承认你“新版本”的javabean。

调用javaBean的方式不对,为什么不用<%=counter.getCount()%>这样可以打印出结果的!

把这两个文件放在jsp-examples\src 下,然后再把两个class文件放在jsp-examples\WEB-INF