网站备案 幕布wordpress获取栏目名称

张小明 2026/1/12 8:30:13
网站备案 幕布,wordpress获取栏目名称,重庆网,上海大规模网站建设平台SpringMVC基本原理 SpringMVC 是基于 Servlet 的 MVC 框架#xff0c;其核心是通过前端控制器 DispatcherServlet 协调各个组件完成请求处理与响应。 实际上 Spring MVC 本质就是一个servlet#xff0c;是对原生的servlet进行了封装#xff0c;在以前浏览器的每一次请求都…SpringMVC基本原理SpringMVC 是基于 Servlet 的 MVC 框架其核心是通过前端控制器 DispatcherServlet 协调各个组件完成请求处理与响应。实际上 Spring MVC 本质就是一个servlet是对原生的servlet进行了封装在以前浏览器的每一次请求都需要写一个对应的servlet现在只需要将浏览器的请求和响应交给DispatcheServlet进行统一的处理。SpringMVC 整个流程的核心是 DispatcherServlet 作为中枢协调 HandlerMapping、HandlerAdapter、ViewResolver 等组件完成请求处理与响应通过松耦合的组件设计实现了请求处理的灵活性和可扩展性。流程图如下流程详解用户在浏览器中输入 URL 或点击页面链接浏览器会将请求封装为HTTP 请求报文包含请求方法、URL、请求头、请求参数等信息通过网络发送到目标服务器Tomcat服务器 Tomcat 监听指定端口接收到 HTTP 请求后在 SpringMVC 中所有请求都会先被 DispatcherServlet 处理这是 SpringMVC 的核心前端控制器DispatcherServlet 作为“中央处理器”接收请求后不会直接处理而是负责协调其他组件完成工作。DispatcherServlet 需要确定“谁来处理这个请求”这一工作由 HandlerMapping 处理器映射器完成HandlerMapping 的核心作用是根据请求的 URL、请求方法、请求参数等信息通过预定义的映射规则如RequestMapping注解找到对应的Handler即 Controller 中处理请求的方法找到 Handler 后DispatcherServlet 并不会直接调用 Handler而是通过 HandlerAdapter 处理器适配器执行 Handler这是因为 Handler 可能是多种形式HandlerAdapter 负责适配不同类型的 Handler统一调用方式。HandlerAdapter 负责调用 Handler 即 Controller 中的目标方法HandlerAdapter 会将请求参数绑定到 Handler 方法的参数上Controller 方法调用 Service、Dao 等层处理业务生成处理结果Controller 方法执行完成后通常返回 ModelAndView 对象即包含 Model 数据和 View 名称或直接返回数据如 JSON注意需配合 ResponseBody 注解。DispatcherServlet 拿到 ModelAndView 后需要将 View 名称解析为具体的 View 实例如 JSP、Thymeleaf 视图这一工作由 ViewResolve 视图解析器完成。View 实例会接收 Model 中的数据键值对形式并将数据填充到视图模板中生成最终的响应内容对于 JSON 响应是将返回的对象序列化为 JSON 字符串。DispatcherServlet 将渲染后的响应内容封装为 HTTP 响应报文通过服务器返回给浏览器浏览器解析响应内容并显示页面完成整个流程。SpringMVC配置创建WEB工程如图创建tomcat下面我们来编写项目内容pom.xml?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd modelVersion4.0.0/modelVersion groupIdcom.qcby/groupId artifactIdSpringMVC/artifactId version1.0-SNAPSHOT/version packagingwar/packaging dependencies dependency groupIdcom.fasterxml.jackson.core/groupId artifactIdjackson-databind/artifactId version2.9.0/version /dependency dependency groupIdcom.fasterxml.jackson.core/groupId artifactIdjackson-core/artifactId version2.9.0/version /dependency dependency groupIdcom.fasterxml.jackson.core/groupId artifactIdjackson-annotations/artifactId version2.9.0/version /dependency dependency groupIdorg.springframework/groupId artifactIdspring-context/artifactId version5.0.2.RELEASE/version /dependency dependency groupIdorg.springframework/groupId artifactIdspring-web/artifactId version5.0.2.RELEASE/version /dependency dependency groupIdorg.springframework/groupId artifactIdspring-webmvc/artifactId version5.0.2.RELEASE/version /dependency dependency groupIdjavax.servlet/groupId artifactIdservlet-api/artifactId version2.5/version scopeprovided/scope /dependency dependency groupIdorg.thymeleaf/groupId artifactIdthymeleaf-spring4/artifactId version3.0.9.RELEASE/version /dependency /dependencies /projectSpring 框架的核心依赖spring-context 是 Spring 的核心模块提供 IoC 和 DI 功能管理对象生命周期spring-web 是 Spring 的 Web 模块提供 Web 应用相关的基础支持spring-webmvc 是 SpringMVC 框架用于开发 Web 层如控制器、请求映射、视图解析等是 Java Web 开发的主流框架之一。Jackson 库的核心组件用于JSON 数据的序列化和反序列化jackson-core 是核心底层库处理 JSON 的解析和生成jackson-annotations 提供注解支持jackson-databind 是数据绑定包基于前两个包实现 Java 对象与 JSON 的相互转换。servlet-api 是 Servlet 规范的 API定义了 Servlet 的核心接口scopeprovided 表示由 Web 服务器 Tomcat 在运行时提供编译时仅需引用无需打包到项目的 WAR/JAR 中。Thymeleaf 是一款现代化的服务器端 Java 模板引擎主要用于 Web 应用开发它的核心特点是能够处理 HTML、XML、JavaScript、CSS 甚至纯文本等多种模板类型尤其擅长与 Spring 框架集成是 Spring MVC 中常用的视图层技术之一。thymeleaf-spring4 是 Spring 4 项目中使用 Thymeleaf 的必备依赖它解决了模板引擎与 Spring 框架的整合问题使得开发者可以在 Spring MVC 中高效使用 Thymeleaf 的动态页面渲染能力替代传统的 JSP 技术。web.xmlweb-app version3.0 xmlnshttp://java.sun.com/xml/ns/javaee xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd !--在web.xml中配置Spring提供的过滤器类 -- filter filter-nameencodingFilter/filter-name filter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-class async-supportedtrue/async-supported init-param param-nameencoding/param-name param-valueUTF-8/param-value /init-param /filter filter-mapping filter-nameencodingFilter/filter-name url-pattern/*/url-pattern /filter-mapping !--不拦截所有是html的页面请求-- servlet-mapping servlet-namedefault/servlet-name url-pattern*.html/url-pattern /servlet-mapping !--配置前端控制器对浏览器发送的请求进行统一处理-- servlet servlet-namedispatcherServlet/servlet-name servlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-class !--加载springmvc.xml配置文件的位置和名称配置的是Spring配置-- init-param !--contextConfigLocation:上下文配置路径固定值-- param-namecontextConfigLocation/param-name !--springmvc.xml:指的是配置文件的名称需要配置springmvc.xml在下面-- param-valueclasspath:Spring.xml/param-value /init-param !--配置启动加载-- load-on-startup0/load-on-startup /servlet servlet-mapping servlet-namedispatcherServlet/servlet-name url-pattern//url-pattern /servlet-mapping !--开启项目时打开的页面-- welcome-file-list welcome-file/index.html/welcome-file /welcome-file-list /web-app需要注意版本内容也需要按此修改Spring 提供的CharacterEncodingFilter过滤器用于统一设置请求和响应的字符编码解决中文乱码问题。 是给过滤器名用于后续映射关联 指定过滤器的实现类 Spring 提供的CharacterEncodingFiltertrue 支持异步请求处理 始化参数这里设置编码格式为UTF-8 将过滤器映射到所有请求/*表示匹配所有路径确保所有请求都经过编码处理。让 Web 服务器 Tomcat 的默认 Servlet 直接处理 .html 结尾的静态页面请求避免被 Spring MVC 的前端控制器拦截。default 是 Web 服务器内置的默认 Servlet负责处理静态资源配置 *.html 表示所有以 .html 结尾的请求由默认 Servlet 处理无需经过 Spring MVC 的业务逻辑提高静态资源访问效率。DispatcherServlet 是 Spring MVC 的核心前端控制器负责接收所有客户端请求并协调 Spring MVC 的其他组件如处理器映射器、控制器、视图解析器等完成请求处理。 设置控制器名称用于关联 URL 映射这里命名为dispatcherServlet是 Spring MVC 的常规命名方式。 指定 Spring MVC 提供的DispatcherServlet实现类它是整个 Spring MVC 的核心负责接收所有客户端请求并协调处理流程。 设置 Spring MVC 配置文件的位置参数由参数名和 参数值组成键值对形式。contextConfigLocation 是 Spring MVC 中一个特殊的初始化参数主要用于指定 Spring 配置文件的位置和名称让前端控制器 DispatcherServlet 在初始化时能够加载并解析这些配置文件从而初始化 Spring 容器classpath:spring.xml 表示在项目的类路径resources文件夹下加载spring.xml配置文件该文件内包含 Spring MVC 的具体配置。当 Tomcat 启动并部署 Web 应用时会根据该 Servlet 在 web.xml 中配置的 标签用来标记这个servlet程序什么时候被加载值是一个整数用来表示被servlet加载的顺序。如果该标签的值是负数或者没有值servlet不会在容器启动时初始化而是等到第一次被请求时才触发初始化如果值为正数或者0时表示tomcat会在启动时加载该servlet值越小优先级越高值相同时容器会自己选择加载顺序。/ 定义该 Servlet 负责处理的 URL 路径规则这里的 / 表示所有请求除了已配置的 .html 静态资源都会被dispatcherServlet接收并处理由它进一步转发到对应的 Controller控制器方法。设置 Web 应用启动时默认打开的页面这里指定为根路径下的index.html当用户访问 Web 应用 http://localhost:8080/SpringMVC/时若未指定具体资源服务器会自动查找并返回 /index.html 默认页面。编写spring.xml的配置文件!--配置spring创建容器时要扫描的包-- context:component-scan base-packagecom.qcby/context:component-scan !--处理映射器-- bean classorg.springframework.web.servlet.handler.BeanNameUrlHandlerMapping/ !--处理器适配器-- bean classorg.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter/ !--配置视图解析器-- bean idviewResolver classorg.thymeleaf.spring4.view.ThymeleafViewResolver property nameorder value1/ property namecharacterEncoding valueUTF-8/ property nametemplateEngine reftemplateEngine/ /bean !-- templateEngine -- bean idtemplateEngine classorg.thymeleaf.spring4.SpringTemplateEngine property nametemplateResolver reftemplateResolver/ /bean bean idtemplateResolver classorg.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver property nameprefix value/html/ / property namesuffix value.html / property nametemplateMode valueHTML5/ /bean !-- JSON View -- bean classorg.springframework.web.servlet.view.json.MappingJackson2JsonView /bean !-- 配置spring开启注解mvc的支持 默认就是开启的 要想让其他组件不包含映射器、适配器、处理器生效就必须需要配置了-- mvc:annotation-driven/mvc:annotation-driven配置 Spring 自动扫描com.qcby包及其子包下的类会自动识别并注册带有Controller、Service、Repository、Component 等注解的类为 Spring BeanBeanNameUrlHandlerMapping处理器映射器负责将请求 URL 映射到对应的处理器 ControllerSimpleControllerHandlerAdapter处理器适配器负责调用处理器的方法处理请求Thymeleaf 视图解析器配置配置 Thymeleaf 模板引擎相关组件用于解析 HTML 视图设置字符编码为 UTF-8避免中文乱码以及指定了模板文件的位置当控制器返回逻辑视图名如index时Thymeleaf 会通过以下规则解析为实际视图路径prefix 逻辑视图名 suffix → /html/index.html 即从 Web 应用的/html目录下查找index.html文件并渲染。JSON 视图配置配置 Jackson 库支持 JSON 响应将控制器返回的数据直接转换为 JSON 格式响应开启 Spring MVC 的注解驱动支持默认是开启的自动注册处理器映射器和适配器支持RequestMapping、RequestBody、ResponseBody等注解简化开发无需手动配置大量 BeanHelloController.javaController public class HelloController { //处理器 RequestMapping(value /hello,method RequestMethod.GET) public String hello(){ return hello; } //处理超链接发送出来的请求 RequestMapping(path /sayHello) public String sayHello(Model model){ System.out.println(入门方法执行了2...); // 向模型中添加属性msg与值可以在html页面中取出并渲染 model.addAttribute(msg,hello,SpringMVC); // 配置了视图解析器后写法 return suc; } }被 Controller 注解标记的类会被 Spring 容器识别为一个控制器Controller负责处理用户发起的 HTTP 请求结合配置文件中的组件扫描Spring 会自动将这个类实例化为一个 Bean纳入容器管理RequestMapping 注解用于映射 HTTP 请求到控制器的具体方法value /hello 表示当客户端访问路径 http://服务器地址/项目名/hello 时会触发该方法。method RequestMethod.GET 指定只处理 GET 类型的请求方法返回值表示要跳转的视图名称结合配置文件中 Thymeleaf 的视图解析器实际会渲染 /html/hello.html 页面。RequestMapping(path /sayHello)映射路径为 /sayHello 的请求Model model 参数的作用是 Spring 会注入一个 Model 对象用于在控制器和视图之间传递数据model.addAttribute(msg, hello,SpringMVC) 表示向模型中添加一个键值把字符串 hello,SpringMVC 存到 Model 中命名为 msg在视图页面中可以通过msg获取该值。返回值 return suc 结合视图解析器实际会渲染 /html/suc.html 页面。通过Model对象向视图传递数据实现了控制器到视图的数据交互。suc.html!DOCTYPE html html langen xmlns:thhttp://www.thymeleaf.org head meta charsetUTF-8 title成功/title /head body h1Hello b th:text${msg}/b/h1 /body script /script /html作为 Spring MVC 的视图接收并展示控制器传递的数据通过引入 Thymeleaf 命名空间使用th:text 属性实现动态数据渲染具体展示了从HelloController的sayHello()方法传递过来的msg变量的值。完整流程拆解从 “用户访问链接” 到 “页面显示结果”用户在浏览器访问http://localhost:8080/SpringMVC/sayHello整个流程如下步骤 1用户发送请求前端控制器DispatcherServlet接收用户在浏览器输入/sayHello并回车请求被发送到 Web 服务器Tomcat服务器根据web.xml中dispatcherServlet 的配置 / 需要将所有请求都交给 dispatcherServlet 处理因此请求被转发给 DispatcherServle t前端控制器步骤 2处理器映射器HandlerMapping找处理方法DispatcherServlet 收到请求后首先问处理器映射器路径/sayHello该由哪个方法处理映射器根据配置RequestMapping(path /sayHello)找到HelloController中的sayHello()方法告诉DispatcherServlet 用这个方法处理步骤 3处理器适配器 HandlerAdapter 执行控制器方法DispatcherServlet 拿到映射结果后交给处理器适配器让它调用sayHello()方法适配器会自动处理方法的参数代码中的 Model model 适配器会创建一个Model对象传入方法执行sayHello()方法的逻辑并往Model中存数据、返回逻辑视图名步骤 4视图解析器ViewResolver解析实际页面路径DispatcherServlet拿到返回的逻辑视图名suc后交给视图解析器suc对应的页面在哪视图解析器根据spring.xml中的配置Thymeleaf 解析器前缀prefix /html/ 逻辑视图名suc 后缀suffix .html 拼接出实际路径 /html/suc.html告诉DispatcherServlet页面在/html/suc.html步骤 5视图View渲染并返回结果DispatcherServlet找到/html/suc.html页面交给Thymeleaf 模板引擎处理模板引擎解析页面中的动态语法 会从Model中取出msg的值替换到标签中生成最终的 HTML 静态内容返回给浏览器即用户看到页面内容为 Hello hello,SpringMVC。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

