Tomcat不识别我们所编写的controller程序,但是识别像JavaEE规范里的技术,比如像servlet,因为Tomcat也被称为Servlet容器。springboot底层为我们提供了非常核心的servlet程序,那就是DispatcherServlet类,这个类实现了Servlet规范里的Servlet接口。因此该类就是一个可以被Tomcat识别的servlet程序。
有了DispatcherServlet类之后,前端浏览器发起的请求都会先经过DispatcherServlet。由DispatcherServlet将该请求转给后面的各个Controller程序,由Controller程序再对请求进行处理,处理完毕之后,Controller程序再将处理完的结果返回给Servlet,这个DispatcherServlet再给浏览器响应数据。DispatcherServlet这个类是十分重要的,因此我们称这个类为核心控制器或者前端控制器。
如何在Servlet中获取请求的数据呢?前端浏览器发起请求会携带http的请求数据,而web服务器就负责请求数据的解析,所以Tomcat就会接受到这个请求数据并对这个请求数据进行解析。并且会将解析到的所有数据封装到一个对象当中,该对象就是HttpServletRequest对象,也叫请求对象。我们就可以从这个HttpServletRequest对象中获取请求数据,然后再对这个请求进行处理,处理完毕之后,Tomcat服务器根据http响应数据的格式给浏览器响应数据。 
那么Tomcat怎么知道要给浏览器响应哪些数据呢?其实在Servlet程序中我们可以借助于另外一个对象来设置响应数据。那就是HttpServletResponse。通过这个对象,我们就可以来设置我们要响应的数据。然后Tomcat会根据我们在 HttpServletResponse对象中所设置的响应信息来响应数据来给浏览器。