PDA

Visualizza la versione completa : Creare una Servlet?[JSP]


ANTAGONIA
26-04-2004, 23:16
Buona sera,ho una curiosità sulle Servlet nel senso che ho questo codice:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

public class BasicServlet extends HttpServlet{

public void init(ServletConfig config) throws ServletException{

//Passa l'oggetto config alla superclasse
super.init(config);
}

//Elabora la richiesta Http Get
public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{

response.setContentType("text/html");
PrintWriter out=response.getWriter();

out.println("<html>" +
"<head><title>Basic Servlet</title></head>" +
"<body>");
//Stampa il REQUEST_METHOD inviato dal client
out.println("Metodo di richiesta " + request.getMethod() + "\n");

out.println("</body></html>");
out.close();

}

//Elabora la richiesta Http Post
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{

response.setContentType("text/html");
PrintWriter out = response.getWriter();

out.println("<html>" +
"<head><title>Basic Servlet</title></head>" +
"<body>");

//Stampa il REQUEST_METHOD inviato dal client
out.println("Metodo di richiesta " + request.getMethod() + "\n");

out.println("</body></html>");
out.close();
}

//Ottiene informazioni sul Servlet
public String getServletInfo(){

return "Informazioni su BasicServlet";
}
}

Per creare una servlet c'è bisogno anche dei metodi Service() e Destroy() giusto?
Allora il metodo Service() gestisce tutte le richieste inviate dai client
il metodo Destroy() rappresenta la fine della vita di una servlet...

La mia domanda è:
1° posso convertire una normale pagina JSP in una classe Servlet?
2° il metodo Service() si inizializza cosi:
public void service(ServletRequest req,ServletResponse res)throws ServletException,IOException;
apparte questo, cosa c'è da mettere per renderlo funzionale?
3° è possibile una volta risolti questi problemi,creare un sito interamente con le servlet?

Grazie per l'aiuto... ciao a tutti

civico3
27-04-2004, 10:53
Ciao, allora:
-l'application server su cui gireranno le tue applicazioni java, trasformerà le tue JSP in servlet, pertanto una JSP o una servlet per l'A.S. sono la medesima cosa.
-Per rendere funzionale il metodo service(...), devi solo aggiungere all'interno di questo metodo, i comandi che dovranno essere eseguiti alla chiamata della servlet.
-Per l'ultimo quesito penso di no(ma non sono certo), in quanto per essere attivata una servlet, deve essere richiamata da un evento(get, o post).E nella mia scarsa esperienza non ho mai visto, ne utilizzato servlet che non vengano richiamate da altri file(html,jsp...).

trevor
27-04-2004, 11:13
si, praticamente puoi anche fare un sito interamente in servlet,ma è un'immondizia di codice mischiato a stringhe html, non ha senso farne.

ANTAGONIA
27-04-2004, 14:54
Da CIVICO:
_______________________________________
-Per rendere funzionale il metodo service(...), devi solo aggiungere all'interno di questo metodo, i comandi che dovranno essere eseguiti alla chiamata della servlet.
_______________________________________


potreste farmi cortesemente un'esempio concreto cosi capisco meglio?

Non so proprio da che punto iniziare....
Per favore...

Grazie...

civico3
27-04-2004, 15:28
ti posto il classico esempio "Hello world":
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {

res.setContentType("text/html");
PrintWriter out = res.getWriter();

out.println("<HTML>");
out.println("<HEAD><TITLE>Hello World</TITLE></HEAD>");
out.println("<BODY>");
out.println("<BIG>Hello World</BIG>");
out.println("</BODY></HTML>");
}

Probabilmente non ti sarà di nessun aiuto, se mi dici cosa vorresti fare con questa servlet, ti dico o ti mando qualcosa di meglio...

cmq in 2 parole, all' interno del tuo metodo service, avrai due oggetti request e response,questi offrono dei metodi per gestire la richiesta e la risposta.
all' interno del metodo service, puoi eseguire controlli, manipolare i dati ecc...

spero di esserti stato d'aiuto cmq puoi dare un occhiata su internet, è pieno di esempi tutorial e altro materiale sulle servlet.

http://merialdo.dia.uniroma3.it/didattica/aa2003-2004/sd/materiale/sd-13-servlet-I.pdf

http://www.servlets.com/jservlet2/examples/index.html

fammi sapere...

So che non c'entra niente, ma sei della provincia di Roma tipo castelli romani?

stefano80super
27-04-2004, 15:35
puoi guardare anche qui (http://java.sun.com/products/servlet/)

Joe_Perry
27-04-2004, 18:54
se mi posso permettere ti consiglio di usare le .jsp .....
molto meglio per gestire il codice HTML (che è quello che si vuole, no?)

kuarl
27-04-2004, 22:22
scusate ragazzi se mi intrometto, immaginiamo di non avere problemi con l'html e che l'output sia del testo semplice semplice che non intacca la leggibilità del codice, devo per forza usare i metodi doGet e doPost per eseguire le operazioni di base? non è possibile richiamare la servlet semplicemente digitando l'indirizzo nell'url del browser?

ma il metodo service a cosa serve di preciso?? lo posso assimilare al main di un applicazione classica??
potrei scrivere una servlet solo con il metodo service senza doGet e doPost?

sono domande che mi son venute così, scusate se poi nella pratica non avrebbero molto senso ma venendo da php vorrei riutilizzare il modo di ragionare che ho sempre utilizzato

ANTAGONIA
28-04-2004, 02:00
Vi ringrazio ragazzi... cerco di mettere in pratica qualcosa e poi vi dirò...

stefano80super
28-04-2004, 09:44
E' bene implementare tutti e due i metodi doGet e doPost ed è possibile richiamare la servlet scrivendone semplicemente l'indirizzo, probabilmente per avere output di testo normale
è più conveniente una jsp.

Il metodo service gestisce tutte le richieste inviate dal client

Loading