Les Servlets Java Primordial init(ServletConfig config)
Je suis en train de remplacer init(ServletConfig config) méthode.Mon code est:
public void init(ServletConfig config) throws ServletException {
ServletContext sc = getServletContext(); //----- NullPointerException
}
c'est de donner NullPointerException .
Si je le modifie comme:
public void init(ServletConfig config) throws ServletException {
ServletContext sc = config.getServletContext(); //----- works fine
}
Cela fonctionne bien.
Je sais que nous devrions remplacer la méthode init() et ne init(ServletConfig config) mais
Quelqu'un peut-il me donner la bonne raison pourquoi ce qui se passe?
- Où avez-vous trouvez que nous devrions remplacer
init()
méthode et pasinit(ServletConfig config)
? - Je ne dis pas que nous ne pouvons pas remplacer init(ServletConfig config) méthode,nous pouvons, mais j'ai lu que la méthode init() est appelée en interne à partir de init(ServletConfig config) de la méthode, de sorte que nous devrions remplacer la méthode init ().
- Il semble que vous avez déjà votre réponse. Quoi d'autre avez-vous besoin?
- Mendoza : Mais pourquoi NullpointerException se présente?
Vous devez vous connecter pour publier un commentaire.
Comparer la documentation pour
init(ServletConfig)
:Et de la comparer avec la documentation de
init()
:Lors de la substitution
init(ServletConfig)
, la première chose qui doit être fait est d'appeler:Si vous faites cela, alors d'appeler directement
getServletContext()
dans votre méthode n'est plus le résultat dans un NPE.Cela se produit parce que vous écrasez mauvaise méthode de mécanisme
Si vous primordial
Au lieu de l'annulation de la
init(ServletConfig)
, il suffit de surcharger la méthode ci-dessous et il sera appelé parGenericServlet.init(ServletConfig config)
Parce que dans :
vous n'avez pas invoquer
super.init(ServletConfig)
. En conséquence, ServletConfig n'est pas stocké dans la servlet exemple, et les appels suivants à getServletConfig retournera null.Il suffit de mettre la super init(config) à la première ligne de votre méthode substituée