A czym że to jest ? Servlet API to zbiór klas i interface’ów które umożliwiają komunikację z użytkownikiem i dynamicznie przygotowywanie treści w odpowiedzi na żądanie. Servlet jest to napisana w języku Java klasa, ładowana i obsługiwana poprzez serwer WWW lub serwer aplikacji współpracujący z serwerem WWW, która umie odebrać żądanie i odpowiednio obrobić i wygenerować odpowiedź. Ci którzy mieli styczność ze skryptami CGI zapewne zauważą podobieństwa, Servlet jest prawie tym samym co skrypt PHP. Jednak ja mówi stare chińskie przysłowie „prawie robi wielką różnicę”.
Niezaprzeczalne zalety servletów to większa szybkość działania (każde żądanie jest obsługiwane w nowym wątku) oraz większe bezpieczeństwo. Do wad należy zaliczyć wymaganie na dość silną maszynę, w szczególności chodzi tu o dostępną pamięć.
Aby servlet mógł być servletem a nie zwykłą klasą musi implementować interface javax.servlet.Servlet.
interface javax.servlet.Servlet
{
void destroy();
ServletConfig getServletConfig();
String getServletInfo();
void init(ServletConfig config);
void service(ServletRequest req, ServletResponse res);
}
Metoda destroy jest uruchamiana przez serwer aplikacji celem zniszczenia servletu. Dwie metody init oraz service mają za zadanie „zarządzanie” cyklem życia servletu. Pierwsza z wyżej wymienionych metod jest wywoływana tylko raz w całym cyklu życia servletu. Ma to zawsze miejsce przed obsługą przez servlet jakichkolwiek żądań klientów. Natomiast zadaniem metody service jest obsługa żądania. Metoda przyjmuje 2 parametry, pierwszy z nich definiuje żądanie skierowane do serwera, a drugi będzie zawierał wygenerowaną odpowiedź.
Tworzenie za każdym razem klasy implementującej ten interface może się okazać zadaniem dosyć żmudnym dlatego do dyspozycji mamy jeszcze 2 klasy: GenericServlet – klasa obsługująca żadania nie zależenie od protokołu, jednak wymaga samodzielnej implementacji metody service, oraz klasa HttpServlet do wykorzystania wraz z protokołem HTTP. Oczywistą zaletą tej klasy jest w pełni zaimplementowany mechanizm sterownia życiem servletu. Rola programisty ogranicza się właściwie do przysłonięcia metod typowych dla żadań HTTP takich jak POST (metoda doPost), GET (doGet), HEAD, OPTIONS, PUT, TRACE, DELETE. Nie trzeba chyba nikogo przekonywać że w 99% przypadków nadpisywana jest jedna z dówch pierwszych metod lub obie.
Witam, nazywam się Piotr Doniec, w internecie występuję pod nickami 'pejotr' oraz 'doniczek'. Obecnie jestem studentem 3 roku informatyki na Politechnice Warszawskiej na wydziale Elektroniki i Technik Informacyjnych.