You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tomcat 10中Servlet加法程序请求方法不支持问题排查求助

两数加法Servlet程序错误排查及修复方案

错误原因分析

你遇到的错误“The method received in the request-line is known by the origin server but not supported by the target resource”,核心触发原因有两个:

  • Servlet的service方法参数顺序不符合规范
  • web.xml配置与Tomcat 10的Jakarta EE规范不兼容

具体修复步骤

1. 修正Add.java中service方法的参数顺序

HttpServlet的service方法标准参数顺序是HttpServletRequest在前,HttpServletResponse在后,你写反了参数顺序,导致Tomcat无法识别正确的请求处理方法。修改后的代码如下:

package com.ali;

import java.io.IOException;
import java.io.PrintWriter;

import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

public class Add extends HttpServlet {
    // 修正参数顺序:req在前,res在后
    public void service(HttpServletRequest req, HttpServletResponse res) throws IOException {
        int i, j, k;
        i = Integer.parseInt(req.getParameter("n1"));
        j = Integer.parseInt(req.getParameter("n2"));
        k = i + j;
        PrintWriter out = res.getWriter();
        out.println("result: " + k);
    }
}

2. 更新web.xml适配Tomcat 10规范

Tomcat 10基于Jakarta EE 9规范,不再使用旧的Java EE命名空间,需要将web.xml版本升级到4.0,并替换为Jakarta官方命名空间。修改后的配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>ac</servlet-name>
        <servlet-class>com.ali.Add</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ac</servlet-name>
        <url-pattern>/add</url-pattern>
    </servlet-mapping>
</web-app>

3. (可选)修正HTML表单显示文字

你的index.html中输入框前的标注文字写成了ne1/ne2,可以修正为n1/n2让显示更准确(不影响功能,但更规范):

<!DOCTYPE html>
<html>
<body>
    <form action="add">
        n1 : <input type="number" name="n1"><br>
        n2 : <input type="number" name="n2"><br>
        <input type="submit">
    </form>
</body>
</html>

验证流程

  1. 重新编译Add.java,确保生成的class文件放置在WEB-INF/classes/com/ali目录下
  2. 重启Tomcat服务器
  3. 访问index.html页面,输入两个数字后提交,即可正常显示计算结果

内容的提问来源于stack exchange,提问作者ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 04:36:13