service method invocation
Hi,
Extended HttpServlet to one of my servlet class and implemented following both methods,
.... service(ServletRequest,ServletResponse) throws ........
.... service(HttpServletRequest,HttpServletResponse) throws ........
What method will get invoked if a request comes to the servlet and why
Thanks
Badri
[349 byte] By [
pnatha] at [2007-10-2 21:33:50]

are u sure that u can use both
.... service(ServletRequest,ServletResponse) throws ........
.... service(HttpServletRequest,HttpServletResponse) throws ........
i think since u have extended HttpServlet so, only u can use service(HttpServletRequest,HttpServletResponse) throws ........ method only..when u r going to try with others should give u error.
if any request comes the execution will start from
service(ServletRequest,ServletResponse) throws
This is because when ever a request come to the container it creates two object first one request which implements javax.servlet.ServletRequest interface and second response object which implements javax.servlet.ServletResponse interface.
According to servlet lifecycle also it will call the service method signature defined in javax.servlet.Servlet interface which due to polymorfism call
service(ServletRequest,ServletResponse) throws
mothod of the chid class
[nobr]you can test , what i said by executing the following section of code
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Test123 extends HttpServlet implements Servlet {
public Test123() {
super();
}
protected void doGet(HttpServletRequest arg0, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out= response.getWriter();
out.println("<br>HttpServletRequest in doget()");
}
public void service(ServletRequest request, ServletResponse response)throws IOException, ServletException
{
response.setContentType("Text/Html");
PrintWriter out= response.getWriter();
out.println("<br>ServletRequest");
super.service(request,response);
}
public void service(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException
{
PrintWriter out= response.getWriter();
out.println("<br>HttpServletRequest");
super.service(request,response);
}
}
The out put is -
ServletRequest
HttpServletRequest
HttpServletRequest in doget()
as i explained[/nobr]