naukaJavy.pl

  • Zwiększ rozmiar czcionki
  • Domyślny  rozmiar czcionki
  • Zmniejsz rozmiar czcionki
Home Kurs WWW

Servlety

Email Drukuj

Servlety to klasy, których celem jest przetwarzanie żądań HTTP i generowanie zawartości która będzie odesłana w odpowiedzi na te żądania. Innymi słowy, servlety służą do implementacji dynamicznych aplikacji WWW.

Z założenia servlety mogą obsługiwać także protokoły inne niż HTTP, jednak w praktyce ich użycie ogranicza się niemal wyłącznie do implementacji aplikacji WWW opartych na HTTP. Możemy zatem myśleć o servletach jak o narzędziu służącym tylko i wyłącznie do tego właśnie celu.

Przechodząc do konkretów - servlety to klasy, które implementują interfejs javax.servlet.Servlet. Możemy zaimplementować servlet jako klasę implementującą ten interfejs, jednak łatwiej będzie nam zaimplementować klasę dziedziczącą z klasy javax.servlet.http.HttpServlet (która to klasa implementuje interfejs Servlet). Tak właśnie w praktyce robi się najczęściej. Przykład poniżej:

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import
java.io.IOException;
import java.io.PrintWriter;

public class HelloWorldServlet extends HttpServlet {
  private static final long serialVersionUID = 1L;

  protected void doGet(HttpServletRequest request,
                       HttpServletResponse response)
                 throws ServletException, IOException {

    response.setContentType("text/html");

    PrintWriter out = response.getWriter();

    out.println("<html><head><title>My Servlet</title></head><body>");
    out.println("Hello World!");
    out.println("<body></html>");

    out.close();
  }
}

To, jak taki servlet zainstalować na serwerze aplikacji i uruchomić opisałem w artykule "Pierwsza aplikacja WWW".

Każde żądanie HTTP ma swój typ, definiujący akcję którą serwer powinien wykonać w odpowiedzi. Podstawowe typy żądań to żądania GET i POST. Żądanie GET oznacza, że klient wysyłający żądanie do serwera chce pobrać zasób wskazywany przez URI przekazany wraz z tym żądaniem. Żądanie POST oznacza, że klient wysyła do serwera, a konkretnie do zasobu wskazanego przez URI dołączony do żądania, pewną porcję danych i zleca przetworzenie tych danych. W każdym żądaniu przesyłane są dodatkowo (opcjonalnie) parametry, nagłówki, oraz ciasteczka. Każdy taki element żądania możemy pobrać w kodzie Servletu i wykorzystać zgodnie ze swoją niczym nie skrępowaną wolą.

Implementując klasę servletu implementujemy de facto metody obsługujące żądania HTTP. Aby zaimplementować obsługę metody HTTP GET musimy zaimplementować metodę doGet(…).Aby zaimplementować obsługę metody HTTP POST musimy zaimplementować metodę doPost(…). W powyższym przykładzie zaimplementowaliśmy jedynie metodę doGet(…), co oznacza że servlet ten obsługuje tylko i wyłącznie żądania HTTP typu GET.

Metody doGet(…) i doPost(…) przyjmują dwa parametry wywołania – obiekty reprezentujące żądanie i odpowiedź HTTP. Obiekty te są tworzone i przekazywane do implementowanego przez nas servletu przez serwer aplikacji.

Parametr reprezentujący żądanie HTTP to obiekt typu javax.servlet.http.HttpServletRequest. Obiekt reprezentujący odpowiedź to obiekt typu javax.servlet.http.HttpServletResponse. Z instancji reprezentującej żądanie odczytujemy szczegóły żądania (parametry, ciasteczka, nagłówki itd.) a do bufora związanego z instancją reprezentującą odpowiedź zapisujemy to, co ma być odesłane do klienta, czyli elementy strony WWW (np. HTML). W jaki sposób zapisujemy tę odpowiedź widzimy na powyższym przykładzie.

 

Komentarze  

 
-10 2011-09-02 15:04
http://kadoel-kawaczyjava.blogspot.com/2011/08/java-ee6-programowanie-aplikacji-www_4895.html swego czasu napisałem kurs JEE .
 

Wiadomości

Oracle złożył pozew sądowy przeciwko firmie Google, oskarżając o naruszenie patentów i praw autorskich dotyczących platformy Java.

Kością niezgody jest platforma Google Android a zwłaszcza Wirtualna Maszyna Dalvik, zaimplementowana w oparciu o Wirtualną Maszynę Javy, ale niezgodna ze standardem Java SE czy Java ME.

Reklama

Co to jest

Apache Lucene Java to biblioteka open-source napisana w języku Java. Lucene służy do implementacji mechanizmów wyszukiwania pełnotekstowego – taki mały Google, który możemy mieć we własnej aplikacji.


© Wszelkie prawa zastrzeżone dla Mariusza Lipińskiego

kontakt: mariusz.lipinski@naukajavy.pl | strona domowa: www.mariuszlipinski.pl