我写了一个非常简单的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
答案 0 :(得分:4)
找不到课程Model
。
尝试类似:
<%@page import="somepackage.Model"%>
答案 1 :(得分:4)
永远不要将任何类放在默认包中。包中的类无法访问默认包,并且由于Tomcat在servlet类中转换了JSP,并且此类位于包中,因此无法访问Model类。
一旦它在一个定义良好的包中,你就必须导入它,正如mschonaker在他的回答中所示:
<%@page import="somepackage.Model"%>