为什么要写一个doPost在doGet里面,单独的doPost就不行?
2017-10-11 12:44
405 查看
为什么要写一个doPost在doGet里面,单独的doPost就不行?
protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
doPost(request,response);
}
为什么必须把dopost写在doget,也就是说必须有doget?只有dopost然后把我想做的功能写在dopost里面为啥就总出现 405问题?
关注者
8
被浏览
514
添加评论
分享
邀请回答
举报
收起
关注问题写回答
6 个回答
默认排序朱招航
英语
1,这样做的原因是可能有post提交和get提交,doget调用dopost就不用写两段重复的代码了,如果你只用post提交,只用dopost就可以的。
2,你那个错误应该不是这个问题导致的吧。
编辑于 2017-05-31
0
添加评论
分享
收藏
感谢
张张张
java爱好者
这样写的好处是,无论你是get提交,还是post提交svt都能在dopost里处理,所以必须实现doPost的方法,我一般只会写一个service的方法就OK了。
发布于 2017-03-30
0
添加评论
分享
收藏
感谢
低调写程序
程序员
不是一定谁一定要放在谁里面,doget方法里面可以调dopost,然后在dopost里面实现你的业务逻辑;或者在dopost里面调用doget,然后在doget里面实现业务逻辑,然后根据表单提交方式,选择调用不同的方法
发布于 2017-03-30
0
添加评论
分享
收藏
感谢
沈轩
keep the passion...
在进入servlet后,会执行service(HttpServletRequest req, HttpServletResponse resp) 这个方法
下面是源码,可以清楚的看到,会根据传过来的是什么请求来执行对应的方法。
如果是“GET”请求,就会执行doGet(req,resp)这个方法,
如果是“POST”请求,就会执行doPost(req,resp)这个方法。
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String method = req.getMethod(); long errMsg; if(method.equals("GET")) { errMsg = this.getLastModified(req); if(errMsg == -1L) { this.doGet(req, resp); } else { long ifModifiedSince = req.getDateHeader("If-Modified-Since"); if(ifModifiedSince < errMsg / 1000L * 1000L) { this.maybeSetLastModified(resp, errMsg); this.doGet(req, resp); } else { resp.setStatus(304); } } } else if(method.equals("HEAD")) { errMsg = this.getLastModified(req); this.maybeSetLastModified(resp, errMsg); this.doHead(req, resp); } else if(method.equals("POST")) { this.doPost(req, resp);
编辑于 2017-03-29
0
收起评论
分享
收藏
感谢
评论
切换为时间排序很清晰 like your answer
评论
Apache
克莱登大学核弹制造专业
神经病写法,直接重新写个方法给get调用不行吗,非得占了post的坑
发布于 2017-03-29
0
添加评论
分享
收藏
感谢
若初见
程序员
不存在post得写在get里,应该是你提交的方式没弄对,用的是get,如果只写了post方式,没有get方式,就会找不到get方式然后报错
编辑于 2017-03-29
相关文章推荐
- 有些JS为什么不可以单独放在一个js文件里面
- 公司大佬问到一个问题 为什么yii tp框架会把index.php文件放到网站的子目录里面 而不是放在根目录
- 如何把按钮点击单独放到一个类里面详解
- 网络编程之TCP通信,为什么在Serve端为每个Client端开辟一个单独的线程来处理Client的请求
- 在继承HttpServlet时,为什么只重写doGet和doPost
- 在Android 的adb shell里面单独起一个activity的方法
- 一个 UL 里面所有的 l i 都设置左浮动,UL 的高度为什么会是0
- 【40分】关于ASP代码:就想做一个数据库查询信息,为什么不行呢!!VS2010环境
- Serlet为什么只需要实现doGet和doPost
- 有一个文件夹/home/a,里面有个模块叫b.py,我怎么把他import到程序里?用import /home/a/a.py不行吧
- fsync放到一个单独thread里面去做并没有用
- 请求一个url 获得返回结果(doPost doGet方式)
- signal num一个int数组,里面数值都是成对出现,只有一个是单独的,找出单独者。360ms
- 另开了一个线程,线程里面一个函数调用UpdateData(false),结果就出错,为什么?
- 过年啦!小B高兴的不行了,她收到了很多红包,可以实现好多的愿望呢。小B可是对商店货架上心仪的货物红眼好久了,只因囊中羞涩作罢,这次她可是要大大的shopping一番。小B想去购物时,总是习惯性的把要买的东西列在一个购买清单上,每个物品单独列一行(即便要买多个某种物品),这次也不例外。
- css文件都写在一个里面还是每个页面都引用单独的css样式好?
- 重写,什么是重写?重写的意义是什么?为什么不直接在子类里面新建一个方法?
- serlvet为什么只需要实现doGet和doPost
- 修改servlet的dopost doget里面的注释或者代码。
- 为什么我使用source /etc/profile这个命令之后,新的环境变量只能在一个终端里面有效? 为什么我使用source /etc/profile这个命令之后,新的环境变量只能在一个终端里