I have a servlet which can get requests by multiple JSP's.
But when I use the RequestDispatcher in the servlet, I don't know how to forward to the JSP that sent the request.
req.getRequestDispatcher("page.jsp").forward(req, resp);
I know there is something like this in html: javascript:javascript:history.go(-1)
I just need something like this:
req.setAttribute("originalRequest", req.getRequestPage());
req.getRequestDispatcher(originalRequest).forward(req, resp);
That piece of code is probably very noob but it gives you the idea of what I need.
So: I need to forward to the page that sent the original request (basically reload the page), but because multiple jsp's use the servlet, I cannot simply forward to "page.jsp"
You can do following
jspName
and give value for respective JSPs. e.g. for JSP A, parameter name is jspName
and value is a
, for JSP B, parameter name is jspName
and value is b
Read this hidden parameter in the servlet using following code.
String jspName = request.getParameter("jspName");
RequestDispatcher rd = request.getRequestDispatcher(jspName);
rd.forward(request, response);
When you are calling the servlet from JSP A, then it will have paramter japName=a
, when servlet code is running, it will retrieve the value a
from request.getParamter("jspName")
and a getRequestDispatcher(jspName)
will create the dispatcher for the same and rd.forward(request, response)
will forward to the jsp.