404使用简单的java servlet / html表单

时间:2013-12-29 20:03:54

标签: java forms tomcat servlets

ED:这个问题不重复。所谓的副本没有提到我的控制台中的错误,并且在链接的问题中找不到我的问题的解决方案。

我正在使用derek banas's tutorials来学习servlet。或者至少,我正在努力!我提交表单时遇到404错误。

这是我的代码。首先,java类:

package helloservlets;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Lesson41
 */

@WebServlet
public class Lesson41 extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */ 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String usersName = request.getParameter("yourname");

        String theLang = request.getParameter("Language");

        int firstNum = Integer.parseInt(request.getParameter("firstnum"));
        int secondNum = Integer.parseInt(request.getParameter("secondnum"));
        int sumONum = firstNum + secondNum;

        response.setContentType("text/html");

        PrintWriter output = response.getWriter();

        output.println("<html><body><h3>Hello " + usersName);

        output.println("</h3><br />" + firstNum + " + " + secondNum);
        output.println(" = " + sumONum + "<br />Speaks " + theLang + "</body></html>");
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}

我的web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">
    <servlet>
        <servlet-name>Lesson41</servlet-name>
        <servlet-class>helloservlets.Lesson41</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Lesson41</servlet-name>
        <url-pattern>/Lesson41</url-pattern>
    </servlet-mapping>
</web-app>

和我的HTML:

<!DOCTYPE html>
<html>
<head>
<meta charset="US-ASCII">
<title>Insert title here</title>
</head>
<body>

    <form method="post" action="http://localhost:8080/Lesson41/">

        What's your name?<br /> <input name="yourname" /><br /> First
        Number <input name="firstnum" /><br /> Second Number <input
            name="secondnum" /><br /> <input type="hidden" name="Language"
            value="English" /><br /> <input type="submit" />

    </form>

</body>
</html>

在我的控制台中,我收到此警告:

WARNING: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Lesson41' did not find a matching property.

这是我得到的唯一警告。我用谷歌搜索并按照我发现here的建议,但它没有解决我的问题。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您确定表单中的网址是否正确? http://localhost:8080/Lesson41/ 如果您使用的是Eclipse,则默认情况下会将您的应用程序部署为http://localhost:8080/[Your-Project-Name-Here]/Lesson41/