是什么导致这个jsp错误500?

时间:2011-07-10 08:39:35

标签: jsp tomcat servlets

我写了一个非常简单的jsp问题,从类中获取一个数字并显示它但是我遇到了错误500.

我在tomcat 5.5中使用eclipse:

 <%@page import="java.io.IOException"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<h1>number of shown :</h1>
<body>
<%
try{
out.print(Model.getCount());
}
catch(IOException k)
{
    out.println("Eror");
}
%>
</body>
</html>

我的Model class =&gt;

public class Model {
    static int number=0;
    public static int getCount()
    {
        number++;
        return number;
    }
}

我的任何模型类都是默认包。

我看到的错误:

  

输入例外报告

     

消息

     

描述服务器遇到了   内部错误()阻止了它   完成此请求。

     

例外

     

org.apache.jasper.JasperException:   无法为JSP编译类:

     

在第14行中出现错误   jsp文件:/show.jsp模型不能   已解决11:12:&lt;%13:尝试{   14:out.print(Model.getCount()); 15:}   16:catch(IOException k)17:{

     

堆栈跟踪:     org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:93)     org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)     org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:451)     org.apache.jasper.compiler.Compiler.compile(Compiler.java:328)     org.apache.jasper.compiler.Compiler.compile(Compiler.java:307)     org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)     org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:565)     org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:309)     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308)     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)     javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

     

注意根的完整堆栈跟踪   原因在Apache中可用   Tomcat / 5.5.33日志。

     
     

Apache Tomcat

2 个答案:

答案 0 :(得分:4)

找不到课程Model

尝试类似:

          <%@page import="somepackage.Model"%>

答案 1 :(得分:4)

永远不要将任何类放在默认包中。包中的类无法访问默认包,并且由于Tomcat在servlet类中转换了JSP,并且此类位于包中,因此无法访问Model类。

一旦它在一个定义良好的包中,你就必须导入它,正如mschonaker在他的回答中所示:

<%@page import="somepackage.Model"%>