@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { HttpMethod httpMethod = HttpMethod.resolve(request.getMethod());
if (httpMethod == HttpMethod.PATCH || httpMethod == null) {
processRequest(request, response);
}
else {
super.service(request, response);
}
}
@Override
protected final void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

processRequest(request, response);
}

@Override
protected final void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

processRequest(request, response);
}

先上代码。

可以看到,最终调用了super.service,然后又覆盖了 doGet、doPost等方法。

1、为什么最后都调用了 processRequest ?

在HttpServlet中,最开始是按类型将请求分开的。但是,SpringMVC又将他们统一用  processRequest  来处理,是因为springmvc是将不同类型请求用不同的Handler来处理。

2、为什么不直接覆盖 HttpServlet,而是调用了super.service ?

现在看来结构是没有问题的。但是,如果后续扩展时想在 doPost请求之前做一些处理。。。这是,方案为覆盖 dispatcherServlet 的doPost方法, 在里边先进行一些处理,然后再调用 super.doPost。但是父类根本没调用 doPost,所以就出现问题了。这问题解决方法也很简单。但是正常逻辑 doPost 应该可以解决才对。

所以springMvc这种做法看似笨拙但是是很有必要的。

最新文章

  1. Fedora 21 安装 Nvidia 驱动以及失败后的补救方法
  2. 开放式管理基础结构 OMI
  3. CSS中的a标签几个访问状态记录
  4. java调用html模板发送html内容的邮件
  5. linux设备驱动归纳总结(三):6.poll和sellct【转】
  6. javascript学习-原生javascript的小特效(多物体运动效果)
  7. Win7+VS2010环境下CEGUI 0.8.4编译过程详解
  8. 《深入理解C#》第3版 学习进度备忘
  9. BLOB或TEXT字段使用散列值和前缀索引优化提高查询速度
  10. poj 2287 动态规划
  11. javaPNS进阶-高级推送技巧
  12. SharePoint 2016 配置应用程序商店
  13. Asp.Net 将HTML中通过dom-to-image.js标签div内的内容转化为图片保存到本地
  14. 【腾讯海纳】系统未发布时如何获取获取property_id在本地进行测试?
  15. spring cloud整合 websocket 的那些事
  16. 基于php5.5使用PHPMailer-5.2发送邮件
  17. Redis怎么保持缓存与数据库一致性?
  18. mysql 多表查询先排序,然后再取分组<mysql 先order by,然后再取group by分组>
  19. Flutter 中 ListView 的使用
  20. 对最近java基础学习的一次小结

热门文章

  1. KMP算法中的几个疑问
  2. 第06课:GDB 常用命令详解(中)
  3. npm配置镜像及nrm使用
  4. GMAP.NET系列学习文档
  5. 论文解读《Momentum Contrast for Unsupervised Visual Representation Learning》俗称 MoCo
  6. java的运行时数据区域
  7. 【PHP数据结构】散列表查找
  8. TP5模型开启事务
  9. mybatis的mapper特殊字符转移以及动态SQL条件查询
  10. CI框架 ::集成极光推送