我正在尝试执行一个servlet程序,它选择一种颜色并通过servet显示它。我已经正确配置了tomcat服务器。但是当我尝试运行代码时,index.HTML文件正常打开但是当我点击提交按钮时,它会打开我的servlet文件,它将显示我选择的颜色。但是,而不是获取我的servlet我得到404错误。这是下面给出的代码。有什么建议吗?
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ColorPostServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
String color = request.getParameter("color");
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
pw.println("<B>The Selected Color is:");
pw.println(color);
}
}
这是我的html文件
<html>
<head>
<title> </title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<center>
<form name="Form1"
method="post"
action="http://localhost:8084/ServletExample/ColorGetPost">
<B>Color:</B>
<select name="color" size="1">
<option value="Red">Red</option>
<option value="Blue">Blue</option>
<option value="Green">Green</option>
</select>
<br><br>
<input type="submit" value="Submit">
</form>
</center>
</body>
</html>
当我运行这个程序时,我正在获取可以选择颜色的页面:
但点击提交按钮后我收到404错误。
servlet的xml文件
<servlet>
<servlet-name>ColorPostServlet</servlet-name>
<servlet-class>ServletExample.ColorPostServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ColorPostServlet</servlet-name>
<url-pattern>/ColorPostServlet</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
答案 0 :(得分:0)
您的表单有错误的操作网址。
<form name="Form1"
method="post"
action="http://localhost:8084/ServletExample/ColorGetPost">
它应该指向servlet url:
<form name="Form1"
method="post"
action="http://localhost:8084/ServletExample/ColorPostServlet">
所以基本上:action =“http:// localhost:[Port] / [ ProjectName ] / [ ServletName ]”
答案 1 :(得分:0)
它必须作为评论,但由于缺乏足够的声誉而作为答案发布。
您希望将表单提交给ColorPostServlet,因此表单操作必须是ColorPostServlet(在url-pattern中指定的内容)
<form name="Form1"
method="post"
action="ColorPostServlet">