免费建网站软件下载php网站开发实例视频

在日常开发、博客写作、产品设计、运营推广中,图片的处理和素材获取几乎是必不可少的环节。无论你是程序员、设计师还是内容创作者,掌握一批免费高质量的图片工具,都能让你的工作效率提升一个档次。 今天整理一份 2025 最新免费图片工具大合…

张小明 2026/1/10 9:46:04 网站建设

太原网站建设总部在哪网页公正流程

第一章:视频帧检索响应延迟高?3步完成Dify索引深度优化在处理大规模视频分析任务时,Dify平台常用于构建智能检索系统。然而,当视频帧数据量激增,原始索引策略往往导致检索响应延迟显著上升。通过针对性的索引优化&…

张小明 2026/1/10 9:45:33 网站建设

网站推广的6个方法是什么手机网站建设app

开发 ElasticSearch 插件 ElasticSearch 是一个强大的开源搜索引擎,其插件开发功能允许用户根据自身需求对其进行扩展。本文将详细介绍如何开发 ElasticSearch 插件,包括自定义河流插件和自定义分析插件。 自定义河流插件开发 河流插件是 ElasticSearch 的一种功能,通常以…

张小明 2026/1/10 2:30:06 网站建设

专业的培训行业网站开发石家庄自助建站软件

大家好,我是东哥说-MES 📚 系列文章目录 🔓 免费试读篇 - [第1篇:免费试读]() ✅ 可立即阅读 🔒 粉丝专享篇(2-n篇需关注后解锁) - [第2篇:进阶应用]() ⭐ 需关注 - [第…

张小明 2026/1/10 9:45:35 网站建设

网站建设完成确认函wordpress 美拍插件

Taskflow并行编程实战:从性能瓶颈到高效解决方案 【免费下载链接】taskflow 项目地址: https://gitcode.com/gh_mirrors/taskfl/taskflow 在现代C开发中,面对复杂的计算任务和性能要求,开发者常常陷入多线程编程的困境。Taskflow作为…

张小明 2026/1/10 9:45:35 网站建设

网站建设分几次付钱做个简单网站大概多少钱

嵌入式系统开发:nesC语言组件与配置全解析 1. 组件与接口 在嵌入式系统开发中,除了简单类型,还存在平台无关的结构体和联合体,使用 nx_struct 和 nx_union 进行声明。平台无关结构体或联合体的每个字段都必须是平台无关类型,非位字段按字节边界对齐。以下是TinyOS 2…

张小明 2026/1/9 20:19:02 网站建设