无法连接到Netbeans中的servlet文件

时间:2016-09-24 13:58:09

标签: java tomcat servlets

我正在尝试执行一个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>

当我运行这个程序时,我正在获取可以选择颜色的页面:

screenshot

但点击提交按钮后我收到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>

my app "ServletExample"

2 个答案:

答案 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">