close

Java-servlets

Gå til navigasjon Gå til søk
java-servlets
servlet-komponent
Generell informasjon
utvikler Oracle Corporation / Sun Microsystems
Tillatelse Proprietær (gratis for ikke-kommersiell bruk)
Teknisk informasjon
Planlagt inn Java
Støttede plattformer Java EE
Versjoner
Siste stabile versjon 3.1 ( info ) ( 2013-05-28 ) _
Linker

En servlet er en klasse i programmeringsspråket Java , som brukes til å utvide mulighetene til en server . Selv om servlets kan svare på alle typer forespørsler, brukes de ofte til å utvide applikasjoner som er vert for webservere , slik at de kan sees på som Java-appleter som kjører på servere i stedet for nettlesere. Disse typene servlets er Java-motstykket til andre dynamiske webinnholdsteknologier, for eksempel PHP og ASP.NET .

Ordet servlet kommer fra et tidligere ord, applet , som refererer til små programmer som kjører i sammenheng med en nettleser.

Den vanligste bruken av servlets er å dynamisk generere nettsider fra parametrene til forespørselen sendt av nettleseren.

Historikk

Den originale servlet-spesifikasjonen ble laget av Sun Microsystems (versjon 1.0 ble fullført i juni 1997). Fra og med versjon 2.3 ble servlet-spesifikasjonen utviklet etter Java Community Process .

Livssyklus

1. Initialiser servletten

Når en server laster en servlet, kjører den initservletens metode. Initialiseringsprosessen må fullføres før den kan håndtere klientforespørsler, og før servleten blir ødelagt.

Selv om mange servlets kjører på flertrådede servere , har ikke servlets samtidighetsproblemer under initialisering. Serveren kaller metoden bare én gang initnår den oppretter servlet-forekomsten, og vil ikke kalle den igjen med mindre servleten lastes inn på nytt. Serveren kan ikke laste en servlet på nytt uten først å ødelegge servleten ved å kalle destroy.

2. Samhandle med kunder

Etter initialisering kan servleten betjene klientforespørsler. Disse forespørslene vil bli servert av samme servlet-forekomst, så det må utvises forsiktighet når du får tilgang til delte variabler, da det kan være synkroniseringsproblemer mellom samtidige forespørsler.

3. Ødelegg servletten

Servlets kjører til serveren ødelegger dem, enten ved å slå av serveren eller på forespørsel fra systemadministratoren. Når en server ødelegger en servlet, kjører den destroyservletens egen metode. Denne metoden utføres bare én gang og kan kalles når det fortsatt er svar i prosess, så man må passe på å vente på dem. Serveren vil ikke kjøre servleten igjen før den er lastet inn og initialisert på nytt.

Nødvendige klasser og objekter

En Servlet opprettes med pakken javax.servlet .

HttpServletRequest-grensesnitt

Denne lenken for å se inneholder den detaljerte definisjonen (på engelsk ): [1]

HttpServletResponse-grensesnitt

Denne lenken inneholder den detaljerte spesifikasjonen (på engelsk): [2]

Fordeler med å bruke Servlets i stedet for CGI

  • De er mer effektive og bruker færre ressurser. CGI bruker en ny prosess for hver forespørsel. På den annen side, i Servlets er det kun én kopi som er lastet inn i den virtuelle maskinen og det startes en tråd for hver forespørsel, noe som reduserer serverens minnebruk og responstid.
  • De har utholdenhet, så de forblir aktive etter at forespørselen er fullført.

Eksempel

Servlet-kode som behandler en GET -forespørsel og returnerer en enkel HTML -nettside :

pakke  org.tester ;

import  java.io.IOException ; 
import  java.io.PrintWriter ; 
import  javax.servlet.ServletException ; 
importer  javax.servlet.http.HttpServlet ; 
import  javax.servlet.http.HttpServletRequest ; 
import  javax.servlet.http.HttpServletResponse ;

offentlig  klasse  HolaSextoInformaticaServlet  utvider  HttpServlet  {

    /** 
     * Eksempelservlet som behandler en GET-forespørsel 
     * @param-forespørsel 
     * @param-svar 
     * @throws ServletException 
* @throws      IOException 
     */ 
    @Override 
    public  void  doGet ( HttpServletRequest  request ,  HttpServletResponse  response )  kaster  ServletException ,  IOException  . setContentType ( "tekst/html" ); PrintWriter ut = svar . getWriter (); ut . println ( "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">" ); ut . println ( "<html>" ); ut . println ( "<head><title>HelloSextoInformatica Eksempel</title></head>" ); ut . println ( "<body>" ); ut . println ( "<h1>Hei HolaSextoInformatica!</h1>" ); ut . println ( "</body></html>" ); ut . lukk (); } }
        
           
        
        
        
        
        
        
        
    

Se også

Eksterne lenker