繁体   English   中英

当出现“ @WebServlet”注释时,出现“ Servlet映射错误”

[英]Servlet Mapping Error appears when “@WebServlet” annotation is present

我的web.xml看起来像这样:

    <servlet>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>com.ajayramesh.jrecycled.servlets.Login</servlet-class>
    </servlet>

  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/login</url-pattern>
  </servlet-mapping>

我有一个名为Login.java的类,带有一个自动生成的注释,该注释说:

@WebServlet("/login")

就在我的HttpServlet类扩展声明上方。 当存在此批注时,尝试启动服务器时出现以下错误:

The servlets named [LoginServlet] and [com.ajayramesh.jrecycled.servlets.Login] are both mapped to the url-pattern [/login] which is not permitted

我的web.xml只有一个定义,只有一个web.xml 当我删除此注释时,服务器工作正常。 据我了解,注释不应该对程序的运行时间有影响,而只是为了优化编译? 附带说明一下,该批注的确切作用是什么?

注释和web.xml不能使用相同的映射,可以使用其中任何一个。 应用服务器将其视为重复的网址映射。

基本上,在web.xml中声明servlet和servlet映射元素等同于用@WebServlet注释servlet类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM