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了”,重点是不用区分,你写不写没关系了。