3 回答
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方法。
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);
......
}
添加回答
举报