问题
大佬,这个月我把java和javaweb稍微学了学,今晚上你忙吗?我画个分析图您帮我看下我的思路对不对呗?
这是httpservlet的继承图
我是想知道为什么我重写了httpservlet的一个dopost方法,
就能实现接受前端发来的数据,
我本身没有调用这个方法,
那么是谁帮我调用的dopost方法呢?
我就自己找了找api代码。
下面是分析:
然后我发现,在httpservlet里面有个service方法。
service调用了protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException 方法。
这个service方法里面,调用了this.doPost方法,但是调用的并不是本类的doPost方法
而是调用了httpservlet子类重写的dopost的方法。
于是我重写的dopost方法就被调用执行。
回答
大致就是你说的。
更底层的话,是Tomcat实现了服务器套接字,然后接受客户端连接请求。
接受连接请求的时候,就会调用你文档里写的内容。
说白了,就是执行业务逻辑类。
然后,在往上的话,就是Spring,Spring其实就是封装了servlet,让servlet更好用。
总结
核心流程就是:
客户端——》服务器套接字——》servlet——》spring。
最早是没有spring的,就用servlet。
后面之所以用spring,只不过是因为spring更好用。封装了一下servlet而已。底层还是servlet。web的本质就是servlet。