gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 05:15:45 24 4
gpt4 key购买 nike

我有以下 JSP:

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

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

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

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

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

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

最佳答案

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

因此,每当您希望能够在任何地方重用某个类时,就必须将其放置在具体包中,而不是默认包中。作为练习,您自己创建两个类,一个位于包内,另一个不在包内。现在,在带包的版本中,尝试导入并使用不带包的版本。您会发现这是不可能的,并且代码无法编译。 servletcontainer 在“底层”遇到了完全相同的问题。

另请参阅:

<小时/>

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

关于java - Tomcat找不到直接放在classes文件夹下的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7674500/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com