Remplacement de la méthode de service HttpServlet
J'ai une servlet qui ressemble à :
public class MyServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
doTheJob(request, response);
}//method doGet
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
doTheJob(request, response);
}//method doPost
private void doTheJob(.....) {
...........................
}
}
En raison de la façon dont mon application fonctionne, j'ai seulement besoin d'appeler doTheJob() à la fois de doGet() et de doPost(). Donc je pense que je ferais mieux de remplacer la méthode service() de la HttpServlet.
Mais je voudrais savoir si cela freinera quelque chose ou s'il cause des problèmes.
source d'informationauteur M-D | 2012-12-15
Vous devez vous connecter pour publier un commentaire.
C'est de cette façon
service()
est généralement mis en œuvre (très simplifié):Comme vous pouvez le voir elle est à peine de délégués à
doGet()
etdoPost()
selon la méthode HTTP. Donc, à partir d'une part de remplacerdoGet()
etdoPost()
avecservice()
est très bien. D'autre part, votre servlet égalementPUT
DELETE
HEAD
et d'autres méthodes distinctesdoGet()
etdoPost()
il sera de retour 405 method not allowed.C'est pourquoi je voudrais en fait des conseils distincts
doGet()
etdoPost()
de déléguer à votre code et laissez servlet poignée d'autres méthodes. Si c'est un motif récurrent dans votre code, considérez les points suivants helper servlet:Vous feriez mieux de la garder comme elle est. Substitution de la
service()
méthode qui rend cette méthode de réponse à METTRE, la TÊTE, les SUPPRIMER, etc. Et elle court-circuite le travail par défautservice()
méthode ne avec de dernière modification des en-têtes.