View Full Version : [Java] Servlet
monkeys86
28-12-2007, 16:19
Ciao a tutti sono nuovo, credo che il mio problema lo si possa discutere in questo thread, se sbaglio ditemelo e correggo.
Volevo scrivere una servlet java di prova. Ho creato un form html che manda un dato ad un servlet java. I file web e server xml sono gia impostati, tomcat gira, ma quando faccio la submit nel form, explorer al posto di visualizzare la servlet java mi chiede se voglio aprire, salvare il file o annullare, come se fosse un file qualsiasi. Se invece faccio girare il tutto su opera, quando faccio la submit opera mi stampa tutto il contenuto del file java, senza neanche compilarlo.
Volevo sapere se qualcuno mi poteva aiutare anche se il problema sembrerà stupido a qualcuno di voi,ma sono alle prime armi con le servlet
grazie mille
morskott
28-12-2007, 19:55
hai messo nel file web.xml le dovute <servlet-mapping>?
e come "chiami" da html la servlet?
di solito sarebbe così
HTML
<form method="POST" action="cartella/MiaServlet">
<!-- i vari input della form ->
<input type="submit" name="submitButton" value="Cliccami" />
</form>
Servlet
public class MiaServlet extends HttpServlet{
public void doPost(HttpRequest reques,HttpResponse response) throws Exception{ //non ho messo le eccezioni giuste
//fai qualcosa con i campi di input della form
//gestire l'output direttamente o reindirizzare su altra jsp/html
}
}
Web.xml
<<servlet>
<description>
</description>
<display-name>
IndexServlet</display-name>
<servlet-name>IndexServlet</servlet-name>
<servlet-class>
MiaServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>IndexServlet</servlet-name>
<url-pattern>/cartella/MiaServlet</url-pattern>
</servlet-mapping>
monkeys86
29-12-2007, 10:49
prima di tutto grazie per la risposta, ma ancora la cosa nn funziona...sembra quasi che opera non compili il sorgente java, perchè stampa tutta la pagina in modo "ignorante", senza preoccuparsi del codice...questi sono i miei pezzi di codice cmq:
html
<form action = "Welcome3.java" method = "POST">
web
<servlet>
<servlet-name>Welcome3_n</servlet-name>
<servlet-class>Welcome3.java</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Welcome3_n</servlet-name>
<url-pattern>/Welcome3.java</url-pattern>
</servlet-mapping>
inoltre nel file server ho messo i parametri come da procedura
<Host name="localhost" appBase="C:\Documents and Settings\diego\Desktop\UNI\progetto xml\applicazioni"
e dentro la cartella applicazioni ho la dir web inf e meta inf e il file server, dentro web inf ho le cartelle classes e lib e il file web, e dentro classes ho le mie servlet e i codici html.....ma la cosa nn funziona ancora
ma nn dovresti metter il .class della servlet??
o in alternativa fai una .jsp
crea un file .jsp con dentro
<% out.println("Hello World"); %>
monkeys86
29-12-2007, 11:22
cioè dovrei mettere il .class della servlet dove? nel server.xml o nell'html?
cioè dovrei mettere il .class della servlet dove? nel server.xml o nell'html?
prova con una .jsp come ti ho detto
monkeys86
29-12-2007, 11:25
e c'è un problema.....che nn so usare javascript, come ti ho detto sto cominciando adesso a fare ste cose
e c'è un problema.....che nn so usare javascript, come ti ho detto sto cominciando adesso a fare ste cose
.jsp nn c'entra nient con javascript
metti un file
prova.jsp dentro alla dir dove hai creato la tua web application
e scrivi dentro
<% out.println("Hello World"); %>
morskott
29-12-2007, 12:06
prima di tutto grazie per la risposta, ma ancora la cosa nn funziona...sembra quasi che opera non compili il sorgente java, perchè stampa tutta la pagina in modo "ignorante", senza preoccuparsi del codice...questi sono i miei pezzi di codice cmq:
html
<form action = "Welcome3.java" method = "POST">
web
<servlet>
<servlet-name>Welcome3_n</servlet-name>
<servlet-class>Welcome3.java</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Welcome3_n</servlet-name>
<url-pattern>/Welcome3.java</url-pattern>
</servlet-mapping>
inoltre nel file server ho messo i parametri come da procedura
<Host name="localhost" appBase="C:\Documents and Settings\diego\Desktop\UNI\progetto xml\applicazioni"
e dentro la cartella applicazioni ho la dir web inf e meta inf e il file server, dentro web inf ho le cartelle classes e lib e il file web, e dentro classes ho le mie servlet e i codici html.....ma la cosa nn funziona ancora
Sbagli mettendo nel web.xml la versione non compilata della classe, devi compilare prima con javac (o con la funzione di un IDE) il tuo sorgente java, allora avrai un Welcome3.class, nel file xml metterai come servlet name solo "Welcome3" senza estensione (nel tuo classpath dovrà esser raggiungibile il .class) e nella url pattern non devi mettere l'estensione.
Comunque non dovresti deployare tutta la tua app nel container??? (tipo tomcat)
E comunque gestire un sito solo con Servlet senza usare JSP è fattibile ma quantomeno poco consigliato (per non dire che è un casino bestiale).
Le pagine jsp sono pagine frammiste tra html e scriptlet in linguaggio java (non javascript), se vuoi delle guide vai su http://www.coreservlets.com/.
monkeys86
29-12-2007, 12:08
ok grazie mille per l'aiuto, cmq era sia un problema di explorer settato male che un errore di settaggio del web.xml; grazie ancora per l'aiuto
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.