$KK(Lebenszyklus eines Servlets) $R(Objective) Describe the purpose and event sequence of the servlet life cycle: (1) servlet class loading, (2) servlet instantiation, (3) call the init method, (4) call the service method, and (5) call destroy method. $R\ Ein Client sendet eine Anrage nicht direkt an ein Servlet, sondern an einen Container (z.B TomCat) der die Servlets verwaltet. Der Lebenszyklus eines Servlets ist genau definiert. $KKK(Laden und Instantiierung eines Servlets) Es ist die Aufgabe das containers, eine Servlet Klasse zu finden, zu laden und zu instantiieren. Standardmässig wird ein Servlet erst beim Bedarf eingeladen. Dies hat die Anfrage dass die erste Anfrage länger dauert. Es ist aber auch leicht konfigurierbar dass ein Servlet sofort beim Start des Containers eingeladen wird. $KKK(Initialisierung eines Servlets) Es können initiale Parameter aus einer Konfigurationsdatei (web.xml). Typisch für initiale Parameter sind z.B: Datenbank Connect Strings. Man kann die Datenbank wechseln ohne in den Code eingreifen zu müssen. Beim Initialisieren wird folgende Methode der Klasse HttpServlet aufgerufen- $S() public void init(ServletConfig config) throws ServletException; $S\ Ein ServletConfig speichert die Initialien Parameter in einer Paramterliste, auf die man dann dauerhaft zugreifen kann. $KKK(Anfragen an das Servlet weiterleiten) Ist ein Servlet eingeladen und initialisiert, so können Anfragen eines Clienten an das Servlet weitergeleitet werden. Für ein HttpServlet wird folgende Methode aufgerufen. $S() protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException $S\ Je nach Http Methode in der Anfrage, wird innerhalb der service Methode die doGet(), doPost() usw. Methode aufgerufen. $KKK(Servlet zerstören) Ein Servlet muss sich nicht dauernd im Container befinden. Ein Container kann ein Servlet das z.B. lange nicht mehr verwendet wurde zerstören. Bei Bedarf muss wieder ein neues Servlet eingeladen und neu instaniiert und initialisiert werden. Vor dem zerstören eines Servlets wird die Methode destroy()aufgerufen. Damit hat das Servlet noch die Chance wichtige Daten zu speichern. $S() public void destroy(); $S\