By using standard features of the Java language, such as the built-in networking support of the java.net package, a servlet can access anot...
By using standard features of the Java language, such as the built-in networking support of the java.net package, a servlet can access another servlet’s resources in a number of different ways. A servlet can make an HTTP request to another servlet, and filter this response back to the client. By opening a connection to a URL, an HTTP request can be made, and a response received. In this way, the servlet is acting as both a client and a server-side process, and it has access to resources that could be on another server. There is really no magic here, any Java program can theoretically perform this kind of function. A servlet can also instantiate a servlet object, and call its public methods directly, if the called servlet class is found relative to the original servlet’s scope (which is usually on the same server). To instantiate a servlet object, you can use these methods:
❑ Getting the object via servlet context: Using the ServletContext object, we can get access to any other servlets that are part of the Web application that we defined:
myHttpServlet myServlet =getServletConfig().getServletContext().getServlet("myServlet");
❑ Using class instantiation: This is just standard Java class instantiation, and we just have to find the servlet class in the class path of the Web application:
myHttpServlet myServlet =(myHttpServlet)Class.forName("myServlet").newInstance()
This technique was common in the JSDK 2.0. We will not show any examples of this technique because request dispatching, available in JSDK 2.1, is more preferred. It does, however, demonstrate one technique for servlet-to-servlet interaction.