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

问题描述 投票:4回答:6

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

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

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

谁能告诉我如何从请求对象中删除参数?

java jsp servlets
6个回答
1
投票

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


1
投票

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

也许您是说请求属性

为此您可以使用:

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


0
投票

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

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

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

-1
投票

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

例如:

request.setAttribute("Your_attribute",null);

执行动作时检查不为空可以使用

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

-3
投票

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

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

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.