猿问

使用Tomcat 7的@WebServlet注释

使用Tomcat 7的@WebServlet注释

在我的应用程序中,我有一个servlet,在web.xml中定义如下:

<servlet>
    <display-name>Notification Servlet</display-name>
    <servlet-name>NotificationServlet</servlet-name>
    <servlet-class>com.XXX.servlet.NotificationServlet</servlet-class>
    <load-on-startup>1</load-on-startup></servlet><servlet-mapping>
    <servlet-name>NotificationServlet</servlet-name>
    <url-pattern>/notification/*</url-pattern></servlet-mapping>

在使用Tomcat 7之后,我想使用@WebServlet将完成这项工作的注释。
这是我做的方式:

@WebServlet( name="NotificationServlet", displayName="Notification Servlet", urlPatterns = {"/notification"}, loadOnStartup=1)public class NotificationServlet extends HttpServlet {

它不起作用。有人可以告诉我我做错了什么吗?


智慧大石
浏览 905回答 3
3回答

ibeautiful

您可能还想检查是否有两个带有相同名称注释的类:@WebServlet(name&nbsp;=&nbsp;"Foo",&nbsp;urlPatterns&nbsp;=&nbsp;{"/foo"})public&nbsp;class&nbsp;Foo&nbsp;extends&nbsp;HttpServlet&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;//...}和:@WebServlet(name&nbsp;=&nbsp;"Foo",&nbsp;urlPatterns&nbsp;=&nbsp;{"/bar"})public&nbsp;class&nbsp;Bar&nbsp;extends&nbsp;HttpServlet&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;//...}在这种情况下,其中一个servlet将无法工作。如果您不使用该名称,请将其保留,如@BalusC建议的那样。我得到了一个奇怪的行为,其中一个servlet只在更改和编译后才能正常工作,但在编译后没有更改就没有了。

慕工程0101907

此外,为了使用这些注释并编译代码,您必须在pom.xml中导入相应的依赖项,但是因为提供的“Servlet 3.0”兼容服务器已经具有此功能。<dependency> &nbsp;&nbsp;&nbsp;&nbsp;<groupId>javax.servlet</groupId> &nbsp;&nbsp;&nbsp;&nbsp;<artifactId>javax.servlet-api</artifactId> &nbsp;&nbsp;&nbsp;&nbsp;<version>3.0.1</version> &nbsp;&nbsp;&nbsp;&nbsp;<scope>provided</scope></dependency>
随时随地看视频慕课网APP

相关分类

SQL Server
我要回答