起因是一个学弟发现的问题,他按照jsp教材上的示例代码写了一份jsp文件,运行时却显示500错误。页面提示如下:
HTTP Status 500 – Internal Server Error
HTTP Status 500 – Internal Server Error
Type Exception Report
Message An exception occurred processing JSP page [/bean.jsp] at line [10]
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
org.apache.jasper.JasperException: An exception occurred processing JSP page [/bean.jsp] at line [10]8: <%@ page import="cc.hydrion.MyBean" %>
9: <%@ page contentType="text/html;charset=UTF-8" language="java" %>
10: <jsp:useBean id="myBean" scope="request" type="cc.hydrion.MyBean"/>
……
往下看,程序抛出了一个InstantiationException异常,提示说找不到我们要的bean:
java.lang.InstantiationException: bean myBean not found within scope
报错的第十行代码,我们使用了jsp:useBean标签,设置了id、type、scope属性。经过测试后发现,如果同时设置了id+class或是id+type+beanName属性,则能正常运行,只有id+type时会报错。那这几种组合的区别在哪呢?
因为服务器运行时是会把jsp文件转换成java文件的,我们可以在服务器的文件目录中找到转换后的java文