如何从HttpServletRequest请求中删除参数?

时间:2014-10-21 19:07:27

标签: java jsp servlets

在我的Web应用程序中,我将从JSP发送两个参数:actionproductCode到Servlet。基于该动作,将进行一些处理。

现在执行操作后,我将控制权转发给JSP。问题是当打开新JSP时,URL仍然包含Servlet的名称和参数。因此,如果有人刷新页面,将一次又一次地执行相同的操作。

如果我能以某种方式从URL中删除参数,那么我在servlet中处理了一个无参数的情况。

任何人都可以告诉我如何从请求对象中删除参数?

6 个答案:

答案 0 :(得分:1)

您无法从HttpServletRequest中删除参数。参数的定义是它来自客户端(浏览器)。

也许您的意思是请求属性

为此您可以使用:

request.getAttribute(String name)
request.setAttribute(String name, Object o)
request.removeAttribute(String name)

答案 1 :(得分:0)

正向操作对客户端是透明的,并将请求转发到另一个处理程序以进行处理。也许前锋并不完全是你想做的事。

答案 2 :(得分:0)

答案 3 :(得分:0)

您不能从HttpServletRequest中删除参数-但可以通过传递此参数的新值来更改其值。

例如,登录后隐藏密码值,您可以通过以下方式转发到下一个servlet /页面:

"*/PAM_show_orders?orderDate=2020-04-16&**password=+++***".

答案 4 :(得分:-1)

您可以执行的操作是将该参数设置为null,然后在执行任何操作之前检查该属性是否设置为null。这样,您仍然可以使用请求转发。

例如:

request.setAttribute("Your_attribute",null);

执行操作时检查不为null可以使用

String para=request.getAttribute("Your_attribute");
if(para.equals(null)){
    //do this 
}
else{
    //do something else
}

答案 5 :(得分:-3)

当您的请求处理程序结束时,您可以使用:

response.setParameter("action") = "";
response.setParameter("productCode") = "";

希望这有帮助。