当前位置: 首页 > news >正文

网站开发单位网站开发和运行模式的搭建

网站开发单位,网站开发和运行模式的搭建,高端的的网站建设公司,西地那非能提高硬度吗好看的皮囊千篇一律、有趣的灵魂万里挑一 文章持续更新#xff0c;可以微信搜索【小奇JAVA面试】第一时间阅读#xff0c;回复【资料】获取福利#xff0c;回复【项目】获取项目源码#xff0c;回复【简历模板】获取简历模板#xff0c;回复【学习路线图】获取学习路线图。… 好看的皮囊千篇一律、有趣的灵魂万里挑一 文章持续更新可以微信搜索【小奇JAVA面试】第一时间阅读回复【资料】获取福利回复【项目】获取项目源码回复【简历模板】获取简历模板回复【学习路线图】获取学习路线图。还有机会获得内推名额。 文章目录 Spring MVC 源码解析1. DispatcherServlet2. HandlerMapping3. HandlerAdapter4. ViewResolver5. ModelAndView总结 Spring MVC 源码解析 Spring MVC 是 Spring 框架的核心组件之一用于构建基于 Web 的应用程序。它实现了 Model-View-ControllerMVC模式使开发者可以方便地管理业务逻辑、视图和数据交互。以下是 Spring MVC 请求处理的主要流程及源码解析。 1. DispatcherServlet DispatcherServlet 是 Spring MVC 的中央控制器所有的 HTTP 请求都会先到达 DispatcherServlet。它负责协调请求的处理流程。 在 DispatcherServlet 的 doDispatch() 方法中定义了处理请求的核心逻辑 protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception {HttpServletRequest processedRequest request;HandlerExecutionChain mappedHandler null;ModelAndView mv null;Exception dispatchException null;try {// 1. 获取处理器HandlermappedHandler getHandler(processedRequest);if (mappedHandler null) {noHandlerFound(processedRequest, response);return;}// 2. 获取处理器适配器HandlerAdapterHandlerAdapter ha getHandlerAdapter(mappedHandler.getHandler());// 3. 执行前置拦截器PreHandler Interceptorif (!mappedHandler.applyPreHandle(processedRequest, response)) {return;}// 4. 执行处理器Handler逻辑生成 ModelAndViewmv ha.handle(processedRequest, response, mappedHandler.getHandler());// 5. 执行后置拦截器PostHandler InterceptormappedHandler.applyPostHandle(processedRequest, response, mv);} catch (Exception ex) {dispatchException ex;} catch (Throwable err) {dispatchException new NestedServletException(Handler dispatch failed, err);} finally {// 6. 处理结果并渲染视图processDispatchResult(processedRequest, response, mappedHandler, mv, dispatchException);} }该方法的执行流程如下 1、获取处理器通过 getHandler() 方法根据请求 URL 获取适当的处理器Handler通常是一个 Controller。 2、获取适配器通过 getHandlerAdapter() 获取对应处理器的适配器HandlerAdapter负责调用具体的处理器方法。 3、执行前置拦截器调用拦截器链的 applyPreHandle() 方法。 4、处理请求调用 HandlerAdapter 的 handle() 方法执行业务逻辑并返回 ModelAndView 对象。 5、执行后置拦截器调用拦截器链的 applyPostHandle() 方法。 6、渲染视图调用 processDispatchResult() 进行结果处理包括视图渲染。 2. HandlerMapping HandlerMapping 负责根据请求 URL 映射到对应的处理器。Spring MVC 中常用的 HandlerMapping 实现有 RequestMappingHandlerMapping处理基于注解的映射如 RequestMapping。 RequestMappingHandlerMapping 的核心逻辑是在 getHandlerInternal() 方法中根据请求查找相应的 Handler Override protected HandlerMethod getHandlerInternal(HttpServletRequest request) throws Exception {// 根据请求的 URL 查找对应的 HandlerMethodHandlerMethod handlerMethod lookupHandlerMethod(request, getHandlerMethods());return (handlerMethod ! null ? handlerMethod.createWithResolvedBean() : null); }这里的 lookupHandlerMethod() 方法根据请求 URL 查找已注册的处理方法这些方法通常使用 RequestMapping 注解。 3. HandlerAdapter HandlerAdapter 负责调用处理器执行实际的业务逻辑。Spring MVC 通过 HandlerAdapter 将不同类型的处理器如 Controller 接口实现类或注解控制器适配成统一的调用方式。 RequestMappingHandlerAdapter 是最常用的 HandlerAdapter其 handle() 方法如下 Override public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {return invokeHandlerMethod(request, response, (HandlerMethod) handler); } invokeHandlerMethod() 方法负责调用实际的处理器方法并生成 ModelAndView protected ModelAndView invokeHandlerMethod(HttpServletRequest request, HttpServletResponse response, HandlerMethod handlerMethod) throws Exception {// 根据方法签名解析参数并调用处理方法ModelAndView mav this.invokeAndHandle(webRequest, response, handlerMethod);return mav; }4. ViewResolver ViewResolver 负责根据视图名解析实际的视图对象通常是 JSP、Thymeleaf 等模板引擎生成的页面。Spring MVC 支持多种视图解析器常见的是 InternalResourceViewResolver它将逻辑视图名称解析为 JSP 文件路径。 InternalResourceViewResolver 的 resolveViewName() 方法 Override protected View loadView(String viewName, Locale locale) throws Exception {// 根据视图名称解析 JSP 文件路径String url getPrefix() viewName getSuffix();return new InternalResourceView(url); }5. ModelAndView ModelAndView 是一个封装类用于传递处理结果和视图信息。它包含模型数据和视图名称 public class ModelAndView {private Object view;private MapString, Object model new LinkedHashMap(); }处理器方法执行后返回的 ModelAndView 对象会被 DispatcherServlet 传递给 ViewResolver 进行视图解析和渲染。 总结 Spring MVC 的核心流程通过 DispatcherServlet 调度请求根据请求 URL 查找处理器然后通过 HandlerAdapter 调用处理器执行业务逻辑最终由 ViewResolver 解析视图并返回结果。这一系列的组件协作形成了强大的 Web 框架既能支持注解驱动也能扩展成多种视图技术。 可以微信搜索【小奇JAVA面试】第一时间阅读回复【资料】获取福利回复【项目】获取项目源码回复【简历模板】获取简历模板回复【学习路线图】获取学习路线图。
http://www.dnsts.com.cn/news/197086.html

