0

servlet为一个简单的电子书店编写了一个 java,由于某种原因,我不明白为什么它不能编译。下面我粘贴了给我错误的代码部分:

public void int(ServletConfig conf) throws ServletException {
        super.init(conf);
}

发生的错误如下所示:

  1. <identifier> expected -> (public void ^int(Servlet..... )...)
  2. '(' expected -> piblic void **i**nt
  3. illegal start of type -> public void int**(**Servlet....
  4. ';' expected -> public void int(ServletConfig^conf)...
  5. <identifier> expected -> public void int(ServletConfig conf**)**...
  6. illegal start of type -> public void int(ServletConfig conf) **throws**....
  7. ';' expected -> public void int(ServletConfig conf) throws ServletException^

我真的不明白,这应该工作。如果需要,我将发布整个源文件。

任何建议都可以。

4

4 回答 4

2

public void int 不能选择 void 或 int;您应该重命名方法名称,因为 int 是保留字

于 2013-06-21T09:56:50.540 回答
2

您不能int在 Java 中使用关键字作为标识符。这特定于 Java 中的所有代码。我猜您正在尝试覆盖该init(ServletConfig)方法:

public void init(ServletConfig conf) throws ServletException {
    super.init(conf);
}

这对于学习目的来说是可以的,但理想情况下,您应该覆盖 Servlet 中的无参数init(),以免您做一些使 Servlet 生命周期变得混乱的事情。init(ServletConfig)除非绝对必要,否则不要覆盖。

于 2013-06-21T09:59:23.567 回答
2
public void **init**(ServletConfig conf) throws ServletException {
        super.init(conf);
}

它应该是 init,而不是 int。您正在从此 init 方法调用超类的 init 方法。

这是您在 servlet 中访问 ServletConfig 对象的方法之一。

您可以做的其他方法是致电

ServletConfig conf = getServletConfig();

加载 servlet 实例时调用 init 方法。

于 2013-06-21T09:59:59.650 回答
0

当你定义你的方法时

public void int(ServletConfig conf)

公共:可访问性

无效:返回类型

int : 方法名

ServletConfig : 方法接受的参数类型

conf : 传递的参数

现在不会有任何问题,并且该方法可以完美运行

但是 java 有保留的关键字,不能用于任何其他目的

在您的情况下int,您将其用作方法名称,

int是用于定义 int 类型变量的保留键盘

进一步说

在您的 servlet 生命周期中

你有三种方法,

1:初始化

2:服务

3:破坏

显然,您正在尝试初始化调用 init 方法的 servlet

您面临的错误是一个简单的 TYPO 错误,

只需将您的 initilize 方法从int重命名为init

于 2013-06-21T10:19:38.860 回答