close

Java-servletit

Siirry navigointiin Siirry hakuun
java-servletit
servlet-komponentti
Yleistä tietoa
kehittäjä Oracle Corporation / Sun Microsystems
Lisenssi Omistusoikeus (ilmainen ei-kaupalliseen käyttöön)
Tekninen informaatio
Aikataulutettu sisään Java
Tuetut alustat Java EE
Versiot
Uusin vakaa versio 3.1 ( info ) ( 28.5.2013 ) _
Linkit

Servlet on Java - ohjelmointikielen luokka , jota käytetään laajentamaan palvelimen ominaisuuksia . Vaikka servletit voivat vastata kaikentyyppisiin pyyntöihin, niitä käytetään yleisesti verkkopalvelimien isännöimien sovellusten laajentamiseen , joten niitä voidaan pitää palvelimissa toimivina Java -sovelmina verkkoselaimien sijaan. Tämän tyyppiset servletit ovat Java-vastine muille dynaamisille Web-sisältötekniikoille, kuten PHP ja ASP.NET .

Sana servlet tulee aikaisemmasta sanasta sovelma , joka viittaa pieniin ohjelmiin, jotka toimivat verkkoselaimen yhteydessä.

Yleisin servlettien käyttö on web-sivujen luominen dynaamisesti selaimen lähettämän pyynnön parametreistä.

Historia

Alkuperäisen servlet-määrityksen loi Sun Microsystems (versio 1.0 valmistui kesäkuussa 1997). Versiosta 2.3 alkaen servlet-spesifikaatio kehitettiin Java Community Process -prosessin mukaisesti .

Elinkaari

1. Alusta servlet

Kun palvelin lataa servletin, se suorittaa initservletin menetelmän. Alustusprosessin on saatava päätökseen ennen kuin se voi käsitellä asiakaspyyntöjä ja ennen kuin servlet tuhoutuu.

Vaikka monet servletit toimivat monisäikeisillä palvelimilla , servleteillä ei ole samanaikaisuusongelmia alustuksen aikana. Palvelin kutsuu menetelmää vain kerran initluodessaan servlet-instanssia, eikä kutsu sitä uudelleen, ellei servlet-palvelinta ladata uudelleen. Palvelin ei voi ladata servlettiä uudelleen tuhoamatta ensin servletiä kutsumalla destroy.

2. Ole vuorovaikutuksessa asiakkaiden kanssa

Alustuksen jälkeen servlet voi palvella asiakkaan pyyntöjä. Nämä pyynnöt palvelee sama servlet-esiintymä, joten jaettujen muuttujien käytössä on oltava varovainen, koska samanaikaisten pyyntöjen välillä voi olla synkronointiongelmia.

3. Tuhoa servlet

Servletit toimivat, kunnes palvelin tuhoaa ne joko sammuttamalla palvelimen tai järjestelmänvalvojan pyynnöstä. Kun palvelin tuhoaa servletin, se suorittaa destroyservletin oman menetelmän. Tämä menetelmä suoritetaan vain kerran ja sitä voidaan kutsua, kun vastauksia on vielä kesken, joten niitä on odotettava huolellisesti. Palvelin ei suorita servlettiä uudelleen ennen kuin se on ladattu ja alustettu uudelleen.

Vaaditut luokat ja objektit

Servlet luodaan paketin javax.servlet mukana .

HttpServletRequest-käyttöliittymä

Tämä linkki sisältää yksityiskohtaisen määritelmän ( englanniksi ): [1]

HttpServletResponse-käyttöliittymä

Tämä linkki sisältää yksityiskohtaiset tiedot (englanniksi): [2]

Servlettien käytön edut CGI:n sijaan

  • Ne ovat tehokkaampia ja käyttävät vähemmän resursseja. CGI käyttää uutta prosessia jokaiselle pyynnölle. Toisaalta Servleteissä virtuaalikoneeseen ladataan vain yksi kopio ja jokaiselle pyynnölle käynnistetään säie, mikä vähentää palvelimen muistin käyttöä ja vasteaikaa.
  • Ne ovat pysyviä, joten ne pysyvät aktiivisina pyynnön päättymisen jälkeen.

Esimerkki

Servlet-koodi, joka käsittelee GET -pyynnön ja palauttaa yksinkertaisen HTML -verkkosivun :

paketti  org.tests ;

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

public  class  HolaSextoInformaticaServlet  laajentaa  HttpServlet  {

    /** 
     * Esimerkki servletistä, joka käsittelee GET-pyynnön 
     * @param request 
     * @param vastaus 
     * @throws ServletException * 
@throws      IOException 
     */ 
    @Override 
    public  void  doGet ( HttpServletRequest  request ,  HttpServletResponse  vastaus )  heittää  ServletException { vastaus ,  . setContentType ( "text/html" ); PrintWriter out = vastaus . getWriter (); ulos . println ( "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//FI\">" ); ulos . println ( "<html>" ); ulos . println ( "<head><title>HelloSextoInformatica Esimerkki</title></head>" ); ulos . println ( "<body>" ); ulos . println ( "<h1>Hei HolaSextoInformatica!</h1>" ); ulos . println ( "</body></html>" ); ulos . sulje (); } } 
        
           
        
        
        
        
        
        
        
    

Katso myös

Ulkoiset linkit