Servlety všeobecne

  • (všeobecný) servlet je podtriedou abstraktnej triedy javax.servlet.GenericServlet, takmer výhradne sú však používané:
  • servlety nad HTTP, čiže podtriedy abstraktnej triedy javax.servlet.HttpServlet.

    Životný cyklus servletu

    Medzi servletmi a CGI skriptami je niekoľko závažných rozdielov počas ich životného cyklu.

    CGI skripty

    1. server prijme požiadavku
    2. server spustí program spracovávajúci CGI skript
    3. server odošle výsledok spracovanie skriptu ako odpoveď na požiadavku

    Servlety

    1. pri spustení webaplikácie server vytvorí jednu, či viac inštancií triedy príslušného servletu
    2. server prijme požiadavku, odošle ju servletu na spracovanie
    3. server odošle výstup vytvorený servletom ako odpoveď na požiadavku
    Najväčší rozdiel medzi týmito prístupmi
  • CGI skripty sa s každou požiadavkou spúšťajú raz
  • servlet sa spustí len raz (vytvorí sa jedna (či viac) inštancií), ktoré vybavujú požiadavky

    Servlet odosielajúci čistý text

    Trieda HelloServlet vypisujúca jednoduchý string "Ahoj, svet!".

      package aiz;
    
      import javax.servlet.*;
      import javax.servlet.http.*;
    
      import java.io.PrintWriter;
    
      public class FirstServlet extends HttpServlet {
          protected void doGet(HttpServletRequest req, HttpServletResponse resp)
              throws ServletException, java.io.IOException {
    
              PrintWriter out = resp.getWriter();
              out.println("Ahoj, svet!");
          }
    
      }
    

    Servlet odosielajúci HTML

    HTML Formuláre a servlety