Tomcat找不到直接放在classes文件夹下的类

我有以下JSP:

   The page count is:    

我在包foo有一个Counter类,它存储在:

C:\ Apache的Tomcat的6.0.32 \的webapps \神\ WEB-INF \class

容器可以从它的包foo找到类。

但是当我尝试直接在\WEB-INF\classes下添加一些其他类文件而不是在foo等任何特定包中添加时,容器找不到该类。

这是怎么造成的,如何解决?

默认包中的类对于包本身内的类是不可见的。 每当要将类导入到另一个类中时,您必须将该类放在一个包中,该类本身就在一个包中。 从技术上讲,当编译JSP文件时,容器将自动生成一个.class文件,该文件本身就在一个包中。 因此,您无法从JSP中的默认包中导入类。

因此,无论何时您希望能够在任何地方重用类,都必须将其放在具体的包中,而不是放在默认包中。 作为练习,自己创建两个类,一个在包内,另一个不在包内。 现在,在带有包的那个内部,尝试import并使用没有包的那个。 您将看到它不可能,代码将无法编译。 servletcontainer在“引擎盖下”遇到完全相同的问题。

也可以看看:

  • Java教程 – 课程:包

具体问题无关 :在JSP文件中编写原始Java代码是一种不好的做法 。 考虑学习和使用servlet 。