This question already has answers here:
doGet and doPost in Servlets

(5个答案)


3年前关闭。




我正在用Netbeans 8.0.2编写一个Web应用程序,并且目前正在设置Controller Servlet。我是一名学生,并且对doPost和doGet方法有疑问。

我知道:


主要与页面请求关联的URL模式由doGet方法管理。


例如,/ category,/ viewCart和/ checkout会显示类别,购物车和结帐页面。)


与表单提交和敏感用户数据(例如/ addToCart,/ updateCart和/ purchase)相关联的URL模式由doPost方法管理。


所以

根据这些信息,我想知道应该将以下这些操作放在哪里:viewAccount和viewOrderHistory?据我所知,它们都包含数据(客户信息),因此我将它们放在doPost下。

但是我很困惑,因为操作viewCart在doGet下...并且根据我掌握的信息,一旦客户在购物车中添加了产品,viewCart操作将包含数据。那么,为什么在doGet而不是doPost下呢?

我是否应该将以“ view”开头的每个动作放在doGet下,而不管它们是否处理数据?

另外,我应该在哪里执行注销操作? doPost或doGet?

希望我已经足够清楚,以便您了解我。

非常感谢!

最佳答案

首先,您可以根据需要使用doGet和doPost,您应该知道GET和POST差异source1source2


我是否应该将以“ view”开头的所有动作放在doGet下,
不管他们是否处理数据?



是的,将所有视图数据放在doGet位置是很有意义的,如果您不希望在url上看到数据,请在此处通过method=POST进行调用



另外,我应该在哪里执行注销操作? doPost或doGet?



如果您没有在注销过程中放置​​任何用户信息(通常不应该这样做),则使用doGet或doPost无关紧要。

10-07 22:22