在我的Web应用程序中,我将从JSP发送两个参数:action
和productCode
到Servlet。基于该动作,将进行一些处理。
现在执行操作后,我将控制权转发给JSP。问题是当打开新JSP时,URL仍然包含Servlet的名称和参数。因此,如果有人刷新页面,将一次又一次地执行相同的操作。
如果我能以某种方式从URL中删除参数,那么我在servlet中处理了一个无参数的情况。
任何人都可以告诉我如何从请求对象中删除参数?
答案 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") = "";
希望这有帮助。