HTML Tutorials |
|
XML Tutorials |
|
Browser Scripting |
|
Server Scripting |
|
.NET (dotnet) |
|
Multimedia |
|
Web Building |
|
Java Tutorials |
|
Programming Langauges |
|
Soft Skills |
|
Database Tutorials |
|
Operating System |
|
Software Testing |
|
SAP Module |
|
Networking Programming |
|
Microsoft Office |
|
Accounting |
|
|
Ciclo di vita di Servlets |
Il ciclo di vita di Servlets ha i seguenti componenti:
- Maneggiato dal contenitore di servlets.
- Generare ed inizializzare i servlets.
- Maniglie zero o pi� chiamate di servizio.
- Distruggere e l'immondizia raccoglie i servlets.
- I singoli servlets citano ad esempio per maneggiare ogni richiesta
|
L'architettura di Servlet o il ciclo di vita di base
|
Il contenitore di Servlet genera soltanto un caso di ogni servlet ma la richiesta di ogni utente � maneggiata con un filetto separato. Ogni filetto allora denomina i metodi del doPost o del doGet. Questa idea � indicata nel suddetto Figure-5.
il metodo del init 1.The dei servlets � denominato quando i servlets in primo luogo � generato ed ogni volta l'assistente riceve una richiesta per servlets, l'assistente depone le uova un nuovo metodo di servizio di chiamate del filetto.
il controllo di metodo di servizio 2.The il tipo di richiesta del HTTP (OTTENERE, REGOLAR, MESSO, CANCELLAZIONE, ecc.) e denomina il doGet, il doPost, il doPut, il doDelete, il metodo ecc. come adatto.
3.Finally, l'assistente pu� decidere rimuovere un servlet caricato precedente. In questo caso, le chiamate dell'assistente distruggono il metodo dei servlets.
|
HTTP
|
Prima che possiamo cominciare scrivere il primo Servlets, dobbiamo conoscere alcuni principi fondamentali del HTTP (�protocollo di trasferimento di hypertext�), il protocollo che � usato da un cliente di WWW (per esempio un browser) per trasmettere una richiesta ad un web server.
Il HTTP � il protocollo orientato chied-risposta. Una richiesta del HTTP consiste di un metodo di richiesta, di un URI, dei campi dell'intestazione e di un corpo (che possono essere vuoti). Una risposta del HTTP contiene i campi dell'intestazione ancora e di risultato e un corpo.
Il metodo di servizio di spedizione di HttpServlet una richiesta ai metodi differenti del Java per i metodi differenti di richiesta del HTTP. Riconosce i metodi standard HTTP/1.1 e non dovrebbe essere esclusa in sottoclassi a meno che dobbiate effettuare i metodi supplementari. I metodi riconosciuti sono OTTENGONO, MESSO, TESTA, ALBERINO, CANCELLAZIONE, OPZIONI e TRACCIA. Altri metodi sono risposti a con un errore difettoso del HTTP di richiesta. Un metodo XXX del HTTP � spedito al doXxx di metodo del Java, per esempio OTTIENE - > doGet. Tutti questi metodo prevedono i parametri �(req di HttpServletRequest, ricerca di HttpServletResponse)�. I doOptions e il doTrace di metodo hanno esecuzioni adatte di difetto e solitamente non sono esclusi. Il metodo CAPO (che � supposto per restituire le stesse linee dell'intestazione che un metodo di OTTEN restituirebbe, ma non include un corpo) � effettuato denominando il doGet ed ignorando tutta l'uscita che � scritta con questo metodo. Quel li lascia con il doPost e il doDelete del doPut del doGet di metodo di cui le esecuzioni di difetto in HttpServlet restituiscono un errore difettoso del HTTP di richiesta. Una sottoclasse di HttpServlet esclude uno o pi� dei questi metodo per fornire un'esecuzione espressiva.
I dati di richiesta sono passati a tutti i metodi con la prima discussione di tipo HttpServletRequest (che � una sottoclasse del codice categoria pi� generale di ServletRequest). La risposta pu� essere generata con i metodi della seconda discussione di tipo HttpServletResponse (una sottoclasse di ServletResponse).
Quando chiedete un URL nel web browser, il metodo di OTTEN � usato per la richiesta. Una richiesta di OTTEN non ha il corpo (cio� il corpo � vuoto). La risposta dovrebbe contenere il corpo con i dati di risposta ed i campi dell'intestazione che descrivono il corpo (particolarmente Soddisfare-Tipo e Soddisfare-Mettere). Quando trasmettete una forma del HTML, OTTENERE o INVIARE l'azione pu� essere usato. Con l'OTTEN chiedere i parametri sono estremit� nel URL, con una richiesta che dell'ALBERINO sono transmited nel corpo. Richieste MESSE uso dei redattori del HTML e degli attrezzi di upload alle risorse di upload ad un web server ed alle richieste di CANCELLAZIONE di cancellare le risorse.
|
Tipi di Servlet
|
Metodo classico di Servlets-servizio ()
JSP's-Java Embeded nelle mascherine del HTML
HTTP Servlets-doGet & doPost ()
Rappresentazione Servlets-Generata dall'et� visiva
|
Pacchetti in Servlets
|
Ci sono due tipi di pacchetti disponibili in servlets che sono come segue:
1.javax.servlet.*
2.javax.servlet.http.*
|
Interfacce in javax.servlet.*
|
RequestDispatcher
Servlet
ServletRequest
ServletResponse
ServletConfig
ServletContext
SingleThreadModel
|
classes in javax.servlet.*
|
GenericServlet
ServletInputStream
ServletOutputStream
ServletException
UnavailableException
|
Interfaces in javax.servlet.http.*
|
HttpServletRequest
HttpServletResponse
HttpSessionBindingListener
HttpSessionContext
HttpSession
|
classes in javax.servlet.http.*
|
Cookie
HttpServlet
HttpUtils
HttpSessionBindingEvent
|
Servlet Scope Objects
|
The <minOccurs> indicator specify the minimum number of time an element can occur:
|
There are four scope objects in servlets which enables the sharing information between web components.
The scope objects and their corresponding Java classes are listed below:
Web Context javax.servlet.ServletContext
Request javax.servlet.HttpServletRequest
Session javax.servlet.http.HttpSession
Page javax.servlet.jsp.PageContext
Potete ottenere i valori di attributo dagli oggetti di portata di servlet usando il metodo del getAttribute e regolare i nuovi valori degli attributi usando il metodo del setAttribute. Per esempio, potete ottenere il IP address del cliente denominando il metodo del getRemoteAddr del codice categoria di HttpServletRequest.
|
Seguire gli esempi stampa ciao il mondo nel browser
|
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet
{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
PrintWriter out = response.getWriter();
out.println("Hello World");
}
}
|
|
Per essere un servlet, un codice categoria dovrebbe estendere il HttpServlet ed escludere il doGet o doPost (o entrambi), secondo se i dati stanno trasmettendi vicino OTTIENE o per posta. Questi metodi prendono due discussioni: un HttpServletRequest e un HttpServletResponse. Il HttpServletRequest ha metodi che li lasciano scoprire circa le informazioni ricevute quali le intestazioni di dati della FORMA, di richiesta del HTTP ed i simili.
Il HttpServletResponse ha metodo che li lascia specificare la linea di risposta del HTTP (200, 404, ecc.), le intestazioni di risposta (Soddisfare-Tipo, Regol-Biscotto, ecc.) e, per di pi�, li lascia ottenere un PrintWriter usato per trasmettere l'uscita di nuovo al cliente. Per il servlet semplice, la maggior parte dello sforzo � speso nelle dichiarazione del println che generano la pagina voluta. Si noti che il doGet e il doPost gettano l'eccezione due, in modo da siete tenuti ad includerli nella dichiarazione. Inoltre notare che dovete importare i codici categoria nel java.io (per PrintWriter, ecc.), javax.servlet (per HttpServlet, ecc.) e javax.servlet.http (per HttpServletRequest e HttpServletResponse). Per concludere, notare che il doGet e il doPost sono denominati con il metodo di servizio ed a volte potete desiderare escludere direttamente il servizio, per esempio per un servlet che maneggia entrambi OTTENGONO ed INVIANO la richiesta.
|
Compilando ed installando il Servlet
|
Si noti che i particolari specifici per l'installazione del servlet variano dal web server al web server. Riferir prego alla vostra documentazione di web server per i sensi definitivi. Gli esempi in linea stanno funzionando sul web server del Java (JWS) 2.0, dove il servlet si pensa che sia in un indice denominato servlets nella gerarchia dell'installazione di JWS. Tuttavia, ho disposto questo i servlets in un pacchetto separato (corridoio) per evitare i conflitti con altri servlets su questo assistente; desidererete fare lo stesso se state usando un web server che � usato dalla gente e non ha una buona infrastruttura per �gli assistenti virtuali� per impedire automaticamente questi conflitti. Quindi, HelloWorld.java realmente va in un subdirectory denominato corridoio nell'indice di servlets.
Si noti che installato sulla maggior parte degli altri assistenti � simile e i servlets e gli esempi di JSP nella lezione privata inoltre sono stati esaminati usando BEA WebLogic e IBM WebSphere 3.0. WebSphere ha un meccanismo eccellente per gli assistenti virtuali e non � necessario da usare solamente i pacchetti per impedire i conflitti nomi con altri utenti.
Se non avete usato mai i pacchetti prima, ci sono due sensi principali compilare i codici categoria che sono in pacchetti.
Il one-way � di regolare il vostro CLASSPATH per indicare all'indice sopra quello realmente che contiene i vostri servlets. Potete loro compilare normalmente da parte dell'indice. Per esempio, se il vostro indice basso � C:\JavaWebServer\servlets ed il vostro nome del pacchetto (e cos� nome del subdirectory) � il corridoio e voi erano su Windows, voi farebbe:
��DOS> CLASSPATH= stabilito C:\JavaWebServer\servlets; %CLASSPATH% ��Cd C:\JavaWebServer\servlets\hall di DOS> ��Javac YourServlet.java di DOS>
La prima parte, regolante CLASSPATH, probabilmente desiderate fare permanente, piuttosto che ogni volta iniziate una nuova finestra del DOS. Di Windows 95 su /98 mettereste tipicamente �avete regolato CLASSPATH=�� dichiarazione nella vostra lima di autoexec.bat in qualche luogo dopo la linea che ha regolato CLASSPATH per indicare a servlet.jar e a jsp.jar. Su Windows NT, andreste iniziare il menu, le regolazioni prescelte, il pannello di controllo prescelto, il sistema prescelto, ambiente prescelto, quindi entrate nella variabile e nel valore. Notare inoltre che se il vostro pacchetto fosse della forma name1.name2.name3 piuttosto che semplicemente di name1 come qui, tranquillo avreste il punto di CLASSPATH all'indice di alto livello della vostra gerarchia del pacchetto (l'un name1 contenente).
Un secondo senso compilare i codici categoria che sono in pacchetti � andare all'indice sopra quello che contiene i vostri servlets ed allora �indice \ YourServlet.java del javac� (Windows; notare il backslash) o �l'indice/YourServlet.java del javac� (Unix; notare il taglio di andata). Per esempio, supporre ancora che il vostro indice basso � C:\JavaWebServer\servlets ed il vostro nome del pacchetto (e cos� nome del subdirectory) � il corridoio ed eravate su Windows. In quel caso, fareste seguire:
��Cd C:\JavaWebServer\servlets di DOS> ��Corridoio \ YourServlet.java del javac di DOS>
Si noti che, su Windows, la maggior parte delle versioni del JDK 1.1 di javac richiedono un backslash, non un taglio di andata, dopo il nome di indice. Ci� � riparata in JDK 1.2, ma poich� molti assistenti di fotoricettore sono configurati per usare il JDK 1.1, molti autori di servlet attaccano con il JDK 1.1 per portabilit�.
Per concludere, un'altra opzione avanzata � di mantenere il codice sorgente in una posizione distinto dalle lime di .class ed usa opzione di d dei javac �-� per installarla nella posizione che il web server prevede.
|
Funzionamento del Servlet
|
Con il web server del Java, il servlet � disposto nell'indice di servlets all'interno dell'indice principale dell'installazione di JWS ed � invocato via http://host/servlet/ServletName. Si noti che l'indice � plurale di servlets, mentre il URL si riferisce al servlet, singolare. Poich� questo esempio � stato disposto nel pacchetto del corridoio, sarebbe invocato via http://host/servlet/hall.HelloWorld. Altri assistenti di fotoricettore possono avere convenzioni un po'differenti su dove installare i servlets e su come invocarli. La maggior parte del assistente inoltre li ha lasciati definire gli pseudonimi per i servlets, di modo che un servlet pu� essere invocato via http://host/any-path/any-file.html. Il processo per fare questo � completamente assistente-specifico; controllare la documentazione del vostro assistente per vedere se ci sono i particolari.
|
Un Servlet che genera il HTML
|
La maggior parte del servlet genera il HTML, testo non normale come nell'esempio precedente. Per fare quello, avete bisogno di due punti supplementari: dire al browser a che stiate trasmettendo indietro il HTML e modifichiate le dichiarazione del println per sviluppare un Web page legale. Il primo punto � fatto regolando il Soddisfare-Tipo intestazione di risposta. Generalmente, le intestazioni possono essere regolate via il metodo del setHeader di HttpServletResponse, ma regolare il tipo soddisfatto � cos� operazione comune che ci � inoltre un metodo speciale del setContentType appena a questo fine. Si noti che dovete presentare le intestazioni di risposta realmente restituire c'� ne del soddisfare via il PrintWriter. Qui � un esempio:
|
Il seguente programma denominato HelloWWW.java stamper� Hellow WWW nel browser nella disposizione del HTML.
|
package hall;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWWW extends HttpServlet
{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
"Transitional//EN\">\n" +
"<HTML>\n" +
"<HEAD><TITLE&ht;Hello WWW</TITLE></HEAD>\n" +
"<BODY>\n" +
"<H1>Hello WWW</H1>\n" +
"</BODY></HTML>");
}
}
|
|
O/P:
|
|
Keywords:
servlets lifecycle,servlet lifecycle,jsp lifecycle,struts lifecycle,ejb lifecycle,servlets tutorial,java servlets,j2ee servlets
|
|
HTML Quizes |
|
XML Quizes |
|
Browser Scripting Quizes |
|
Server Scripting Quizes |
|
.NET (dotnet) Quizes |
|
Multimedia Quizes |
|
Web Building Quizes |
|
Java Quizes |
|
Programming Langauges Quizes |
|
Soft Skills Quizes |
|
Database Quizes |
|
Operating System Quizes |
|
Software Testing Quizes |
|
SAP Module Quizes |
|
Networking Programming Quizes |
|
Microsoft Office Quizes |
|
Accounting Quizes |
|
|