This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
1. service method is common to all HTTP methods like GET, POST, DELETE etc. It gets called whatever the HTTP method of the request is. The default implementation of service method delegates the request to the correct handler for that HTTP method like doGet for GET, doPost for POST etc. If you override the service method, you'll handle all type of HTTP methods with the same code. This might not be correct behavior. Suppose the user sends a DELETE request, then also you'll service that request in a normal form like sending some information etc. But the intention of DELETE requests is to delete the resource.
2. If you want to override the getServletContext and getServletConfig method, you'll also have to override the init(ServletConfig conf) method. The default implementation in the GenericServlet class handles all these details nicely. So normally you only override the init() method without any parameters. This is what the GenericServlet class usually does for you
Implementing this again manually is just a waste of effort...