坚不可摧 - HTTP参数

Jay*_*Jay 0 java servlets

我总是想知道为什么Servlet API中没有removeParameters()方法.这个设计背后的动机可能是什么?这是一个场景:我在一个我不得不使用的专有MVC框架中遇到了挑战.这个框架使用一个Controller Servlet,在它的post方法中托管一个算法:

doPost() {
//create instance of action - just like struts action
action.init
action.preexecution
if(redirection state is not set)
action.process
action.postprocess
action.finish
}
Run Code Online (Sandbox Code Playgroud)

我可以跳过任何特定操作的过程的唯一方法是设置重定向URL.Controller Servlet是FINAL.现在,当我从一个动作的预执行方法执行requestdispatcher.forward时,控制器将继续执行其余的方法,而不是跳过其余的方法.我不能改变这种行为,也不能设置重定向,因为我需要做一个前进.只要我没有将请求转发给同一个动作,它就可以正常工作.当请求转发到同一操作时,http参数都是相同的.这将把它带入一个永无止境的循环.因此,我被迫添加额外的参数,表明它是一个重复请求,应该区别对待.不确定我的问题是否有意义,但认为这是一个发布相同的好论坛.

Mic*_*rdt 6

嗯...因为它没有用处?请求参数由客户端发送到服务器.服务器可以自由地忽略它们,但是你期望这样的removeParameter()方法有什么实际效果?

编辑:请求参数用于服务器和客户端之间的通信.对于服务器内部通信,您可以使用可以设置删除的请求属性.