2012-02-02 35 views
1

我想要一些信息来准备第一个servlet程序。为什么要在servlet中使用public修饰符

任何人都可以让我知道为什么我们声明用户定义的类在servlet的公共以及init()service()destroy()也为公众。

我们可以使用其他访问修饰符,那么它们是哪些?为什么只使用公共修饰符?

回答

2

我们必须声明servlet类和方法init,service和destroy是公有的,因为服务器应该能够访问它们。这与使用访问修饰符public声明的主要方法非常相似。

另一个原因是在HttpServletGenericServlet类中,这三种方法是公共的,它们的访问级别在继承类中不能减少。

+1

谢谢。 ..但为什么只有公众和它不能得到保护.. – user460920 2012-02-02 19:02:32

+0

只有公共成员可以被外界访问。受保护的成员只能在子类中访问。 – 2012-02-02 19:06:13

+0

@DwB你说得对。只有服务方式是公开的。我们可以保护其他方法。在这个问题中,只有三个方法被问到应该公开的init,service和destroy。请再检查一次。 – 2012-02-02 19:32:11

1

它们也可以被保护。看看HttpServlet - 所有这些方法在那里都受到保护。这个servlet的入口点是service(..)方法 - 它是唯一一个可能需要公开的方法(但我不知道这样的要求 - 容器可以用反射调用服务方法)

+0

但是,如果你使用反射,那么作用域并不重要。右? – Cratylus 2012-02-02 19:09:55

+0

是的。所以他们可以得到保护。他们通常不是,因为你通常不需要他们。 – Bozho 2012-02-02 19:10:49

相关问题