OK, so what is the responsibility of a Servlet. It really is just to be the endpoint of a Web Request, the request comes in and you get the information in the request and session out, and as soon as you do that, pass it off to another
Java Class to do the actual Use Case. Keep all business logic and data access out of the Servlet code. If you put business logic and data access code in the Servlet, you are tightly coupling that code to the Servlet, so lets say you want a Web Service, or some other remote access, you can't because it is in the Servlet.
So a service class is the demarcation of the business logic. So if you are doing say a User registration, then the request comes into the servlet, you get the data out and create your domain classes from that data, then create a Service class instance and call a method on it, say registerUser(User user). That method will call out to your DAOs.
Hope that helps clears out the layered architecture which will help create a loosely coupled application.
Mark