Ok, ecco il problema.
Le servlet (e tutte le classi nel percorso root/web-inf/classes) non sono risorse direttamente accessibili via http.

Si fa cosi:
1. Si crea una servlet che estende javax.servlet.http.HttpServlet
2. si fa overriding di doPost e doGet

Affinchè sia raggiungibile, va configurata la servlet nel file di configurazione web.xml (presumo che tu stia utilizzando tomcat).

Apri il tuo web.xml e aggiungi queste linee:
codice:
<servlet>
    <servlet-name>miaServlet</servlet-name>
    <servlet-class>tuoPackage.tuaClasse</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>miaServlet</servlet-name>
    <url-pattern>/urlServlet</servlet>
</servlet-mapping>
In questo modo hai detto al server:
a. esiste una servlet, cui associo un nome logico 'miaServlet'
b. la servlet è implementata dalla classe tuoPackage.tuaClasse
c. la servlet è raggiungibile via http tramite il percorso root/urlServlet

per cui il tuo form html diventa
<form name="..." method="post" action="/urlServlet">...</form>

Bada bene che ogni volta che modifichi il web.xml o il codice di una delle classi della webapp devi riavviare il server o quanto meno la tua applicazione