重定向getRequestDispatcher

时间:2016-02-11 16:52:55

标签: java url-redirection requestdispatcher

HY, 我有一个代码拦截所有请求(GET和POST),并最终使用表单重定向到另一个页面。 我希望当用户发布表单时,执行初始截获的请求

我的实际代码:

public void doFilter(ServletRequest originalRequest, ServletResponse res, FilterChain chain){
  originalRequest.getRequestDispatcher("/message").forward(request, res);
}

...

@RequestMapping("/message", method=GET)
public void showMessageForm(...){
...
}
@RequestMapping("/message", method=POST)
public void messageOk(ServletResponse res, ModelAndView mav){
//redirect to the originalRequest.
  ????
}

originalRequest可以是GET或POST。如果它是帖子,我也希望传输表单的内容。

谢谢!

1 个答案:

答案 0 :(得分:1)

您的messageOk方法需要返回一个页面,其中包含一个表单,该表单包含已传递的每个字段的隐藏字段+一个“确定”按钮。如下所示:

<form method="POST or GET" action="origin url">
  <input type="hidden" name="param1" value="value for param1"/>
  ... for each input ...
  <input type="hidden" name="paramN" value="value for paramN"/>
  <input type=submit" value="Continue"/>
</form>

只要您没有正在上传文件的POST,这就应该有效。您可能希望在应用程序中考虑更简单的流程,例如仅在有人登录时强制执行此页面。