是否确定不与@WebListener(不像@WebServlet)指定类的名称?

问题描述 投票:0回答:1

我总要为@WebListener注释指定类名称,比如我有@WebServlet("/MyClassname")办?

在我的应用程序只是@WebListener工作正常,但我只有单一的ServletContextListener - 也许,如果我有几个会有所不同?

@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
...
}

@WebListener
public class InitWebAppServlet implements ServletContextListener {
...
}
servlets java-ee servlet-listeners
1个回答
0
投票

@WebServlet值不是一个类名。这是一个URL路径。当仅使用一个参数像你展示它是等价的:

@WebServlet(urlPatterns = {"/MyServlet"})

您的代码可以很容易地已:

@WebServlet("/bobsyouruncle")
public class MyServlet extends HttpServlet {
...
}

这意味着,你的URL /bobsyouruncle而不是/MyServlet访问你的servlet。更多细节见的WebServlet javadocs。请注意,注释,如果你只有它设置元素value一个参数。

所述@WebListener参数的可选值是对于听者的描述(见the WebListener javadocs)。这是,再次,不是一个类名。你可以有很多@WebListener类,只要你愿意,虽然通过使用标注方法,而不是web.xml方法,你不能保证在servlet容器中运行它们的顺序。

© www.soinside.com 2019 - 2024. All rights reserved.