如何使用post DataParameter将请求从过滤器重定向到所需的servlet?

时间:2011-09-23 10:41:00

标签: jsp servlets

我使用以下代码通过使用以下代码片段将请求从过滤器重定向到servlet和jsp: -

   String redirectedServlet = "servletLcation"+"?parameter=abc";
   response.sendRedirect(redirectedServlet.trim());

此处参数作为获取方法传递。我想将此参数作为 post方法传递。

有办法吗?我的发现是截至目前,无法使用response.sendRedirect()向任何servlet发送任何参数。 response.sendRedirect()仅支持get方法将参数从一个servlet传递到另一个servlet。

谢谢,

2 个答案:

答案 0 :(得分:1)

这是正确的 - 你不能用POST发送重定向。

如果需要,可以使用转发(服务器端重定向),这将保留http方法request.getRequestDispatcher("/targetUri").forward(req, resp)

但是仔细使用过滤器中的重定向 - 通常,如果要限制某些访问,则可以这样做。

答案 1 :(得分:0)

要将参数从一个servlet传递到另一个servlet,请将其作为属性放入请求中,并读取接收服务器上的属性。

所以,在你执行rd.forward之前,你必须执行request.setAttribute(“hey”,requestedPage.trim())然后在接收servlet中,拿起它,request.getAttribute(“hey”);并用它做点什么。

顺便说一句,如果您使用过滤器转发到servlet或jsp,那么你做错了。过滤器应该只破坏数据,而不是选择要调用的servlet / jsp。过滤器不是作为控制器,servlet是。

相关问题