相关文章:

  • 响应式网站设计开发佛山网站建设运营
  • html5 网站开发定制万江区网站建设
  • 数字展厅网站建设什么程序做网站收录好
  • 建设企业网站的好处是什么政务信息网站建设工作方案
  • 网站应用软件设计wordpress js插件开发教程视频教程
  • 网站投票怎么做怎样创建网站挣钱
  • 太原网站制作企业wordpress数据库文件在哪里设置
  • 南阳网站营销外包房产网站开发用什么语言好
  • 网站建设分几模块广州 网站开发 骏域
  • 网站找人做seo然后网站搜不到了中国移动wap什么意思
  • 网站建设 成功案例社区网站源码
  • 柳州市城市建设局网站办公室租赁
  • 俄罗斯军事新闻最新消息seo代码优化包括哪些
  • 网站的页面布局网站建设与管理 管理课程
  • 专门做化妆品平台的网站有哪些建筑工程总承包合同范本
  • 杭州网站建设招聘网wordpress 七牛不更新
  • 织梦cms网站地图合肥万户网络
  • apache怎么配置网站企业信息化管理平台
  • 企业门户网站主要功能北京sem
  • 弹幕网站制作wordpress meta 插件
  • 做网站的开发环境东莞抖音推广合作
  • 网站建设官网型好呢还是商城型企业网站建设飞沐
  • 网站开发语言识别龙华做棋牌网站建设找哪家效益快
  • 建立网站的方式外贸网站建设网
  • 网站如何做搜索引擎优化软件工程课程
  • ps网站背景图片怎么做王烨诡异复苏的漫画叫什么
  • 虚拟主机可以做视频视频网站吗th7 wordpress 汉化
  • 网站集约化建设题目建设方面的知识 网站
  • 广东工程承包网站制作网站的公司(深圳)
  • 服务器主机 网站国际军事新闻最新消息头条