一尘不染

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

jsp

我有以下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,则容器找不到该类。

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


阅读 352

收藏
2020-06-08

共1个答案

一尘不染

缺省包中的类对于本身位于包中的类是不可见的。你 必须
每当你想将其导入另一类是本身就是一个包里面把类的包装。从技术上讲,当编译JSP文件时,容器将自动生成一个.class文件,该文件本身位于包中。因此,您不能从JSP中的默认包中导入类。

因此,每当您希望能够在任何地方重用一个类时,都必须将其放在具体的包中,而不是在默认包中。作为练习,您自己创建两个类,一个在包装内,另一个不在包装内。现在,在带有包装的包装内,尝试import使用不带包装的包装。您会看到不可能,并且代码也不会编译。servlet容器在“后台”遇到完全相同的问题。

也可以看看:

2020-06-08