我有以下JSP:
<%@ page import="foo.*" %> <html> <body> The page count is: <%=Counter.getCount()%> </body> </html>
我的Counter包中有一个类,foo存储在:
Counter
foo
C:\ apache-tomcat-6.0.32 \ webapps \ God \ WEB-INF \ classes
并且容器可以从其包中找到类foo。
但是,当我尝试直接在\WEB-INF\classes而不是在任何特定的包(例如)下添加其他类文件时foo,则容器找不到该类。
\WEB-INF\classes
这是怎么引起的,我该如何解决?
缺省包中的类对于本身位于包中的类是不可见的。你 必须 每当你想将其导入另一类是本身就是一个包里面把类的包装。从技术上讲,当编译JSP文件时,容器将自动生成一个.class文件,该文件本身位于包中。因此,您不能从JSP中的默认包中导入类。
.class
因此,每当您希望能够在任何地方重用一个类时,都必须将其放在具体的包中,而不是在默认包中。作为练习,您自己创建两个类,一个在包装内,另一个不在包装内。现在,在带有包装的包装内,尝试import使用不带包装的包装。您会看到不可能,并且代码也不会编译。servlet容器在“后台”遇到完全相同的问题。
import