| 1600 PMP mock questions | 1400 CAPM mock questions | 800 SCJP 6 mock questions | 600 OCAJP 7 mock questions | 590 OCPJP 7 mock questions | 556 SCWCD 5 mock questions | 500 OCEJWCD 6 mock questions | pdfDownload (java,struts, hibernet etc) | JobsJobs and Walkins |
Servlet interview questions
|
!!! Servlet interview questions !!!What's the difference between init() & init(ServletConfig) in genericServlet ?init(ServletConfig ): The default implementation of init(ServletConfig) does some initialization then calls init(). If you use init(ServletConfig) and forget to call super.init(config) at the start of the method then your Servlet will not be initialized correctly. Called by the servlet container to indicate to a servlet that the servlet is being placed into service. You will get the ServletConfig object. init(): You can get the ServletConfig using getServletConfig(). A convenience method which can be overridden so that there's no need to call super.init(config). Instead of overriding init(ServletConfig), simply override this method and it will be called by GenericServlet.init(ServletConfig config). The ServletConfig object can still be retrieved via getServletConfig(). It is BETTER to use init(). If you use init() you have no such worries as calling super.init(). Details : Before start we have to understand the servlet flow. For example you have servlet LoginServlet which extends HttpServlet public class LoginServlet extends HttpServlet{ } And your HttpServlet internally extends GenericServlet. public abstract class GenericServlet implements Servlet, ServletConfig, Serializable { public GenericServlet() { } public void init() throws ServletException { } public ServletConfig getServletConfig() { return config; } public void init(ServletConfig config) throws ServletException { this.config = config; init(); } public abstract void service(ServletRequest servletrequest, ServletResponse servletresponse) throws ServletException, IOException; private transient ServletConfig config; } Now servlet container flow Step 1. Loads the servlet class and create instance of the servlet class (LoginServlet). LoginServlet login = new LoginServlet(); Step 2. Then servlet container create ServletConfig object for that servlet and Call login.init(ServletConfig); Case 1 : If you have overridden init(ServletConfig) method in your servlet then call goes to your init(ServletConfig) method . public void init(ServletConfig config) throws ServletException { System.out.println("\n**** Initializing LoginServlet Init Servlet ********** \n"); super.init(config); } It will print "Initializing LoginServlet Init Servlet" and call goes to supper class GenericServlet init(ServletConfig) method. In the GenericServlet init(ServletConfig) method there is code This.config= config // initialize the Servlet config object and it is available to you. Case 2 : If you overridden init() method and not overridden init(ServletConfig) method. Servlet container call login.init(ServletConfig); There is no method like init(ServletConfig) in your servlet so call directly goes to super class GenericServlet init(ServletConfig) method. This.config= config // initialize the Servlet config object and it is available to you. You can get the Servlet config object using getServletConfig() method. Conclusion: It is BETTER to use init(). If you use init() you have no such worries as calling super.init(). If you use init(servletconfig) and forgot to call super.init(config) then servletconfig object will not set and you will not get the servletconfig object. |
Suggested JobsMore Jobs >> |