我写了一个java文件一个jsp文件,在jsp文件中调用这个java文件,我编译java文件生成class文件,我把class文件放在了C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT\WEB-INF\classes\ch06 下面 其中C:\Program Files\Apache Software Foundation\Tomcat 6.0是Tomcat的安装路径, 我把jsp文件放在了C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT 下面
在地址栏输入http://localhost:8080/calculate.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:154)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:320)
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)
root cause org.apache.jasper.JasperException: Unable to load class for JSP
org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:600)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:142)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:320)
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)
root cause java.lang.ClassNotFoundException: org.apache.jsp.calculate_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:598)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:142)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:320)
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)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs.
哪位大虾能告诉我这是怎么回事? tomcat已经设置,对于jsp中如何调用JavaBean是一头雾水啊,
希望大家帮忙看一下哈 谢谢啦~~~~~
在地址栏输入http://localhost:8080/calculate.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:154)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:320)
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)
root cause org.apache.jasper.JasperException: Unable to load class for JSP
org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:600)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:142)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:320)
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)
root cause java.lang.ClassNotFoundException: org.apache.jsp.calculate_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:598)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:142)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:320)
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)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs.
哪位大虾能告诉我这是怎么回事? tomcat已经设置,对于jsp中如何调用JavaBean是一头雾水啊,
希望大家帮忙看一下哈 谢谢啦~~~~~
<%@ page contentType="text/html;charset=gb2312"%>
<jsp:useBean id="calculator" scope="request" class="ch06.SimpleCalculator">
<jsp:setProperty name="calculator" property="*"/>
</jsp:useBean><html>
<head>
<title>简单计算器</title>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
</head><body>
<p align=center><b>简单的计算器</b>
<hr>
计算结果:<%
try
{
calculator.calculate();
out.println(calculator.getFirst()+calculator.getOperator()+calculator.Second()+"="+calculator.getResult());
}catch(e){
out.println(e.getMessage());
}
%><hr>
<form action="calculate.jsp" method=get>
<table width="75%">
<tr>
<td align=right>第一个参数</td>
<td><input type=text name="first"></td>
</tr>
<tr>
<td align=right>操作符</td>
<td><select name="operator">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="\">\</option>
</select>
</td>
</tr>
<tr>
<td align=right>第二个参数</td>
<td><input type=text name="second"></td>
</tr>
<tr>
<td></td>
<td><input type=submit value="计算"></td>
</tr></table>
</body>
</html>[i]java文件package ch06;
public class SimpleCalculator{
//属性声明
private String first;
private String second;
private double result;
private String operator; /**
*以下是一些属性方法
*/
public void setFirst(String first)
{
this.first=first;
} public void setSecond(String second)
{
this.second=second;
}
public void setOperator(String operator)
{
this.operator=operator;
} public String getFirst(){
return first;
}
public String getSecond(){
return second;
} public String getOperator(){
return operator;
} //获得计算结果
public double getResult(){
return this.result;
}
/**
*根据不同的操作符进行计算
*/
public void calculate(){
double one=Double.parseDouble(first);
double two=Double.parseDouble(second);
try{
if(operator.equals("+"))result=one+two;
else if(operator.equals("-"))result=one-two;
else if(operator.equals("*"))result=one*two;
else if(operator.equals("/"))result=one/two;
}catch(Exception e){
System.out.println(e);
}
}
}
偶看错了
把calculate.jsp帖出来
private String second = "0";
private String operator = "+";看看
{
calculator.calculate();
out.println(calculator.getFirst()+calculator.getOperator()+calculator.Second()+"="+calculator.getResult());
}catch(Exception e){
out.println(e.getMessage());
}
。。老眼昏花,LZ不要斜体字,要是JSP和JAVA代码的话,用JAVA标签-->
改成private String first = "0";
private String second = "0";
private String operator = "+";之后还是不行呢
还有
这肯定是路径问题啊,
jsp找不到你的Class文件,所以很自然报错了,你把两个文件放在同一个目录下,
肯定就ok了,如果你代码写正确的话!~~!
C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT 这是错误的放法,不报错才怪~!~!
你的tomcat环境变量配置对了吗
C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT
为什么出错呢? 那应该怎么写呢?
建议你用myeclipse
其他的想法同楼主 array2010 一样,可以用ROOT作为目录,输入的路径或网址,以及文件内部的路径并没有出现错误。
C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT 路径没错。