Newsgroup: it.comp.java
Titolo: Problema con link applicazione web

Ho bisogno di aiuto.
Per la mia inesperienza non riesco a lanciare una semplice applicazione web di prova (mie-servlet) che usa una servlet.
Uso Tomcat 5.5.9 e ho creato un semplice file html che richiama una servlet e li ho inseriti nei percorsi:
<server_root>/webapps/mie-servlet/index.html
<server_root>/webapps/mie-servlet/WEB-INF/classes/ciao.class
<server_root>/webapps/mie-servlet/WEB-INF/classes/ciao.java
ora con il link 
http://localhost:8080/mie-servlet
 riesco ad aprire index.html ma poi quando quello chiama la servlet
'ciao' (clic su tasto submit) non riesce a trovarla (!?):
mi risponde:
http://localhost:8080/mie-servlet/servlet/ciao?nome=xxx
description: The requested resource (/mie-servlet/servlet/ciao) is not available.
Ho provato a inserire il file web.xml (<server_root>/webapps/mie-servlet/WEB-INF/web.xml) ma, pur riconoscendolo, la
cosa non cambia.
Ho sempre chiuso e rilanciato Tomcat ad ogni nuova prova.
Grazie a tutti,
--
Sandro
Questi sono i file:
index.html
----------
<HTML>
<HEAD>
<TITLE>Introduzione</TITLE>
</HEAD>
<BODY>
<FORM METHOD=GET ACTION="servlet/ciao">
Qual'è il tuo nome?
<INPUT TYPE=TEXT NAME="nome"><P>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>
ciao.java
---------
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ciao extends HttpServlet {
    public void doGet (HttpServletRequest req,
                       HttpServletResponse res) {
        res.setContentType("text/html"); // definisce il contenuto della risposta che la servlet dovrà fornire al client
        try {
                out = res.getWriter(); /* getWriter recupera PrintWriter per la convers.dei caratteri java in caratteri
                                                 internazionali */
        } catch (IOException e) {
                System.out.println("Errore getWriter");
        }
        String nome = req.getParameter("il tuo nome"); // metodo di HttpServletRequest per recuperare il nome   
        out.println("<HTML>");
        out.println("<HEAD><TITLE>Ciao - "+nome+"</TITLE></HEAD>");
        out.println("<BODY>");
        out.println("Ciao, "+nome);
        out.println("</BODY></HTML>");
    }
    public String getServletInfo() {
        return "Una servlet che riconosce il nome della persona e gli dice Ciao";
    }
PrintWriter out;     
}
web.xml
-------
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "
http://java.sun.com/dtd/web-app_2_3.dtd
">
<web-app>
    <!-- Definisce le servlets che sono incluse nella web application mie-servlet -->
    <servlet>
        <servlet-name>ciao</servlet-name>
        <servlet-class>ciao</servlet-class>
    </servlet>
</web-app>

     </servlet>
Manca come minimo il servlet-mapping.

Vincent Vega wrote:

Non pensavo fosse obbligatorio...
cmq ho inserito:
    <servlet-mapping>
        <servlet-name>ciao</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
adesso se chiamo direttamente:
http://localhost:8080/mie-servlet/hello
 mi fa partire (giustamente) direttamente la servlet con la risposta!
se invece lancio index.html:
http://localhost:8080/mie-servlet/index.html
e poi clicco il tasto submit, mi compare:
description The requested resource (/mie-servlet/servlet/hello) is not available
???
--
Sandro

 ???
Vedi te. Se vuoi te li metto a confronto, quello che funziona con quello 
che non funziona.
/mie-servlet/hello
/mie-servlet/servlet/hello

Vincent Vega wrote:

Hai ragione!
sia il manuale che gli esempi che avevo anteponevano /servlet al nome della servlet nell'.html ...
e quindi non sapendo ....
Grazie!
--
Sandro