Quelle est la différence entre GenericServlet, HttpServlet et une Servlet?
J'étais à la recherche de la différence exacte entre javax.servlet.http.HttpServlet
javax.servlet.GenericServlet
et javax.Servlet
incapable de la trouver.
"La Différence exacte" signifie
- Utilisation
- Raison derrière
javax.servlet.GenericServlet
existence
- C'est juste déjà répondu dans leur documentation javadoc. Vous l'avez lu? Servlet, GenericServlet et HttpServlet
Vous devez vous connecter pour publier un commentaire.
"La différence exacte" cela signifie quoi? L'API répertorie les exacte différences.
Servlet
est une interface qui définit ce qu'est un servlet doit mettre en œuvre.GenericServlet
est juste que, un générique, indépendantes du protocole de servlet.HttpServlet
est une servlet liée spécifiquement pour le protocole HTTP.Demandez-vous quand vous pourriez avoir utilisation l'un de ceux-là?
En général, vous étendre
HttpServlet
de mettre en œuvre une application web couche.Vous pourriez mettre en œuvre
Servlet
si vous écrivez votre propre conteneur ou de la manipulation de tout vous-même. Vous pouvez étendreGenericServlet
pour gérer un protocole différent, mais vous ne pouvez pas.You might implement Servlet if you're writing your own container or handling everything yourself
javax.servlet
Servlet est un serveur web côté de la technologie. Comme son nom l'indique, il sert un client demande et reçoit une réponse du serveur. Vous avez à mettre en œuvre javax.Servlet (Interface) pour gérer une servlet travail.
javax.servlet.GenericServlet
Signature:
init et de détruire et de méthodes dans le ServletConfig interface.
ServletContext interface.
abstract service() de la méthode.
javax.servlet.http.HttpServlet
Signature:
plus faciles.
propriétés de GenericServlet.
javax.servlet.Servlet est de l'interface, il définit des méthodes pour toutes les implémentations - c'est ce que les interfaces d'habitude.
javax.servlet.GenericServlet est indépendant du protocole. Il est abstrait, donc il ne sera pas directement instancié. Il est utilisable en classe pour étendre, si vous un jour écrire servlet pour autre protocole que HTTP.
javax.servlet.http.HttpServlet est classe abstraite pour être prolongé si vous souhaitez communiquer via le protocole HTTP. Très probablement, vous n'avez qu'à les soins à ce sujet.
Des renseignements plus précis, vous pouvez trouver derrière le liens.
-> Une caractéristique commune est, ces deux Classes sont des Classes Abstraites.
-> GenericServlet est une super-classe de la classe HttpServlet.
-> La principale différence est que, HttpServlet est un protocole dépendant alors que GenericServlet est indépendant du protocole. Donc GenericServlet peut gérer tous les types de protocoles, mais HttpServlet poignée seulement HTTP protocoles spécifiques.
-> GenericServlet appartient à javax.servlet paquet. HttpServlet appartient à javax.servlet.http paquet
-> GenericServlet est une classe abstraite qui s'étend de l'Objet et met en œuvre Servlet, ServletConfig et java.io.Serializable interfaces. HttpServlet est une classe abstraite qui s'étend GenericServlet et implémente java.io.L'interface Serializable.
-> GenericServlet prend uniquement en charge le service() la méthode ne contient pas de doGet() et doPost() méthodes. HttpServlet également un support doGet(), doPost(), doHead() les méthodes HTTP (1.0), plus le doput(), doOptions(), le dodelete(), doTrace() méthodes (HTTP 1.1).
Servlet:-
GenericServlet:-
HttpServlet:-
HttpServlet
est spécifique pour le protocole HTTP, et donc il fournit des méthodes pour les verbes HTTP:doGet
,doPost
, etc, et une version du génériqueservice
méthode qui prend HTTP spécifique de la demande et de la réponse des objets. C'est un type spécial deServlet
qui est en fait une jolie interface minimale.GenericServlet
est la base, le protocole neutre de la mise en œuvre de laServlet
interface. Souvent, vous verrez base implémentations des interfaces de l'API; dans ce casGenericServlet
ajoute un peu de fonctionnalité à laServlet
API:getServletName
,getServletInfo
, et passer-par le biais de méthodes pour la servlet initialisation des paramètres.HttpServlet
avantages de ces ajouts en étendantGenericServlet
.En général tout le monde de codage par rapport à cette API est à l'aide de
HttpServlet
pour la mise en œuvre de services web HTTP, mais on peut aussi étendre ou utiliserGenericServlet
pour la mise en œuvre de serveur/service de la fonctionnalité à l'aide d'un protocole personnalisé, ou un autre protocole existant, par exemple, FTP.Servlet est une interface qui contient cinq méthodes abstraites afin d'utiliser servlet nous avons pour fournir une implémentation pour l'ensemble de ces cinq méthodes, ce qui est un mal de tête. Afin d'éviter cette complexité, nous avons GenericServlet et HttpServlet pour le prochain niveau.
GenericServlet est indépendant du protocole, cela signifie qu'il peut accepter toute demande du protocole.
GenericServlet peut avancer et de comprendre une demande, mais nous ne pouvons pas suivre la demande.
Session, Gestion des cookies et de HttpSession n'est pas possible de GenericServlet.
Dans GenericServlet il n'est pas possible de définir une logique séparée pour get et post.
HttpServlet selon le protocole. cela signifie, il n'accepte que le protocole HTTP demande.
HttpServlet pouvez transférer et de les inclure et de rediriger une requête.
Session, Gestion des cookies et de HttpSession est possible dans HttpServlet.
Dans HttpServlet il est possible de définir une logique séparée pour get et post.
Son la super interface pour GenericServlet et HttpServlet. Il contient 5 méthodes abstraites et tous hérité par GenericServlet et HttpServlet.
Si vous souhaitez créer une servlet par la mise en œuvre de Servlet interface tous les 5 méthodes abstraites de l'interface Servlet doit être remplacée eventhough Programmeur n'est pas intéressé
Seulement de mettre en œuvre Servlet interface si vous souhaitez développer votre propre conteneur.
Ses immédiate sous-classe de la Servlet interface et super classe HttpServlet. Dans cette classe, une méthode abstraite existent: service(). 4 autres méthodes abstraites sont mis en œuvre dans cette classe.
Toutes les méthodes sont en béton, sauf au service de() la méthode, de Sorte que vous avez à mettre en œuvre une méthode de rappel.
Il est indépendant du protocole, donc Peut être utilisé avec n'importe quel protocole comme le FTP, SMTP, HTTP, etc.
Son sous-classe à la fois de GenericServlet et Servlet interface. Super immédiate classe HttpServlet est GenericServlet. HttpServlet ne contiennent pas de méthode abstraite. Bien que la HttpServlet ne contient pas toutes les méthodes abstraites, il est déclaré comme classe abstraite par les Concepteurs afin de ne pas permettre à la personne de créer un objet directement, car une Servlet objet est créé par le Conteneur de Servlet.
HttpServlet selon le protocole et utilisé spécifiques au protocole HTTP uniquement.
service() la méthode n'a pas besoin d'être remplacée. Il peut être remplacé par doGet() ou de méthodes de doPost() avec les mêmes paramètres. Ses plus la méthode la plus utilisée pour créer servlet.
hiérarchie
Référence: way2java.com
-->
GenericServlet
pouvez traiter plusieurs à la demande des clients à partir d'un seul formulaire. Alors que,HttpServlet
pouvez traiter plusieurs clients de demande à partir de plusieursHTML
formes.-->
GenericServlet
est Apatride etHttpServlet
est Dynamique.Toutes les classes, les interfaces et les méthodes présentes dans la
javax.servlet
paquet de protocole indépendant (générique à tous les protocoles).En revanche, toutes les classes, les interfaces et les méthodes présentes dans la
javax.servlet.http
paquet de protocole dépendante (spécifique pour le protocole HTTP)