网络技术网站是做什么的,上海松江做网站,中企动力官网登陆,旅游网站开发实验报告#x1f389;#x1f389;欢迎光临#x1f389;#x1f389; #x1f3c5;我是苏泽#xff0c;一位对技术充满热情的探索者和分享者。#x1f680;#x1f680; #x1f31f;特别推荐给大家我的最新专栏《Spring 狂野之旅#xff1a;底层原理高级进阶》 #x1f680… 欢迎光临 我是苏泽一位对技术充满热情的探索者和分享者。 特别推荐给大家我的最新专栏《Spring 狂野之旅底层原理高级进阶》 本专栏纯属为爱发电永久免费 这是苏泽的个人主页可以看到我其他的内容哦 努力的苏泽http://suzee.blog.csdn.net/ 本文简单讲解了一下SpringMVC的调用链讲解其原理 和servlet容器交互的过程以及比较重要的JSP模板映射的过程主要的作用就是把一堆干巴巴的数据 变成一份精美的可视化的视图并且简单高效希望对大家有帮助 目录
为什么调用链对于理解Spring MVC至关重要
故事背景坤坤饭店
解释调用链的定义和作用
HTTP请求的到达从浏览器到Servlet容器
探索Spring MVC如何与Servlet容器进行交互
DispatcherServletSpring MVC的核心
讨论DispatcherServlet如何处理请求并将其分发到适当的处理器
JSP模板应用实战示例
首先要引入jsp 模板引擎 为什么调用链对于理解Spring MVC至关重要
调用链对于理解业务流程和请求处理的关系非常重要。在一个典型的业务场景中可以将调用链视为请求在不同组件之间传递的过程每个组件负责执行特定的任务。下面用一个弱智的小故事解释他们之间的关系
故事背景坤坤饭店
在一个小镇的中心有一家古老而有名的饭店名字叫做坤坤。这家饭店以其出色的厨师团队和创意的特色菜吸引了众多食客。然而这家饭店的成功并不仅仅依赖于美食还有一个关键的因素那就是无缝的协调和组织。
解释调用链的定义和作用
调用链是指一系列环节的有序执行每个环节都处理特定的任务并将结果传递给下一个环节。在坤坤饭店的背景中调用链是确保饭店运营顺利的关键。每个环节都扮演着重要的角色就像饭店中的不同工作人员一样。
HTTP请求的到达从浏览器到Servlet容器
在坤坤饭店中我们假设顾客通过浏览器发送HTTP请求以点菜为例。让我们看看这个过程的基本流程
顾客在浏览器中输入饭店的网址并点击菜单页面上的菜品。浏览器将发送HTTP请求到饭店的Servlet容器。Servlet容器接收到请求并根据URL映射将请求发送给相应的处理器。
这个过程中涉及到了多个环节每个环节都有其特定的功能和责任。这种有序的执行过程就是调用链的体现。
探索Spring MVC如何与Servlet容器进行交互
在坤坤饭店中Spring MVC框架扮演了一个重要的角色它与Servlet容器进行交互以处理和分发请求。让我们看看Spring MVC是如何与Servlet容器进行交互的
当Servlet容器接收到HTTP请求后它将请求交给DispatcherServlet处理。DispatcherServlet是Spring MVC框架的核心它负责协调整个请求处理过程。DispatcherServlet根据配置信息和URL映射将请求分发给适当的处理器。
通过这种方式Spring MVC框架与Servlet容器紧密合作确保请求能够被正确处理和分发。
DispatcherServletSpring MVC的核心
DispatcherServlet是Spring MVC框架的核心组件它负责协调整个请求处理过程。它有以下的作用和功能
接收HTTP请求并将其传递给适当的处理器。调用处理器执行业务逻辑并获取处理结果。根据处理结果选择合适的视图进行渲染。将渲染后的视图返回给客户端。
DispatcherServlet的处理流程是一个典型的调用链每个环节都有特定的职责并将结果传递给下一个环节。这种有序的执行确保了请求的正确处理和响应。
讨论DispatcherServlet如何处理请求并将其分发到适当的处理器
在坤坤饭店中DispatcherServlet就像是饭店的总指挥部负责协调各种组件之间 控制器处理请求控制器Controller是业务逻辑的处理中心它根据请求的类型和参数执行相应的操作。例如控制器可能会调用商品服务来获取商品信息。 服务层处理业务逻辑服务层Service包含了业务逻辑的具体实现。在这个例子中商品服务可能会从数据库中查询商品信息并返回给控制器。 控制器返回模型和视图控制器接收到信息后将其放入一个模型对象中并选择一个合适的视图来渲染。模型对象包含了要在视图中显示的数据。这里的模板就是预先设定好的模板文件就像这样 !DOCTYPE html
html
headtitleExample/title
/head
bodyh1${title! Default Title}/h1p${message! Default Message}/p
/body
/html 视图解析和渲染视图解析器根据配置的规则找到对应的视图并将模型中的数据填充到视图中。视图可能是一个HTML模板或其他类型的视图技术。 返回响应给客户端DispatcherServlet将生成的视图返回给客户端客户端收到响应后显示在浏览器中。
JSP模板应用实战示例
首先要引入jsp 模板引擎
在Maven中添加
dependencygroupIdjavax.servlet/groupIdartifactIdjstl/artifactIdversion1.2/version
/dependency
接下来你需要在Spring MVC配置文件中配置视图解析器将JSP作为视图技术。假设你使用的是XML配置方式可以在配置文件中添加以下内容
bean idviewResolver classorg.springframework.web.servlet.view.InternalResourceViewResolverproperty nameprefix value/WEB-INF/views// !-- 模板文件存放的路径 --property namesuffix value.jsp/ !-- 模板文件的文件扩展名 --
/bean
上述配置将会将JSP视图解析为/WEB-INF/views/目录下的JSP文件。
接下来你可以在该目录下创建一个JSP模板文件例如book.jsp其中可以使用JSP标签和表达式来插入动态数据下面就是一个简单的文章的模板
!DOCTYPE html
html
headtitleExample/title
/head
bodyh1${title ! null ? title : Default Title}/h1p${message ! null ? message : Default Message}/p
/body
/html
在控制器中你可以从数据库中获取数据并将其存储在模型Model中然后将模型传递给视图
Controller
public class ExampleController {Autowiredprivate bookService bookService;RequestMapping(/getBook)public String getBook(Model model) {ExampleData exampleData bookService.getDataFromDatabase(); // 从数据库获取数据model.addAttribute(title, bookData.getTitle()); // 将数据存入模型model.addAttribute(message, bookData.getMessage());return book; // 返回视图名称}
}
在上面的示例中bookeController是一个控制器类通过RequestMapping注解将请求映射到/getbook路径。在getBook方法中你可以调用bookService来获取数据库中的数据并将数据存储在模型中使用model.addAttribute方法将数据添加到模型中。最后返回视图名称book它将被视图解析器解析为对应的JSP模板文件。