Avui tots som conscients de la necessitat de crear pàgines web dinàmiques és a dir, els que poden canviar el contingut del lloc segons el temps o poden generar el contingut segons la sol·licitud rebuda del client. Si t'agrada la codificació en Java, t'alegrarà saber que utilitzant Java també existeix una manera de generar pàgines web dinàmiques i així és Servlet Java . Però abans d'avançar amb el nostre tema, primer entenem la necessitat d'extensions del costat del servidor.
Què és Java Servlet?
Els servlets Java són els programes Java que s'executen al servidor web o al servidor d'aplicacions habilitat per Java. S'utilitzen per gestionar la sol·licitud obtinguda del servidor web, processar la sol·licitud, produir la resposta i després enviar una resposta al servidor web.
Propietats de Java Servlet
Les propietats dels servlets són les següents:
- Els servlets funcionen al costat del servidor.
- Els servlets són capaços de gestionar peticions complexes obtingudes del servidor web.
Arquitectura de servlets Java
L'arquitectura de servlet es pot representar a partir de la pròpia imatge tal com es mostra a continuació de la següent manera:
Execució de servlets Java
Execució de servlets bàsicament implica sis passos bàsics:
- Els clients envien la sol·licitud al servidor web.
- El servidor web rep la sol·licitud.
- El servidor web passa la sol·licitud al servlet corresponent.
- El servlet processa la sol·licitud i genera la resposta en forma de sortida.
- El servlet envia la resposta al servidor web.
- El servidor web envia la resposta al client i el navegador del client la mostra a la pantalla.
Ara parlem del punt excèntric que per què necessitem extensions del costat del servidor?
Necessitat d'extensions del costat del servidor
El Extensions del costat del servidor no són més que les tecnologies que s'utilitzen per crear pàgines web dinàmiques. En realitat, per oferir la facilitat de pàgines web dinàmiques, les pàgines web necessiten un contenidor o servidor web. Per complir amb aquest requisit, els proveïdors de servidors web independents ofereixen algunes solucions pròpies en forma de API ( Interfície de programació d'aplicacions).
Aquests API ens permeten crear programes que es puguin executar amb un servidor web. En aquest cas, Servlet Java també és una de les API components de Java Platform Enterprise Edition (avui coneguda com a 'Jakarta EE') que estableix estàndards per crear aplicacions web dinàmiques en Java.
Abans d'aprendre sobre alguna cosa, és important saber la necessitat d'aquesta cosa, no és així que aquesta sigui l'única tecnologia disponible per crear pàgines web dinàmiques. La tecnologia Servlet és similar a altres extensions de servidor web com ara Interfície de passarel·la comuna ( CGI) scripts i Preprocessador d'hipertext (PHP). Tanmateix, els servlets Java són més acceptables ja que resolen les limitacions de CGI com ara un baix rendiment i un baix grau d'escalabilitat.
Què és CGI (Common Gateway Interface)?
CGI és en realitat una aplicació externa que s'escriu utilitzant qualsevol dels llenguatges de programació com C o C++ i aquest s'encarrega de processar les peticions dels clients i generar contingut dinàmic.
A l'aplicació CGI, quan un client fa una sol·licitud per accedir a pàgines web dinàmiques, el servidor web realitza les operacions següents:
- Primer localitza la pàgina web sol·licitada és a dir l'aplicació CGI necessària mitjançant l'URL.
- A continuació, crea un nou procés per atendre la sol·licitud del client.
- Invoca l'aplicació CGI dins del procés i passa la informació de la sol·licitud a l'aplicació.
- Recull la resposta de l'aplicació CGI.
- Destrueix el procés, prepara la resposta HTTP i l'envia al client.
Així, en CGI El servidor ha de crear i destruir el procés per a cada sol·licitud. És fàcil entendre que aquest enfocament és aplicable per a la gestió de pocs clients, però a mesura que augmenta el nombre de clients, augmenta la càrrega de treball al servidor i, per tant, augmenta el temps que es dedica a processar les sol·licituds.
Diferència entre Servlets Java i CGI
Servlet | CGI (Interfície de passarel·la comuna) |
---|---|
Els servlets són portàtils i eficients. | CGI no és portàtil. |
Als servlets, és possible compartir dades. | A CGI, no és possible compartir dades. |
Els servlets poden comunicar-se directament amb el servidor web. | CGI no es pot comunicar directament amb el servidor web. |
Els servlets són menys cars que els CGI. | CGI és més car que els servlets. |
Els servlets poden gestionar les galetes. | CGI no pot gestionar les galetes. |
API de servlets
Els servlets es construeixen a partir de dos paquets:
- javax.servlet (bàsic)
- javax.servlet.http(Avançat)
Diverses classes i interfícies presents en aquests paquets són:
Component | Tipus | paquet |
---|---|---|
Servlet | Interfície | javax.servlet.* |
ServletRequest | Interfície | javax.servlet.* |
ServletResponse | Interfície | javax.servlet.* |
GenericServlet | Classe | javax.servlet.* |
HttpServlet | Classe | javax.servlet.http.* |
HttpServletRequest | Interfície | javax.servlet.http.* |
HttpServletResponse | Interfície | javax.servlet.http.* |
Filtre | Interfície | javax.servlet.* |
ServletConfig | Interfície | javax.servlet.* |
Avantatges d'un Servlet Java
- Servlet és més ràpid que CGI, ja que no implica la creació d'un nou procés per a cada nova sol·licitud rebuda.
- Els servlets, tal com estan escrits en Java, són independents de la plataforma.
- Elimina la sobrecàrrega de crear a nou procés per a cada sol·licitud, ja que el Servlet no s'executa en un procés independent. Només hi ha una única instància que gestiona totes les sol·licituds simultàniament. Això també estalvia la memòria i permet que un servlet gestione fàcilment l'estat del client.
- És un component del costat del servidor, de manera que Servlet hereta el seguretat proporcionat pel servidor web.
- El API dissenyat per a Java Servlet adquireix automàticament els avantatges de les plataformes Java com ara independent de la plataforma i portabilitat. A més, òbviament pot utilitzar l'àmplia gamma d'API creades en plataformes Java com ara JDBC per accedir a la base de dades.
- Molts servidors web que són adequats per a ús personal o llocs web de poc trànsit s'ofereixen de manera gratuïta o molt costos barats per exemple. Servlet Java. Tanmateix, la majoria dels servidors web de qualitat comercial són bastant cars, amb l'excepció notable d'Apache, que és gratuït.
El contenidor de servlets
Contenidor servlet , també conegut com motor servlet, és un conjunt integrat d'objectes que proporcionen un entorn de temps d'execució per als components de Java Servlet. En paraules senzilles, és un sistema que gestiona components Java Servlet a la part superior del servidor web per gestionar les sol·licituds del client web.
Serveis que ofereix el contenidor Servlet:
- Serveis de xarxa: Carrega una classe Servlet. La càrrega pot ser des d'un sistema de fitxers local, un sistema de fitxers remot o altres serveis de xarxa. El contenidor Servlet proporciona els serveis de xarxa a través dels quals s'envien la sol·licitud i la resposta.
- Descodificar i codificar missatges basats en MIME: Proporciona el servei de descodificació i codificació de missatges basats en MIME.
- Gestiona el contenidor de servlets: Gestiona el cicle de vida d'un Servlet.
- Gestió de recursos Gestiona els recursos estàtics i dinàmics, com ara fitxers HTML, servlets i pàgines JSP.
- Servei de seguretat: Gestiona l'autorització i l'autenticació de l'accés als recursos.
- Gestió de sessions: Manté una sessió afegint a ID de sessió al camí de l'URL.
Conclusió
Servlets Java són components crucials per definir la lògica de negoci i gestionar peticions web complexes. Aquests components promouen el desenvolupament dinàmic d'un lloc web i tenen un gran potencial per canviar la dinàmica de l'aplicació. Aquestes són algunes de les característiques clau que aprenem en aquest article:
- Els Java Servlets ajuden al desenvolupament del desenvolupament d'aplicacions del costat del servidor i proporcionen una manera de tractar el contingut dinàmic per crear llocs web sòlids i interactius.
- Tan bon punt la sol·licitud arriba al servidor web, s'inicializa una instància de servlet utilitzant calor () mètode, i la sol·licitud HTTP en funció del seu tipus es pot gestionar amb els mètodes doGet() o doPost().
- Els servlets fan que la nostra aplicació web sigui més sensible i eficient, ja que no crea ni destrueix un procés cada vegada que es rep una sol·licitud.
Preguntes freqüents sobre Java Servlet
Q1. Quin és el cicle de vida de Java Servlet?
Java Servlet té un cicle de vida predefinit que comença des de l'inicialitzador (assignació de memòria) fins que l'objecte es destrueix (desassignació de memòria). Es realitza en els següents passos:
- init() – es crida tan bon punt el servidor web rep la sol·licitud i s'inicializa una nova instància de servlet.
- service() - per gestionar la sol·licitud del client i redirigir la sol·licitud a un doGet() o doPost() adequat
- destroy() – cridat quan es gestiona la sol·licitud, la resposta s'envia al client i, finalment, es desassigna la memòria assignada al servlet.
P2. Com configurar un servlet Java?
La configuració de Java Servlet es defineix dins d'a descriptor de desplegament dossier - web.xml. Tot i que, ara és un llegat, ja que la majoria d'aplicacions basades en servlets utilitzen avui dia una configuració basada en anotacions per configurar un servlet Java mitjançant @WebServlet Annotation.
Exemple: @WebServlet (nom = MyServlet, urlPatterns = /myServlet)
P3. Què és un filtre de servlet?
Un filtre de servlet és un component addicional per realitzar treballs de processament previ a les sol·licituds web, com ara el registre, la supervisió, la depuració i la resolució de problemes.