java基础 doget_Servlet系列教材 (五)- 基础 - doGet方法 doPost方法 service方法

9 个答案

sparksun007

答案时间:2020-09-20

不显示写method=post或其他,那就默认method是get方式了啊。

newbeeee

答案时间:2020-09-10

其实就是service方法本来要判断是get还是post的,但是你也可以不写这两个方法 直接把逻辑写在service方法里,但是html文件里的method还是要写的 这是规范的要求

JmsAllen

答案时间:2019-11-14

你的提问就有问题,你自己提供的表单,说明你应该清楚自己表单需要的业务是什么,显然你应该指明是用 post 还是 get

解决这个前提,那么这个问题从 Servlet 的生命周期谈起比较合适

显然 service() 方法是在 Servlet 提供服务时调用的,但它是作为 HttpServlet 抽象类所实现的方法,既然你继承了这个类,那么就代表这你知道需要将该方法对应业务进行具体实现(换句话说,你知道自己的 Servlet 需要做什么),因此你应该细节化 HTTP 方法(post或get等)

另外,不要随意重写 service() ,除非你有特殊的理由,否则继承 HttpServlet 意义何在?不就是为了具体实现你自己的业务吗?不要做南辕北辙的事情

how2jcxp

答案时间:2019-03-27

是要写的。时间会说真话说的比较对。规范中service根据method是post还是get调用相应的doget,dopost方法,这是无论如何也会做的,然后相应的处理逻辑在do方法中。

站长说可以不写,其实是说把处理逻辑转移到service方法中,这样do方法中不必再写,但是service还是会调用相应的方法,只不过没有相应的处理逻辑了,但返回的response会有所不同(根据get/post等)。

其实是不太规范的做法。所以还是得写。而且处理逻辑写在do方法里最好。

Cube

答案时间:2019-01-15

在service情况下,html中method是get,service则调用doGet;是post,service则调用doPost;form中没有指定method方法,则默认调用get。这些在浏览器的地址栏上可以看出来

Memory_123

答案时间:2018-12-06

他的意思是,还用不用在login.html中 指定method =get还是post?

是需要写的,然后到LoginServlet中,直接使用service方法,根据method = post 会去匹配service中的post方法

我会努力学JAVA的

答案时间:2018-12-04

站长说的很清楚,执行LoginServlet时,必然先调用service方法,这个是由tomcat内部业务逻辑决定的,如果LoginServlet中没有找到这个方法,就去他的父类找,这个LoginServlet继承了HttpServlet这个类,HttpServlet里面有service这个方法,你去看看这个方法的源码你就会发现,service方法是先获取请求类型,请求类型有八种,最常用的就是post和get,比如获取到请求类型是post,那就调用post,调用Post方法,是先去子类找post方法,找到子类的post方法执行就行了啊,这里子类如果post方法也没有,剩下你来编吧

时间会说真话

答案时间:2018-10-10

是在难以苟同虚实恒的说法,您请实践一下先。

我的理解:

是需要指定method的,当然你可以不指定,那就默认是get方法了,你传输的账户和密码都会显示在浏览器地址栏,所以依然需要手动指定method="post"

而service()的作用只局限于 不用你人为去判断需要写 doPost还是doGet了 ,我就写一个service()方法,html文件里指定get也好post也罢,我这边不需要再修改。

另外指出个小问题:题主说的不太对,form method="get/post" 是在login.html中,而非xml

虚实恒

答案时间:2018-06-15

你还不理解吗?这句话的意思已经表达了, “所以,有时候也会直接重写service()方法,在其中提供相应的服务,就不用区分到底是get还是post了”,重点是不用区分,你写不写没关系了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值