service() method

I have read somewhere that service() method shd not overriden. I have written a simple servlet which extends HttpServlet and overriden service() method there. It works . Then which is the correct practice? why ?

Override either doPost or doGet (there are others too but they aren't commonly used). The servlet container will call the service method. The service method checks to see if the request is of type POST or type GET. It will then call the appropriate method accordingly.