Deepak, 1) HttpServlet (or more precisely, its superclass), implement init and destroy. You only need to override them if you have something specific that needs to be done. Init is useful for initializing configuration parameters and the like. I've never had cause to override destroy.
2) Web servers don't communicate with each other directly. A client (browser) makes requests to both and the client combines the information into a web page.