怎么在58上做公司网站,小型手机网站建设多少钱,网站seo的优化怎么做,做穿越火线的网站资料文章目录 SpringMVC运行流程MVC的概念与请求在MVC中的执行路径#xff0c;ResponsBody注解的用途SpringMVC启动流程SpringMVC的拦截器和过滤器有什么区别#xff1f;执行顺序#xff1f;Spring和SpringMVC为什么需要父子容器#xff1f; SpringMVC运行流程 • 客户端#… 文章目录 SpringMVC运行流程MVC的概念与请求在MVC中的执行路径ResponsBody注解的用途SpringMVC启动流程SpringMVC的拦截器和过滤器有什么区别执行顺序Spring和SpringMVC为什么需要父子容器 SpringMVC运行流程 • 客户端浏览器发送请求直接请求到 DispatcherServlet 。 • DispatcherServlet 根据请求信息调用 HandlerMapping 解析请求对应的 Handler 。 • 解析到对应的 Handler 也就是 Controller 控制器后开始由HandlerAdapter 适配器处理。 • HandlerAdapter 会根据 Handler 来调用真正的处理器开处理请求并处理相应的业务逻辑。 • 处理器处理完业务后会返回一个 ModelAndView 对象 Model 是返回的数据对象 • ViewResolver 会根据逻辑 View 查找实际的 View 。 • DispaterServlet 把返回的 Model 传给 View 视图渲染。 • 把 View 返回给请求者浏览器 MVC的概念与请求在MVC中的执行路径ResponsBody注解的用途 请求到达mvc后通过一个分发器找到对应的处理controller处理完好返回的model数据经过view处理器渲染进视图中返回如JSP。如果有ResponseBody注解就不进行view渲染直接返回model数据一般以json格式。 见另一篇博客mvc。 SpringMVC启动流程
SpringMVC的拦截器和过滤器有什么区别执行顺序 拦截器和过滤器在Web应用中都扮演着请求和响应处理的角色但它们之间存在一些关键区别。 归属不同拦截器是SpringMVC框架的一部分而过滤器是Servlet规范的一部分。拦截器主要用于对控制器层的请求进行处理它们提供了更细粒度的控制可以在请求进入控制器之前和之后执行特定的逻辑例如身份验证、日志记录和权限检查。过滤器独立于SpringMVC用于处理通用的请求和响应内容例如字符编码、压缩和安全性。执行顺序也不同拦截器的执行顺序由配置文件中的顺序决定可以有多个拦截器它们按照配置的顺序依次执行。而过滤器的执行顺序由web.xml文件中的配置顺序决定同样可以有多个过滤器按照配置的顺序执行。一般来说首先执行过滤器然后再执行拦截器。用途不同拦截器用于对SpringMVC的请求和响应进行特定的业务处理通常与控制器层的请求处理有关。过滤器用于对所有Servlet请求和响应进行通用性的处理通常关注请求和响应内容而不涉及具体的业务逻辑。 总的来说了解拦截器和过滤器之间的这些区别非常重要。在面试中这种理解将有助于说明您在Web应用程序中如何处理请求和响应以及如何利用SpringMVC和Servlet规范的不同功能。 Spring和SpringMVC为什么需要父子容器 首先它们帮助划分功能边界使得大型应用程序更易于管理。通过将不同模块或层次的组件分别放置在父子容器中我们能够清晰地定义每个容器的职责从而提高了代码的可维护性和可扩展性。其次父子容器在规范整体架构方面起到了关键作用。例如我们可以将业务逻辑层Service和数据访问层DAO交给Spring管理而将控制器层Controller交给SpringMVC管理。这种规范化有助于提高代码的可读性并使团队协作更加顺畅。此外父子容器还能限制组件之间的依赖关系确保模块之间的隔离。子容器可以访问父容器中的组件但反之则不成立。这有助于减少意外的依赖和提高代码的稳定性。另一个优势是方便切换子容器。如果我们需要更改子容器例如从Spring MVC切换到Struts只需更改子容器的配置而无需更改父容器。这提供了更好的可维护性和扩展性使得应用程序更容易适应不同的技术栈或框架。最后父子容器的使用还有助于节省资源。父容器中的Bean可以在整个应用程序范围内共享而不必每次创建。这对于大型应用程序来说尤为重要可以降低内存和性能开销。 综上所述父子容器在Spring框架中的应用不仅有助于功能性划分还有助于架构的规范化、模块化、松耦合和可维护性。虽然一些现代框架如Spring Boot可能减少了对父子容器的需求但在大型和复杂的应用程序中父子容器仍然是一种有用的设计模式有助于管理和组织应用程序的各个部分。