嗨,我正在检查页面指令,但扩展页面指令不起作用。 下面是我的jsp页面
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ page extends="javapackage.TestClass" %> <!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> <body>Hai <% out.println(show()); %> </body> </html>
我的课是
package javapackage; public class TestClass { public String show(){ return "Welcome Prasad"; } }
它给我500错误 异常
org.apache.jasper.JasperException: java.lang.ClassCastException: org.apache.jsp.first_jsp cannot be cast to javax.servlet.Servlet org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:177) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) root cause java.lang.ClassCastException: org.apache.jsp.first_jsp cannot be cast to javax.servlet.Servlet org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:172) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
甚至我尝试了扩展HttpServlet的类,但都没有用。所以任何人都可以帮助我。我正在使用Tomcat 7, 谢谢
您需要阅读JSP规范,特别是JSP.11.2.4节,它为您与扩展一起使用的超类提出了许多要求,而您的问题中的超类都不满足这些要求。
…提供的超类: 如果协议是HTTP,则实现HttpJspPage;否则,实现JspPage。 Servlet接口中的所有方法都声明为final。 另外,提供的超类满足JSP页面作者的责任: Servlet API的service方法调用_jspService方法。 init(ServletConfig)方法存储配置,通过getServletConfig使它可用,然后调用jspInit。 destroy方法调用jspDestroy。
…提供的超类:
另外,提供的超类满足JSP页面作者的责任: