I'm new for the ATG framework and I want to know different between Servlet and droplet in ATG. I read some tutorials , but still haven't clear idea.
I haven't worked with ATG in a few years, and you may be working with a different version than I did, but a simple way to answer this would be to say that Servlets are more of a J2EE MVC concept, the controller in that case, while Droplets are ATG's "controller". ATG's design patterns aren't exactly MVC (there tends to be quite a bit more logic in the view in most cases), but droplets are meant to be reusable components that the view (your JSPs) use to get data from the model (your xxxManager, xxxService, Repository layer classes, etc.)
For example, if I'm working on a page that is meant to display the shopping cart, I might register a "/Cart" servlet in my web.xml in J2EE. When a doGet is invoked on this servlet, I would call all of the model components I need to gather data about the cart, and use the RequestDispatcher to send that data to a JSP. All of my model/controller logic is done here, and then sent to be rendered by the view.
In ATG, you tend to rely less on web.xml configurations and more on components registered and instantiated by Nucleus. So you might create your cart.jsp and use tags like to grab the data you need ad hoc. You might have a droplet to calculate the current price and display it, or to get promotions applied to the profile and list them. Each piece of data you need for the page, you could use a droplet tag to gather and display.
You might say that droplets tend to be "on page" while servlets are meant to be "between pages."