java - 存在 "@WebServlet"注释时出现 Servlet 映射错误

标签 java xml servlets

我的 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("/登录")

就在我的 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 使用相同的映射,您可以使用其中之一。应用服务器将其视为重复的 url 映射。

基本上,在 web.xml 中声明 servlet 和 servlet-mapping 元素相当于使用 @WebServlet 注释 servlet 类。

关于java - 存在 "@WebServlet"注释时出现 Servlet 映射错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24740929/

相关文章:

java - 在其他 JSONObject 中处理 JSONObject

c++ - g++ 编译对外部 hpp 文件的 undefined reference

c# - .NET compact framework - 将文件放在哪里以便模拟器可以访问它们

html - 响应式设计中 div 的垂直居中

java - 从 Java ResultSet 检查 null int 值

java - StringTemplate 检查数组在 java 中是否为空

xml - 如何使用 XQuery/T-SQL 解析包含嵌套默认命名空间的客户 xml

java - 从服务器构建 View - AJAX、JAVA EE

java - getCookies() 获取 cookie 和 session

java - 将 JQuery 添加到 java servlet