html - Java提交表单时出现404错误

标签 html eclipse tomcat servlets http-status-code-404

<分区>

我正在开发简单的网络应用程序。我在 Eclipse Mars 中创建了 Dynamic Web Project,我使用的是 Java 1.8 和 Tomcat v8.0.36。 我创建了一个简单的表单:

<!DOCTYPE html>
<html>
<head>
<title>Coffee Advice Page</title>
</head>
<body>
<form action=”SelectCoffee.do”>
Select Coffee characteristics<p>
Color:
<select name=”color” size=”1”>
<option value=”light”> light </option>
<option value=”amber”> amber </option>
<option value=”brown”> brown </option>
<option value=”dark”> dark </option>
</select>
</br></br>

<input type="submit" value="Submit">

</form>
</body>
</html>

一个小服务程序:

package com.example.web;

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

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@SuppressWarnings("serial")
public class CoffeeSelectionServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("Inside doGet()");
        PrintWriter printWriter = response.getWriter();
        printWriter.println("doGet() is working fine!");

    }

}

网络.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    id="WebApp_ID" version="3.1">
    <display-name>CoffeeAdvice</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <!-- <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file> -->
    </welcome-file-list>

    <servlet>
        <servlet-name>Servlet1</servlet-name>
        <servlet-class>com.example.web.CoffeeSelectionServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>Servlet1</servlet-name>
        <url-pattern>/SelectCoffee.do</url-pattern>
    </servlet-mapping>

</web-app>

但是当我启动 Tomcat 服务器并提交此表单时,我收到带有查询字符串的 404 错误: http://localhost:8080/CoffeeAdvice/%C3%A2%E2%82%AC%C2%9DSelectCoffee.do%C3%A2%E2%82%AC%C2%9D?%E2%80%9Dcolor%E2%80%9D=%E2%80%9Dlight%E2%80%9D

这不是我想要的。 如果我直接从浏览器栏发出 GET 请求:

http://localhost:8080/CoffeeAdvice/SelectCoffee.do?color=light

它工作得很好!

请告诉我为什么生成的查询字符串会像这样扭曲以及我必须更改的内容。

如有任何帮助,我们将不胜感激!

最佳答案

您在表单操作中使用的双引号不正确

我取消转义了你现在的 url

"http://localhost:8080/CoffeeAdvice/à ¢â¬ÂSelectCoffee.doââ¬Â?âcolorâ=âlightâ"

修正你的双引号。

关于html - Java提交表单时出现404错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37987373/

相关文章:

javascript - HTML Javascript 输入字段是在单选按钮选中/单击时创建的

html - 表单 HTML5 和 Bootstrap 3 中字段的组织

android - Eclipse 无法识别我的 Android 手机 (HTC Sensation)

java - 如何使用 Switch 语句设置 ImageIcon

tomcat - 无法从 Intellij Idea 运行 Tomcat

java - 0 :25:01, 819 警告 [HtmlImageRendererBase] 缺少 ALT 属性:j_id113

javascript - 在 div 内水平滚动

php - 有没有办法将这 3 个查询合二为一

java - Eclipse Java IDE JUnit5 : junit. jupiter.api.Assertions 无法访问

java - Tomcat服务器默认页面查询