Caused by: java.lang.IllegalArgumentException:
The servlets named [manageServlet] and [Servlet.manageServlet]
are both mapped to the url-pattern [/manageServlet] which is not permitted
同一個 URL 模式 /manageServlet 被映射了兩次:
@WebServlet("/manageServlet") (或 @WebServlet(name="manageServlet", urlPatterns="/manageServlet"))。web.xml 中寫了 <servlet> + <servlet-mapping> 指向相同 URL。Servlet 3.0+ 容器 (Tomcat 7+) 會同時處理註解與 web.xml,導致衝突。
@WebServlet(name = "ManageServlet", urlPatterns = {"/manageServlet"})
public class ManageServlet extends HttpServlet { ... }
刪除 web.xml 中對應的 <servlet> 和 <servlet-mapping> 區塊。
<!-- web.xml -->
<servlet>
<servlet-name>manageServlet</servlet-name>
<servlet-class>com.example.ManageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>manageServlet</servlet-name>
<url-pattern>/manageServlet</url-pattern>
</servlet-mapping>
在 Java 類別上**移除** @WebServlet 註解。
manageServlet,確認只出現一次映射。Initializing Servlet 'manageServlet' 是否出現兩次。原則:註解與 web.xml 二擇一,切勿混用同一 Servlet 的映射配置。