0

我使用 tomcat 7 和 javac 编译器开发了一个小型 Web 应用程序,我成功编译了我的 servlet 并正确部署了类文件。我的 html 表单会运行,但是当我单击 html 上的提交按钮时,它应该运行 servlet,然后在页面上打印一些建议,但会产生此错误:

HTTP 状态 404 - HTTP 状态 404 - /beer-v1/%E2%80%9DSelectBeer.do%E2%80%9D


类型状态报告

消息 /beer-v1/%E2%80%9DSelectBeer.do%E2%80%9D

描述 请求的资源不可用。


Apache Tomcat/7.0.34


类型状态报告

消息 /beer-v1/SelectBeer.do

描述 请求的资源不可用。


Apache Tomcat/7.0.34

这是我的html代码:

    <h1 align=”center”&gt;Beer Selection Page</h1>

    <form method=”POST”

          action=”SelectBeer.do”&gt;

        Select beer characteristics<p>

            Color:

            <select name=”color” size=”1”&gt;

                <option value=”light”&gt; light </option>

                <option value=”amber”&gt; amber </option>

                <option value=”brown”&gt; brown </option>

                <option value=”dark”&gt; dark </option>

            </select>

            <br><br>

        <center>

            <input type="submit" value="ok" />

        </center>

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

和我的部署描述符:

<servlet>

    <servlet-name>Ch3 Beer</servlet-name>

    <servlet-class>com.example.web.BeerSelect</servlet-class>

</servlet>

<servlet-mapping>

    <servlet-name>Ch3 Beer</servlet-name>

    <url-pattern>/SelectBeer.do</url-pattern>

</servlet-mapping>

最后我的servlet:

package com.example.web;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class BeerSelect extends HttpServlet {

public void doPost(HttpServletRequest request,

        HttpServletResponse response)

        throws IOException, ServletException {

    response.setContentType("text/html");

    PrintWriter out = response.getWriter();

    out.println("Beer Selection Advice<br>");

    String c = request.getParameter("color");

    out.println("<br>Got beer color " + c);
 }
}

我正在使用 Java 6 javac 编译器请帮帮我。

4

2 回答 2

1

不要忘记在您的 html 文件的 head 部分明确声明适当的字符集。

<head><meta charset="utf-8"> <title>... </head>

%E2%80%9D 表示右双引号字符的十六进制表示法(使用 UTF-8)。因此,似乎 Tomcat 正在尝试将“SelectBeer.do”`转换为 UTF-8,但没有发现编码声明。

希望能帮助到你。

于 2014-12-20T19:20:26.703 回答
0

以如下形式编写动作并再次测试

action="/SelectBeer.do"</p>

于 2013-08-08T11:13:54.987 回答