为了账号安全,请及时绑定邮箱和手机立即绑定

求解释,请问在servlet中的doGet()与doPost()是怎样工作的呢?

求解释,请问在servlet中的doGet()与doPost()是怎样工作的呢?

阿波罗的战车 2021-10-15 22:11:06
doGet()与doPost()是对javax.servlet.http.HttpServlet类中方法的重写,doPost()可以调用doGet(),那么在调用方法时,是调用了子类的方法还是父类,若是子类,那doPost()与doGet()又有什么区别呢?若是父类,那子类的重写又有什么区别呢?
查看完整描述

3 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

第一:你的servlet如果是继承自HttpServlet,就必须重写它里面的两 个虚方法doGet和doPost,也就是说,先不管别的servlet或jsp会去调用哪个方法,这两个方法都应该有。

第二:至于它调用哪个方法,就看提交方式
<form action="myServlet" method="get" >
method属性的值是get,它就去调用对应servlet的doGet方法。
同理,method属性的值是get,它就去调用对应servlet的doPost方法。

一般来说,不管采用那种提交方式,在servlet里要做的事情是一样的。所以,我们很多情况下,在一个方法里面调用另一个方法,这样随你那种方式提交的,都可以转去做一种处理。
eg:
public void doPost(HttpRequest request,HttpResponse response)throw ServletException,IOException {
doGet(request,response);
......
}

•如果请求是幂等的就可以使用GET
•所谓幂等是指多个请求返回相同的结果
•当改变服务器状态时应当使用POST方法
•GET请求的例子:
http://localhost/yourApp?firstName=Adam&middleName=Christopher
•采用POST方法向服务器发送命名参数时,与采用GET方法几乎一样的。
•区别:POST方法将参数串放在请求体中发送,而GET方法是将参数追加到URL中发送。
•如果数据处理不改变数据模型的状态,HTML使用规约理论上推荐采用GET方法,从这
可以看出,获取数据时应当使用GET方法。
•如果因为存储、更新数据,或者发送电子邮件,操作改变了数据模型的状态,这时建议使 用POST方法。



查看完整回答
反对 回复 2021-10-18
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

如果走的是serlvet,而servlet里又没有显示的调用父类方法,这就必定是走子

类重载的doGet() doPost() 了,这两个方法没什么区别,要看你提交过来的方

式是什么方式,<form action="myServlet" method="get" > Form表单里的

method属性是get还是post,用get方法提交有字符限制,只能是255个字符,并

且在地址栏里不隐藏链接,也就是说你用get方式提交用户名密码的话在URL地址

栏里是可以完全的看到的,post提交没有提交大小限制,并且隐藏地址栏信息,

相对安全。

一般来说都会在doGet()方法里调用doPost()方法,参数是一样的参数,处理的结果也是一样的:
eg:
public void doPost(HttpRequest request,HttpResponse response)throw ServletException,IOException {
doGet(request,response);
......
}















查看完整回答
反对 回复 2021-10-18
  • 3 回答
  • 0 关注
  • 286 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信