1. the first include is a static include (ie it always includes the same
file) the second is dynamic (ie you can change what gets included at
runtime - say by evaluating some condition to determion which file you
want to include)
2. much the same really - you would use the interface if your class
already extended something else (interfaces are java's way of doing
mutiple inheritance of a sort)
3. HttpServlet adds Http specific stuff - it's what you would use most
of the time.