java - Servlet 应该有映射,不能解析 Servlet

标签 java servlets intellij-idea web.xml

当我打开我的项目时,出现错误:

Servlet should have a mapping



和另一个错误:

Cannot resolve Servlet



enter image description here

但是在下面的代码中,您可以看到每个 servlet 都有其映射:

在我的 web.xml ,我有8个servlet,每个servlet都有对应的映射:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>loginservlet</servlet-name>
    <servlet-class>com.sam.servlet.loginservlet</servlet-class>
  </servlet>
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>changeservlet</servlet-name>
    <servlet-class>com.sam.servlet.changeservlet</servlet-class>
  </servlet>
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>Searchservlet</servlet-name>
    <servlet-class>com.sam.servlet.Searchservlet</servlet-class>
  </servlet>
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>borrowservlet</servlet-name>
    <servlet-class>com.sam.servlet.borrowservlet</servlet-class>
  </servlet>
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>mealselectservlet</servlet-name>
    <servlet-class>com.sam.servlet.mealselectservlet</servlet-class>
  </servlet>
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>mealaddservlet</servlet-name>
    <servlet-class>com.sam.servlet.mealaddservlet</servlet-class>
  </servlet>
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>mealdeletedservlet</servlet-name>
    <servlet-class>com.sam.servlet.mealdeletedservlet</servlet-class>
  </servlet>
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>mealupdateservlet</servlet-name>
    <servlet-class>com.sam.servlet.mealupdateservlet</servlet-class>
  </servlet>

<!-- mapping -->

  <servlet-mapping>
    <servlet-name>loginservlet</servlet-name>
    <url-pattern>/loginservlet</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>changeservlet</servlet-name>
    <url-pattern>/changeservlet</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Searchservlet</servlet-name>
    <url-pattern>/Searchservlet</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>borrowservlet</servlet-name>
    <url-pattern>/borrowservlet</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>mealselectservlet</servlet-name>
    <url-pattern>/mealselectservlet</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>mealaddservlet</servlet-name>
    <url-pattern>/mealaddservlet</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>mealdeletedservlet</servlet-name>
    <url-pattern>/mealdeletedservlet</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>mealupdateservlet</servlet-name>
    <url-pattern>/mealupdateservlet</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

最佳答案

这是一个已知问题,已在当前 IntelliJ IDEA 版本中修复。对于旧版本 there is a workaround :

please open Project Structure | Modules | Web Facet and add your web.xml as Deployment Descriptor.

关于java - Servlet 应该有映射,不能解析 Servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43153904/

相关文章:

java - 将 Ldap 组映射到 tomcat 中应用程序的角色

java - 如何知道表单提交是否成功?

android - 是否可以设置一个IntelliJ Android项目以与Maven一起使用?

Intellij IDEA 中的 Java EE 部署

java - 如何用给定值填充数组

java - Apache Spark 数据集 API - 不接受架构 StructType

Javascript 无法在 WebView 中工作 - Android

java - 如何在我的 Android 应用程序中截取屏幕截图

java - 使用 servlet 接收音频文件

java - 是否有任何标准方法可以使用 gradle 从 intellij 运行 java 项目?