Servlet应该有一个映射,无法解析Servlet

时间:2017-04-01 07:08:46

标签: java servlets intellij-idea web.xml

当我打开我的项目时,我收到错误:

  

Servlet应该有一个映射

和另一个错误:

  

无法解析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>

2 个答案:

答案 0 :(得分:8)

已知问题已在当前IntelliJ IDEA版本中修复。对于旧版本there is a workaround

  

请打开项目结构|模块| Web Facet并添加web.xml作为部署描述符。

答案 1 :(得分:0)

作为一种解决方法,请打开项目结构->模块-> Web Facet ,然后将您的web.xml添加为部署描述符。

enter image description here