[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: servlet forward: things happen twice



> 				RequestDispatcher rd =
> getServletContext().getRequestDispatcher("B");
> 				rd.forward(request, response);
  ^^^^^^^^^^^^^^^^^^
> 			} else {
> 				RequestDispatcher rd =
> request.getRequestDispatcher("C");

I am sure someone out there has the time to explain this. (busy at work).  But to me, it seems kind of ambigious on the part of the API to have a getRequestionDispatcher() for javax.servlet.ServletContext and javax.servlet.http.HttpServletRequest.  Does someone have a good example where this can be VERY useful?



> 
> From: Yong Wang <wymz@yahoo.com>
> Date: 2003/02/11 Tue AM 11:47:16 EST
> To: ajug-members@ajug.org
> Subject: servlet forward: things happen twice
> 
> Hi, I wonder if anyone could spot the problem here bcz
> I am sure it is something very simple that I
> overlooked:
> 
> I have three servlets, A, B and C, where A forwards to
> B or C based on some flags in request parameter. But
> when A forwards to B, somehow both servlet A and B get
> called twice by only a single get request. The
> environment is tomcat 4.1.
> 
> Servlet A
> =========
> 	public void doPost(HttpServletRequest request,
> HttpServletResponse response) throws ServletException
> 	{
> 		doPost(request, response);
> 	}
> 
> 	public void doGet(HttpServletRequest request,
> HttpServletResponse response) throws ServletException
> 	{
> 
> 		String key = (String) request.getParameter("key");
> 		String idx = (String) request.getParameter("index");
> 
> 		try
> 		{
> 			if (key != null && idx != null) {
> 				RequestDispatcher rd =
> getServletContext().getRequestDispatcher("B");
> 				rd.forward(request, response);
> 			} else {
> 				RequestDispatcher rd =
> request.getRequestDispatcher("C");
> 				rd.forward(request, response);
> 		} catch (Exception e) {
> 			;
> 		}
> 
> Servlet B
> =========
> 
> 	public void doPost(HttpServletRequest request,
> HttpServletResponse response) throws ServletException
> 	{
> 		doPost(request, response);
> 	}
> 
> 	public void doGet(HttpServletRequest request,
> HttpServletResponse response) throws ServletException
> 	{
> 		String key = (String) request.getParameter("key");
> 		String idx = (String) request.getParameter("key");
> 
> 	// do some processing and output to response...
> 	}
> 
> Servlet C (actually a JSP)
> ===========
> code omitted.
> 
> I would appreciate any insight. pls email me directly
> if you want to see the entire source listing. Thanks!
> 
> yong
> 
> =====
> 
> // My alternate email: yongwang@mindspring.com
> 
> 
> __________________________________________________
> Do you Yahoo!?
> Yahoo! Shopping - Send Flowers for Valentine's Day
> http://shopping.yahoo.com
> 
>