一尘不染

是什么导致此jsp错误500?

jsp

我写了一个非常简单的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>

我的模型课=>

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

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

我看到的错误:

类型例外报告

信息

描述服务器遇到内部错误(),导致服务器无法满足此请求。

例外

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

在jsp文件中的第14行出现错误:/show.jsp无法解析模型11:12:<%13:try
{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)

note注意在Apache Tomcat / 5.5.33日志中可以找到根本原因的完整堆栈跟踪。


阿帕奇雄猫


阅读 265

收藏
2020-06-10

共1个答案

一尘不染

切勿将任何类放入默认包中。包中的类无法访问默认包,并且由于Tomcat在Servlet类中转换了JSP,并且该类在包中,因此它无法访问Model类。

一旦将其放入定义明确的软件包中,就必须将其导入,如mschonaker在他的回答中所示:

<%@page import="somepackage.Model"%>
2020-06-10