doget,dopost和service的关系

本文探讨了Servlet为何不直接使用service方法而选择调用doPost和doGet,解释了这两种请求方式的区别及应用场景,并通过实例说明了在不同场景下如何灵活运用这两种方法。

servlet为啥不用service方法 而要用dopost和doget?

 

form提交有两种方式比较常见,一个是get一个post

追问:知道啊

回答:service是负责调用doGet和doPost两个方法的,一般不需要直接重写。service()它包含了doget和dopost ;service方法是接口中的方法,servlet容器把所有请求发送到该方法,该方法默认行为是转发http请求到doXXX方法中,如果你重载了该方法,默认操作被覆盖,不再进行转发操作!

追问:正因为service接受到数据之后会智能的选择是post请求还是get请求也调用相应的doPost方法和doGet方法   那我们就写一个service方法  不是很简单么   为什么很多时候还要在doGet方法里写了代码之后   再在doPost方法里调用doGet方法都要得   这不是给自己找麻烦吗?

 

==========================================================================================

doPost的提交地址栏是看不到提交信息的,是安全的提交方式
doGet的提交地址栏是可以看到明文信息的
现在如果有一张登陆页面,你用service这样不是密码就失去意义了么?
追问
怎么会呢?   你在表单里用method=“post”   然后在servlet用service方法处理一样的啊
回答
那现在有如下需求,要你在post的提交的时候坐一些事情,在get提交的时候做另外一些事情,你怎么办?还有,表单一般的提交方式都设置为post,,,get是给超级链接用的,一般来说。。。。
追问
一个表单只可能提交给一个servlet吧   那这个表单的method肯定是固定了的   要么是post  要么是get    你说需要在post的提交的时候坐一些事情,在get提交的时候做另外一些事情  那我就用两个servlet来接受两个不同的表单就OK了  而且每个servlet实现各自的功能  降低耦合  也需要分开写啊  你的第二个一般来说省略了    看不明白
回答
难道只有表单可以提交么,我不可以直接在地址栏输入内容?你去看一下百度的搜索,你直接在地址栏是可以输入内容的,这就是get提交的方便之处,有一张网页,里面或许有敏感信息,不便于用get 方式提交,而有一些参数又是不敏感的,就直接用get方式提交了(比如搜索商品),你说同一张网页我一个请求过去,还要分两个servlet处理?

这样吧,想一个最简单的例子,比如有一个登陆界面,你用post提交可以进入页面,但是你如果直接在地址栏输入地址(就是get方式)直接不给你访问页面,你说是不是应该分开两个方法?
追问
要是直接在地址栏输入内容   然后提交   那就全都是用的get方式提交的啊  不可能会带有post信息啊
   提交一个网页的时候   可能同时以get和post两种方式提交吗?
回答
楼主,比如有一张银行的用户界面,地址是www.yinhang.com.xxx.jsp
现在你比如要在www.yinhang.com.login.jsp进行登陆操作才可以访问,你登陆的信息是通过post提交没问题,如果对了就跳转到那张页面,是不是?现在如果你用service这个方法,没有把get方式给禁用掉,那么用户是不是可以直接在地址栏里输入www.yinhang.com.xxx.jsp访问那张页面呢?只要用户知道网页的地址,是不是所有信息都暴露了?

这是在百度知道看到的两组问答,从对话中就可以理解这三者之间的关系~\(≧▽≦)/~啦啦啦。。。。。。。。。

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值