简体   繁体   中英

Simple servlet project (HTTP Status 404 error)

I want to create a servlet project.

My Java class is called AzpanaServlet.java , and it contains an inner class. (When I compile it, I have 2 class files).

My project is a simple application that receives a string input and does some stuff with it (not relevant).

When I press on the "submit" button I receive the following error:

HTTP Status 404 - /AzpanaServlet
Type Status report
Message /AzpanaServlet
Description The requested resource (/AzpanaServlet) is not available.
Apache Tomcat/6.0.18

Please help me if you can, I can't solve this much time. this is my Java code:

public class AzpanaServlet extends HttpServlet {
//
//Some functions 
//
//Inner class: public class oneChar{...}
//

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        /*
        * Get the value of form parameter
        */
        String name = request.getParameter("name");
        /*
        * Set the content type(MIME Type) of the response.
        */
        response.setContentType("text/html");
        String str = "";
        PrintWriter out = response.getWriter();
        ArrayList<Integer> list = new ArrayList<Integer>();
        try {
            list = mainmanu(name); //not relevant function.
        } catch (Exception e) {
              str  = e.toString();

            e.printStackTrace();
        }
        /*
        * Write the HTML to the response
        */
        out.println("<html>");
        out.println("<head>");
        out.println("<title> this is your answers</title>");
        out.println("</head>");
        out.println("<body>");
        if(str != ""){
            out.println(str);
        }
        else{
        for(int i = 0;i<=40;i++){
            out.println(list.get(i));
            out.println("<br>");

        }
        }
        out.println("<a href='form.html'>"+"Click here to go back to input page "+"</a>");
        out.println("</body>");
        out.println("</html>");
        out.close();

        }


        public void destroy() {

        }
    }

My web.xml code:

<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <servlet>
        <servlet-name>AzpanaServlet</servlet-name>
        <servlet-class>com.example.AzpanaServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>AzpanaServlet</servlet-name>
        <url-pattern>/AzpanaServlet</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>/form.html</welcome-file>
    </welcome-file-list>
</web-app>

My form.html code:

<html>
    <head>
    <title>Zeev's Project</title>
    </head>
    <body>
        <h1>Just Enter String</h1>
        <form method="POST" action="AzpanaServlet">
            <label for="name">Enter String</label>
            <input type="text" id="name" name="name"/><br><br>
            <input type="submit" value="Submit Form"/>
            <input type="reset" value="Reset Form"/>
        </form>
    </body>
</html>

The hierarchy of the Folder is following:

ROOT[
    WEB-INF[
        web.xml
        classes[
               com[
               example[
                    AzpanaServlet.class
                AzpanaServlet$oneChar.class
                ]
              ]
               ]
        lib[
            AzpanaServlet.java
           ]
       ]
    META-INF[
        MANIFEST.MF
        ]
    form.html
    ]

Copied your exact code and just commented out the Servlet code to be

  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        /*
        * Get the value of form parameter
        */
        String name = request.getParameter("name");

        System.out.println("Parameter name : "+name);

Works like a charm.

In my server console

Parameter name : helloo

There is no problem with your configuration. You might want to clean your browser cache and try again.

The problem may be that you are using IDE to run the Tomcat Server and deployed to the root application context. Try to use some app context for your application in deployment. For example /myapp .

Have a look at your IDE console or your tomcat log, did your web application ever started successfully?
It might didn't start for some reason.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM