How I can run my Servlet

Hi friends…
I want to execute my first servlet but i am not able. I am going to explain what steps I did.
1-First I copy “Servlet-api.jar” from lib folder in tomcat and paste it in ext folder of java.
2- Create HelloWorld.java in somewhere in my hard drive.

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException
    {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Hello World!</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Hello World!</h1>");
        out.println("</body>");
        out.println("</html>");
    }
}

3-Compile this file and put its .class file in below location
“C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT\WEB-INF”.

4-Now I edited web.xml file which is give below

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

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

  <display-name>Welcome to Tomcat</display-name>
  <description>
     Welcome to Tomcat
  </description>

  <servlet>
  <servlet-name>Ankit</servlet-name>
  <servlet-class>HelloWorld</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>Ankit</servlet-name>
  <url-pattern>/mainfile</url-pattern>
  </servlet-mapping>
</web-app>

5- Now I try “http://localhost:8080/mainfile” in my browser but I get the following error.

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Wrapper cannot find servlet class HelloWorld or a class it depends on
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:864)
	org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
	org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665)
	java.lang.Thread.run(Unknown Source)

root cause

java.lang.ClassNotFoundException: HelloWorld
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:864)
	org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
	org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665)
	java.lang.Thread.run(Unknown Source)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.32 logs.

So, friends please tell me where I am wrong or what steps I am missing.
Please help…
Thanks in advance…

hi ankit.pandeyc012,

for a webapp, compiled classes should go in WEB-INF/classes
or inside a jar such as WEB-INF/lib/example.jar

so in this case, for (3), put it in
“C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT\WEB-INF\classes”
instead.