intérieur doGet()/doPost()
dans un servlet J'ai:Réutiliser objet RequestDispatcher
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/pages/view.jsp");
dispatcher.forward(request, response);
Comme le chemin du jsp est pas par rapport à la demande actuelle et la RequestDispatcher
est obtenu à partir du contexte de servlet, puis-je réutiliser le même objet répartiteur plusieurs demandes de telle sorte que RequestDispatcher dispatcher
devient variable d'instance
init()
a
dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/pages/view.jsp");
et doGet()/doPost()
ont juste
dispatcher.forward(request, response);
La raison derrière le faire est d'économiser le coût de la construction (/ recherche) de RequestDispatcher
pour chaque demande. Cela peut vraiment ne pas être significatif si l'implémentation du serveur met déjà en cache les objets et recherche le répartiteur par l'URL pour chaque appel getRequestDispatcher()
, mais en obtenant la référence au répartiteur dans le code init
, nous pouvons également économiser le coût de la recherche.
Vous voulez également savoir si cela sera thread sûr puisque le même objet dispatcher sera utilisé à chaque fois?