Servlets 如何得到方法是幂等的

Servlets 如何得到方法是幂等的,servlets,post,get,Servlets,Post,Get,GET方法是幂等的,POST不是。我们在表单提交中使用它,如果我们提交两次,它将重新提交表单数据。以及为什么我们不使用GET来下订单或购买产品,例如,当它是幂等的时候 幂等HTTP方法是一种可以多次调用而不会产生不同结果的HTTP方法。不管是只调用一次,还是多次调用该方法。结果应该是一样的。同样,这只适用于结果,而不适用于资源本身 a=10; //This is idempotent: no matter how many times we execute this statement, a

GET方法是幂等的,POST不是。我们在表单提交中使用它,如果我们提交两次,它将重新提交表单数据。以及为什么我们不使用GET来下订单或购买产品,例如,当它是幂等的时候

幂等HTTP方法是一种可以多次调用而不会产生不同结果的HTTP方法。不管是只调用一次,还是多次调用该方法。结果应该是一样的。同样,这只适用于结果,而不适用于资源本身

 a=10;  //This is idempotent: no matter how many times we execute this statement, a will always be 4. 
 a++;  //This is not idempotent. Executing this 10 times will result in a different outcome as when running 5 times.
现在,来回答您的问题。
如果我们使用GET方法下订单/购买产品,则无论产品是否缺货,都将下订单。相反,如果您使用to POST方法,则对于每个购买产品的新请求,结果都会有所不同

下面的示例不是幂等的,因为对于每个新请求,结果都是不同的

https://accounts.google.com/Login#identifier 
应使用GET方法将信息从浏览器发送到URL中的服务器。下面是GET方法的示例用法

http://www.google.co.in/search?q=cristiano+ronaldo
下面是对您在评论中提出的问题的回答:

当用户重新访问表单提交后生成的页面时,可能会显示来自其历史记录堆栈的页面(这可能是他们想要的),或者可能会告诉他们该页面现在已过期。用户对后者的典型反应是点击Reload

如果请求是幂等的,这是无害的,表单作者通过指定GET方法向浏览器发出信号

http://www.google.co.in/search?q=cristiano+ronaldo
浏览器通常会(实际上是“应该”)提醒用户,如果他们打算重新提交POST请求,相信这将导致进一步的“宇宙状态的永久性变化”,例如,用信用卡或其他方式订购另一辆梅赛德斯-奔驰。如果用户在尝试重新加载无害的幂等请求时习惯了这种情况,那么当他们随意地[确定]请求时,它迟早会咬到他们

现在,在实现这两种方法GET和POST时,开发人员应该考虑安全性问题并在特定方法中编写代码。考虑到GET方法的所有限制(url的大小等),任何代码都可以用这两种方法编写,但这不是一个好的实践

获取->用于信息检索。(如果您希望在不更改状态的情况下读取数据)

POST->用于信息创建/更新/删除。

幂等HTTP方法是一种可以多次调用而不会产生不同结果的HTTP方法。不管是只调用一次,还是多次调用该方法。结果应该是一样的。同样,这只适用于结果,而不适用于资源本身

 a=10;  //This is idempotent: no matter how many times we execute this statement, a will always be 4. 
 a++;  //This is not idempotent. Executing this 10 times will result in a different outcome as when running 5 times.
现在,来回答您的问题。
如果我们使用GET方法下订单/购买产品,则无论产品是否缺货,都将下订单。相反,如果您使用to POST方法,则对于每个购买产品的新请求,结果都会有所不同

下面的示例不是幂等的,因为对于每个新请求,结果都是不同的

https://accounts.google.com/Login#identifier 
应使用GET方法将信息从浏览器发送到URL中的服务器。下面是GET方法的示例用法

http://www.google.co.in/search?q=cristiano+ronaldo
下面是对您在评论中提出的问题的回答:

当用户重新访问表单提交后生成的页面时,可能会显示来自其历史记录堆栈的页面(这可能是他们想要的),或者可能会告诉他们该页面现在已过期。用户对后者的典型反应是点击Reload

如果请求是幂等的,这是无害的,表单作者通过指定GET方法向浏览器发出信号

http://www.google.co.in/search?q=cristiano+ronaldo
浏览器通常会(实际上是“应该”)提醒用户,如果他们打算重新提交POST请求,相信这将导致进一步的“宇宙状态的永久性变化”,例如,用信用卡或其他方式订购另一辆梅赛德斯-奔驰。如果用户在尝试重新加载无害的幂等请求时习惯了这种情况,那么当他们随意地[确定]请求时,它迟早会咬到他们

现在,在实现这两种方法GET和POST时,开发人员应该考虑安全性问题并在特定方法中编写代码。考虑到GET方法的所有限制(url的大小等),任何代码都可以用这两种方法编写,但这不是一个好的实践

获取->用于信息检索。(如果您希望在不更改状态的情况下读取数据)

POST->用于信息创建/更新/删除。

在GET方法中,如果我们像刷新一样下两次订单,或者返回并再次单击提交按钮,将会发生什么情况。它会放两次还是只放一次。你自己先试试这个。我试过了,但我不能得到确切的答案。如果你不介意的话,你可以举一个例子来说明GET和POST,它将反映幂等数是的,当然可以。但是现在我正忙于其他的任务。很快会回复您。没问题,请继续,但有空时请回来。我需要帮助。在“获取方法”中,如果我们下两次订单,如刷新或返回并再次单击“提交”按钮,将会发生什么情况。它会放两次还是只放一次。你自己先试试这个。我试过了,但我不能得到确切的答案。如果你不介意的话,你可以举一个例子来说明GET和POST,它将反映幂等数是的,当然可以。但是现在我正忙于其他的任务。我会很快回复你的。没问题。请继续,等你有空再回来。我需要帮助。