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

我有以下JSP:

<%@ page import="foo.*" %>
<html>
    <body>
        The page count is:
        <%=Counter.getCount()%>
    </body>
    </html>

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

C:\ apache-tomcat-6.0.32 \ webapps \ God \ WEB-INF \ classes

并且容器可以从其包foo中找到该类。

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

这是怎么引起的,我该如何解决?

java大神给出的解决方案

缺省软件包中的类对于本身位于软件包中的类是不可见的。无论何时要将其导入另一个本身位于包内的类中,都必须将其放入包中。从技术上讲,当编译JSP文件时,容器将自动生成.class文件,该文件本身就位于包中。因此,您不能从JSP中的默认包中导入类。
因此,每当您希望能够在任何地方重用一个类时,都必须将其放在具体的包中,而不是默认包中。作为练习,您自己创建两个类,一个在包装内,另一个不在包装内。现在,在带包装的包装内,尝试import并使用不带包装的包装。您会看到不可能,并且代码也不会编译。 servlet容器在“后台”遇到完全相同的问题。
也可以看看:

The Java Tutorial - Lesson: Packages

与具体问题无关:在JSP文件中编写原始Java代码是poor practice。考虑学习并使用servlets。

DataSourceTransactionManager和JndiObjectFactoryBean和JdbcTemplate的用途是什么? - java

以下的用途是什么:org.springframework.jdbc.core.JdbcTemplate org.springframework.jdbc.datasource.DataSourceTransactionManager org.springframework.jndi.JndiObjectFactoryBean <tx:annotatio…

Java日期格式解析 - java

我正在尝试通过JSON响应更改日期格式,但我一直在获取java.text.ParseException。这是来自服务器2015-02-03T08:37:38.000Z的日期,我希望它显示为2015/02/03这是yyyy-MM-dd。而我做到了。DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd�…

快速解析来自http://bit.ly链接的方法 - java

给定来自流的一系列URL,其中可能有数百万个bit.ly,google或tinyurl缩短了链接,那么解析这些URL以获得最终URL的最可扩展的方法是什么?一个多线程爬虫在每个短链接上执行HEAD请求,同时缓存已经解决的请求?是否已经有提供此服务的服务?还要考虑到不会被url缩短服务阻止。假设规模是每天缩短2000万个网址。 java大神给出的解决方案 Go…

bulit-in gradle插件的版本号是多少? - java

在我的gradle构建文件中,我有以下插件块plugins { `java-library` jacoco checkstyle } 这些都没有指定版本,但是一切正常。假定一个项目正在使用gradle 6.0和gradle包装器,但是系统已安装gradle 5.0。问题:如果我运行gradle wrapper ./gradlew build,将会执行grad…

重用代码循环遍历多维数组 - java

假设我有一个多维数组作为类的成员和许多方法,它们遍历数组的每个元素然后对其进行操作。代码可能看起来像这样:public class Baz { private Foo[][] fooArray = new Foo[100][100]; public Baz() { for (int i = 0; i < fooArray.length; i++) { …