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 |
|
|
Servlets Lebenszyklus haben die folgenden Bestandteile:
- Angefaßt durch den servlets Behälter.
- Die servlets verursachen und initialisieren.
- Handgriff null oder mehr Wartungsbesuch.
- Zerstören und Abfall sammeln die servlets.
- Instance einzelne servlets, um jeden Antrag anzufassen
|
Die grundlegende Servlet Architektur oder der Lebenszyklus
|
Servlet Behälter verursachen nur einen Fall jedes servlet, aber der Antrag jedes Benutzers wird mit einem unterschiedlichen Gewinde angefaßt. Jedes Gewinde benennt dann die doGet oder doPost Methoden. Diese Idee wird im oben genannten Figure-5 gezeigt.
init 1.The Methode der servlets wird, wenn die servlets zuerst verursacht wird und jedesmal der Bediener einen Antrag für servlets empfängt, der Bediener laicht eine neue Gewindeanrufservice-Methode benannt.
überprüfung Methode des Services 2.The die HTTP Antragart (ERHALTEN, EINSTELLEN, GESETZT, LÖSCHUNG, etc.) und benennt doGet, doPost, doPut, doDelete, etc. Methode, wie passend.
3.Finally, der Bediener kann entscheiden, ein vorhergehendes geladenes servlet zu entfernen. In diesem Fall zerstören die Bedieneranrufe Methode der servlets.
|
HTTP
|
Bevor wir das erste, Servlets zu schreiben beginnen können, müssen wir etwas Grundlagen von HTTP („Hypertext-übergangsprotokoll“), das Protokoll kennen, das von einem WWW Klienten (z.B. eine Datenbanksuchroutine) verwendet wird um einen Antrag zu einem web server zu schicken.
HTTP ist das Verlangenantwort orientierte Protokoll. Ein HTTP Antrag bestehen aus einer Antragmethode, einem URI, fängt überschrift und ein Körper auf (der leer sein kann). Eine HTTP Antwort enthalten ein Resultat und wieder fängt überschrift und ein Körper auf.
Die Service-Methode der HttpServlet Abfertigung ein Antrag zu den unterschiedlichen Java Methoden für unterschiedliche HTTP Antragmethoden. Er erkennt die Standard-Methoden HTTP/1.1 und sollte nicht in den Unterklassen überlaufen werden, es sei denn du zusätzliche Methoden einführen mußt. Die anerkannten Methoden sind ERHALTEN, GESETZT, KOPF, PFOSTEN, LÖSCHUNG, WAHLEN und SPUR. Andere Methoden werden mit einer schlechten Antrag HTTP Störung beantwortet. Eine HTTP Methode XXX wird zum Java Methode doXxx, z.B. ERHALTEN - > doGet geschickt. Alle diese Methode erwarten die Parameter „(HttpServletRequest req, HttpServletResponse Res)“. Die Methode doOptions und das doTrace haben verwendbare Rückstellung Implementierungen und werden normalerweise nicht überlaufen. Die HAUPTmethode (die die gleichen überschriftlinien zurückbringen soll, die eine ERHALTENmethode zurückbringen würde, aber schließt nicht einen Körper) ein, wird durchgeführt, indem man das doGet benennt und jeden möglichen Ausgang ignoriert, der dadurch geschrieben wird. Dieses läßt uns mit dem Methode doGet doPut doPost und dem doDelete dessen Rückstellung Implementierungen in HttpServlet eine schlechte Antrag HTTP Störung zurückbringen. Eine Unterklasse von HttpServlet läuft eines oder mehrer von diesen Methode über, um eine sinnvolle Implementierung zur Verfügung zu stellen.
Die Antragdaten werden zu allen Methoden durch das erste Argument der Art HttpServletRequest übermittelt (die eine Unterklasse der allgemeineren ServletRequest Kategorie ist). Die Antwort kann mit den Methoden des zweiten Arguments der Art HttpServletResponse (eine Unterklasse von ServletResponse) verursacht werden.
Wenn du ein URL im web browser verlangst, wird die ERHALTENmethode für den Antrag verwendet. EIN ERHALTENantrag hat nicht den Körper (d.h. ist der Körper leer). Die Antwort sollte den Körper mit den Wartedaten enthalten und überschrift fängt auf, die den Körper beschreiben (besonders Inhalt-Art und Inhalt-Kodierung). Wenn du eine HTML Form, entweder sendest, Tätigkeit ERHALTEN oder BEKANNTGEBEN kann verwendet werden. Mit ERHALTEN um die Parameter bitten sind Ende im URL, mit einem PFOSTEN-Antrag, den sie transmited im Körper sind. GESETZTE Anträge der HTML Herausgeber und der Antriebskraftwerkzeuge Gebrauch zu den Antriebskraftbetriebsmitteln zu einem web server und ZU DEN LÖSCHUNG-Anträgen, Betriebsmittel zu löschen.
|
Servlet Types
|
Classic Servlets-service() Method
JSP's-Java Embeded in HTML Templates
Http Servlets-doGet & doPost()
Visual Servlets-Generated by Visual Age
|
Packages in Servlets
|
There are two types of package available in servlets which are as follows:
1.javax.servlet.*
2.javax.servlet.http.*
|
Interfaces 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 Bereich-Gegenstände
|
Die <minOccurs> Anzeige spezifizieren die Mindestzahl der Zeit, die ein Element auftreten kann:
|
Es gibt vier Bereichgegenstände in den servlets, das den teilenden Informationen zwischen Netzbestandteilen ermöglicht. Die Bereichgegenstände und ihre entsprechenden Java Kategorien werden nachstehend aufgeführt:
Netz-Kontext javax.servlet.ServletContext
Antrag javax.servlet.HttpServletRequest
Lernabschnitt javax.servlet.http.HttpSession
Seite javax.servlet.jsp.PageContext
Du kannst die Attributwerte von den servlet Bereichgegenständen mit getAttribute Methode erhalten und neue Werte von Attributen mit setAttribute Methode einstellen. Z.B. kannst du IP address des Klienten erhalten, indem Sie die getRemoteAddr Methode der HttpServletRequest Kategorie benennen.
|
Das Folgen von Beispielen druckt die hallo Welt in der Datenbanksuchroutine
|
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");
}
}
|
|
Um ein servlet zu sein, sollte eine Kategorie das HttpServlet verlängern und doGet oder doPost (oder beide), abhängig von ob die Daten vorbei ERHALTEN gesendet werden oder durch POST überzulaufen. Diese Methoden nehmen zwei Argumente: ein HttpServletRequest und ein HttpServletResponse. Das HttpServletRequest hat Methoden, die dich über die ankommenden Informationen wie FORM-Daten-, HTTP Antragüberschriften und dergleichen herausfinden lassen.
Das HttpServletResponse hat Methode, die dich die HTTP Wartelinie (200, 404, etc.), Warteüberschriften (Inhalt-Art, Einstellen-Plätzchen, etc.) am wichtigsten spezifizieren läßt und, läßt dich ein PrintWriter erreichen, das verwendet wird, um Ausgang zurück zu dem Klienten zu senden. Für einfaches servlet wird die meisten der Bemühung in den println Aussagen aufgewendet, die die gewünschte Seite erzeugen. Merken, daß doGet und doPost Ausnahme zwei werfen, also wirst du angefordert, sie in der Erklärung einzuschließen. Auch merken, daß du Kategorien im java.io (für PrintWriter, etc.), javax.servlet importieren mußt (für HttpServlet, etc.), und javax.servlet.http (für HttpServletRequest und HttpServletResponse). Schließlich merken, daß doGet und doPost durch Service-Methode benannt werden, und manchmal kannst du Service direkt überlaufen wünschen, z.B. für ein servlet, das anfaßt, ERHALTEN beide und GEBEN Antrag bekannt.
|
Das Servlet kompilieren und anbringend
|
Merken, daß die spezifischen Details für das Anbringen von servlet von web server zu web server schwanken. Auf deine web serverunterlagen für die endgültigen Richtungen bitte sich beziehen. Die on-line-Beispiele laufen auf Java web server (JWS) 2.0, wo servlet erwartet werden, um in einem Verzeichnis zu sein, das servlets in der JWS Installation Hierarchie genannt wird. Jedoch legte ich dieses servlets in ein unterschiedliches Paket (Halle) zum von Konflikten mit anderen servlets auf diesem Bediener zu vermeiden; du wünschst das selbe tun, wenn du ein web server verwendest, das von den Leuten verwendet und nicht eine gute Infrastruktur für die „virtuellen Bediener hat wird“, zum dieser Konflikte automatisch zu verhindern. So geht HelloWorld.java wirklich in ein Unterverzeichnis, das Halle im servlets Verzeichnis genannt wird.
Merken, daß gegründet auf den meisten anderen Bedienern ähnlich ist, und die servlets und DIE JSP Beispiele im Tutorial sind auch mit BEA WebLogic und IBM WebSphere 3.0 geprüft worden. WebSphere hat eine ausgezeichnete Einheit für virtuelle Bediener, und es ist nicht notwendig, Pakete nur zu benutzen, um Namenskonflikte mit anderen Benutzern zu verhindern.
Wenn du nie die Pakete vor benutzt hast, gibt es zwei Hauptmöglichkeiten, Kategorien zu kompilieren, die in den Paketen sind.
One-way ist, dein CLASSPATH einzustellen, um auf Verzeichnis über dem zu zeigen, das wirklich deine servlets enthält. Du kannst sie innerhalb vom Verzeichnis normalerweise kompilieren. Z.B. wenn dein niedriges Verzeichnis C:\JavaWebServer\servlets ist und deinen Paketnamen (und folglich Unterverzeichnisname) die Halle ist, und du waren auf Windows, du würde tun:
DOS> gesetztes CLASSPATH= C:\JavaWebServer\servlets; %CLASSPATH% DOS> Cd C:\JavaWebServer\servlets\hall DOS> javac YourServlet.java
Das erste Teil, CLASSPATH, möchtest dich einstellend vermutlich dauerhaft tun, anstatt, jedesmal wenn du ein neues DOS Fenster beginnst. Auf Windows- 95/98 würdest du setzen gewöhnlich „einstelltest CLASSPATH=…“ Aussage in deiner autoexec.bat Akte irgendwo nach der Linie, die CLASSPATH einstellte, um auf servlet.jar und jsp.jar zu zeigen. Auf Windows NT würdest du gehen, Menü, auserwählte Einstellungen, auserwählte Steuerverkleidung, auserwähltes System, auserwähltes Klima zu beginnen, dann die Variable und den Wert einträgst. Auch merken, daß, wenn dein Paket von der Form name1.name2.name3 anstatt einfach von name1 als hier waren, du ruhig den CLASSPATH Punkt zum ersten Verzeichnis deiner Pakethierarchie haben würdest (das ein enthaltene name1).
Eine zweite Weise, Kategorien zu kompilieren, die in den Paketen sind, ist, zum Verzeichnis über dem zu gehen, das deine servlets enthält und dann „javac Verzeichnis \ YourServlet.java“ (Windows; den Gegenschrägstrich) oder „javac Verzeichnis/YourServlet.java“ merken (Unix; den Vorwärtsschrägstrich merken). Z.B. wieder annehmen, daß dein niedriges Verzeichnis C:\JavaWebServer\servlets ist und deinen Paketnamen (und folglich Unterverzeichnisname) Halle ist, und du warst auf Windows. In diesem Fall würdest du das Folgen tun:
DOS> Cd C:\JavaWebServer\servlets DOS> javac Halle \ YourServlet.java
Daß, über Windows merken, die meisten JDK 1.1 Versionen von javac erfordern einen Gegenschrägstrich, nicht einen Vorwärtsschrägstrich, nach Verzeichnisnamen. Dieses wird in JDK 1.2 geregelt, aber, da viele Netzbediener zusammengebaut werden, um das JDK 1.1 zu benutzen, haften viele servlet Autoren mit JDK 1.1 für Beweglichkeit.
Schließlich ist eine andere vorgerückte Wahl, Quellenprogramm in einer Position eindeutig zu halten von den .class Akten und verwendet d der javacs „-“ die Wahl, zum sie in die Position anzubringen, die das web server erwartet.
|
Laufen lassen des Servlet
|
Mit dem Java web server werden servlet in das servlets Verzeichnis innerhalb des Haupt-JWS Installation Verzeichnisses gelegt und werden über http://host/servlet/ServletName hervorgerufen. Merken, daß das Verzeichnis der servlets Plural, während URL auf servlet sich bezieht, einzigartig ist. Da dieses Beispiel in das Halle Paket gelegt wurde, würde es über http://host/servlet/hall.HelloWorld hervorgerufen. Andere Netzbediener können etwas unterschiedliche Versammlungen über, wo man servlets anbringt und wie man haben sie hervorruft. Der meiste Bediener ließ dich auch Namensabkürzungen für servlets definieren, damit ein servlet über http://host/any-path/any-file.html hervorgerufen werden kann. Der Prozeß für das Tun dies ist vollständig Bediener-spezifisch; Unterlagen deines Bedieners auf die Details überprüfen.
|
Ein Servlet, das HTML erzeugt
|
Das meiste servlet erzeugen HTML, nicht normalen Text wie im vorhergehenden Beispiel. Um den zu tun, benötigst du zwei zusätzliche Schritte: der Datenbanksuchroutine erklären, daß du HTML zurückschickst und die println Aussagen änderst, um eine zugelassene Webseite zu errichten. Der erste Schritt wird erfolgt, indem man Inhalt-Art Warteüberschrift einstellt. Im allgemeinen können überschriften über die setHeader Methode von HttpServletResponse eingestellt werden, aber, die zufriedene Art einzustellen ist solch eine allgemeine Aufgabe, daß es auch eine spezielle setContentType Methode gerade zu diesem Zweck gibt. Merken, daß du die Warteüberschriften einstellen mußt, bevor Sie wirklich irgendwelche des Inhalts über das PrintWriter zurückbringen. Ist hier ein Beispiel:
|
Das folgende Programm, das HelloWWW.java genannt wird, druckt Hellow WWW in der Datenbanksuchroutine im HTML Format.
|
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 |
|
|