我使用tomcat 7和javac编译器开发了一个小型Web应用程序,我成功编译了我的servlet并正确部署了类文件。我的html表单运行但是当我单击html上的提交按钮时,它应该运行servlet,然后在页面上打印一些建议但是产生了这个错误:
HTTP状态404 - HTTP状态404 - /beer-v1/%E2%80%9DSelectBeer.do%E2%80%9D
输入状态报告
message /beer-v1/%E2%80%9DSelectBeer.do%E2%80%9D
说明请求的资源不可用。
Apache Tomcat / 7.0.34
输入状态报告
message /beer-v1/SelectBeer.do
说明请求的资源不可用。
Apache Tomcat / 7.0.34
这是我的HTML代码:
<h1 align=”center”>Beer Selection Page</h1>
<form method=”POST”
action=”SelectBeer.do”>
Select beer 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>
<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编译器 请帮帮我。
答案 0 :(得分:1)
不要忘记在html文件的head部分明确声明适当的charset。
<head><meta charset="utf-8"> <title>... </head>
%E2%80%9D表示右双引号字符的十六进制表示法(使用UTF-8)。因此,Tomcat似乎试图将“SelectBeer.do”转换为UTF-8,但没有找到编码声明。
希望它有所帮助。
答案 1 :(得分:0)
以下面的形式写下行动并再次测试
行动=” / SelectBeer.do”