如何使用RequestDispatcher保持url请求?

时间:2013-03-30 22:01:52

标签: java servlets requestdispatcher

我有一个JSP页面来搜索客户。此页面调用控制器,该控制器执行返回客户列表的方法,然后转发到原始URL;

我曾经转发过:request.getRequestDispatcher(urlOrigin).forward(request,response);

(注1:request.getHeader(“Referer”)用于获取完整的原始网址)

(注2:有一种方法可以拆分完整的原始URL并获取名称页面)

既然如此,我在browsear中有以下网址:

(http://domain/ProjetoT/mvc)

它是我的控制器的网址

如果我再次搜索客户将无法正常工作,因为控制器网址将被识别为原始网址。

我尝试使用:response.Sendredirect(urlOrigin);

但是我丢失了我的对象,并且没有呈现客户列表。

任何人都可以帮助我吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以通过用于处理搜索的同一控制器访问JSP页面,而不是直接在浏览器中访问JSP页面。要做到这一点,您必须对控制器进行编程,以检测您是处于初始显示模式还是处于“提交”模式。这通常通过检查提交中发送的参数的存在来完成。

因此,在初始显示模式下,您的控制器只需转发到JSP而无需进一步处理,而在提交模式下,它将执行当前正在执行的操作。这样您就可以在初始显示和提交时使用相同的URL,并且您描述的问题应该消失(即,如果我正确理解您的问题)。