如何做网站地图txt,wordpress 移动模板下载,赣州朝扬网络科技有限公司,长春做网站新格公司目录 引言1. 什么是SpringMVC?1.1. 模型1.2. 视图1.3. 控制器 2. SpringMVC的工作流程2.1. 客户端发送请求2.2. DispatcherServlet的处理2.3. 处理器映射器的使用2.4. 处理器的执行2.5. 视图解析器的使用2.6. 视图的渲染 3. SpringMVC的核心组件4. 弹簧MVC总结 引言
SpringMV… 目录 引言1. 什么是SpringMVC?1.1. 模型1.2. 视图1.3. 控制器 2. SpringMVC的工作流程2.1. 客户端发送请求2.2. DispatcherServlet的处理2.3. 处理器映射器的使用2.4. 处理器的执行2.5. 视图解析器的使用2.6. 视图的渲染 3. SpringMVC的核心组件4. 弹簧MVC总结 引言
SpringMVC是一个流行的Java Web开发框架它提供了一种优雅的方式来构建灵活、可扩展的Web应用程序。本文将介绍SpringMVC的基本概念深入探讨其工作流程和核心组件并提供一个入门程序来帮助读者快速上手。
1. 什么是SpringMVC?
SpringMVC是基于Java的MVCModel-View-Controller设计模式的Web框架。它通过将应用程序分为模型、视图和控制器三个部分实现了松耦合和高内聚的架构。SpringMVC提供了丰富的功能和灵活的配置选项使得开发者能够快速构建可维护和可扩展的Web应用程序。
1.1. 模型
模型代表应用程序的数据和业务逻辑。它可以是一个POJOPlain Old Java Object或一个持久化实体类。模型负责处理数据的读取、存储和验证并提供给视图和控制器使用。
1.2. 视图
视图负责展示模型的数据给用户。它可以是一个JSP页面、HTML模板或其他类型的视图技术。视图通常是被动的只负责展示数据不处理业务逻辑。
1.3. 控制器
控制器接收用户的请求并根据请求的内容选择合适的处理逻辑。它负责处理用户输入、调用模型的方法来处理数据并将处理结果传递给视图进行展示。
2. SpringMVC的工作流程
SpringMVC的工作流程可以分为以下几个步骤
2.1. 客户端发送请求
用户发来一个请求首先进入的是前端控制器DispatcherServlet
2.2. DispatcherServlet的处理
前端控制器DispacherServlet将用户发来的请求发送给处理器映射器HandlerMapping处理器映射器根据前端控制器发来的用户的请求找到对应符合的控制器Handler,并且将其封装成处理器执行链返回给前端控制器。
2.3. 处理器映射器的使用
处理器适配器 (HandlerAdaptoer) 会调用对应的具体的 Controller处理业务逻辑处理器适配器接收到来自前端控制器的执行链后找到对应执行此执行链的处理器适配器HandlerAdapter来调用的具体的控制器就是说其对应的方法或者逻辑
2.4. 处理器的执行
控制器执行完成后会返回一个ModelAndView对象给处理器适配器处理器适配器将返回来的ModelAndView对象返回给前端控制器(到这里所有的业务处理过程就要完了接下就是将结果以页面的的形式响应给用户)
2.5. 视图解析器的使用
前端控制器将返回回来的ModelAndView对象交给视图解析器ViewResolver视图解析器根据传过来的View对象解析成对应的页面对象ViewResolver 将封装好的将页面对象和Model对象返回给 DIspatcherServlet
2.6. 视图的渲染
前端控制器再将返回回来的对象交给视图View视图根据传过来的Model对象再一次的对页面进行渲染将模型数据填充至视图中然后在返回给前端控制器。前端控制器将完成的结果响应给浏览器然后浏览器在展现给用户。
3. SpringMVC的核心组件
SpringMVC的核心组件包括
3.1. 调度程序服务版 DispatcherServlet是SpringMVC的前端控制器负责接收和分发请求。3.2. 处理器映射器处理程序映射 处理器映射器负责将请求映射到合适的处理器Controller。3.3. 处理器适配器处理程序适配器 处理器适配器负责调用处理器的方法来处理请求。3.4. 视图解析器View Resolver 视图解析器负责将逻辑视图名解析为真正的视图对象。3.5. 视图视图 视图负责展示处理结果给用户。
4. 弹簧MVC
下面是一个简单的SpringMVC入门程序的示例 4.1. 创建Maven项目 首先我们需要创建一个Maven项目并添加SpringMVC的依赖。 pom.xml依赖
!-- jstlstandard --
jstl.version1.2/jstl.version
standard.version1.1.2/standard.version
!-- spring --
spring.version5.0.2.RELEASE/spring.version
...
!-- spring mvc相关依赖 --
dependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion${spring.version}/version
/dependency
dependencygroupIdjstl/groupIdartifactIdjstl/artifactIdversion${jstl.version}/version
/dependency
dependencygroupIdtaglibs/groupIdartifactIdstandard/artifactIdversion${standard.version}/version
/dependency4.2. 配置网页.xml 在web.xml文件中我们需要配置DispatcherServlet和Spring容器。 4.3. 创建控制器 创建一个spring-mvc.xml类并添加一些处理请求的方法。
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxmlns:mvchttp://www.springframework.org/schema/mvcxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd!--1) 扫描com.zking.zf及子子孙孙包下的控制器(扫描范围过大耗时)--context:component-scan base-packagecom.yuan/!--2) 此标签默认注册DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter --mvc:annotation-driven /!--3) 创建ViewResolver视图解析器 --bean classorg.springframework.web.servlet.view.InternalResourceViewResolver!-- viewClass需要在pom中引入两个包standard.jar and jstl.jar --property nameviewClassvalueorg.springframework.web.servlet.view.JstlView/propertyproperty nameprefix value/WEB-INF/jsp//property namesuffix value.jsp//bean!--4) 单独处理图片、样式、js等资源 --!-- mvc:resources location/css/ mapping/css/**/mvc:resources location/js/ mapping/js/**/mvc:resources locationWEB-INF/images/ mapping/images/**/--
/beansdemo1Controller.java
package com.yuan.web;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;/*** author 叶秋* site* company 卓京公司* create 2023-09-04 17:01*/
Controller
RequestMapping(/main)
public class demo1Controller {RequestMapping(/index)public String demo1(){System.out.println(hello spring);return index;}
}
4.4. 配置SpringMVC 在Spring的配置文件中我们需要配置处理器映射器、视图解析器等。 web.xml
?xml version1.0 encodingUTF-8?
web-app xmlnshttp://xmlns.jcp.org/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsdversion3.1display-nameArchetype Created Web Application/display-name!-- Spring和web项目集成start --!-- spring上下文配置文件 --context-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:spring-context.xml/param-value/context-param!-- 读取Spring上下文的监听器 --listenerlistener-classorg.springframework.web.context.ContextLoaderListener/listener-class/listener!-- Spring和web项目集成end --!-- 中文乱码处理 --filterfilter-nameencodingFilter/filter-namefilter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-classasync-supportedtrue/async-supportedinit-paramparam-nameencoding/param-nameparam-valueUTF-8/param-value/init-param/filterfilter-mappingfilter-nameencodingFilter/filter-nameurl-pattern/*/url-pattern/filter-mapping!-- Spring MVC servlet --servletservlet-nameSpringMVC/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-class!--此参数可以不配置默认值为/WEB-INF/springmvc-servlet.xml--init-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:spring-mvc.xml/param-value/init-paramload-on-startup1/load-on-startup!--web.xml 3.0的新特性是否支持异步--async-supportedtrue/async-supported/servletservlet-mappingservlet-nameSpringMVC/servlet-nameurl-pattern//url-pattern/servlet-mapping
/web-app4.5. 编写JSP视图 创建一个JSP视图来展示处理结果。
%--Created by IntelliJ IDEA.User: yuanhDate: 2023/9/4Time: 17:04To change this template use File | Settings | File Templates.
--%
% page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitleTitle/title
/head
body
hello word/body
/html
4.6. 运行程序 最后我们可以运行程序并在浏览器中访问相应的URL来查看结果。
总结
本文深入探讨了SpringMVC的工作原理和核心组件并提供了一个入门程序来帮助读者快速上手。通过理解SpringMVC的工作流程和组件的作用开发者可以更好地使用该框架来构建高效、可靠的Web应用程序。希望本文对您有所帮助谢谢阅读
补充访问资源绕过解析器不被拦截代码 !--4) 单独处理图片、样式、js等资源 --!-- mvc:resources location/css/ mapping/css/**/mvc:resources location/js/ mapping/js/**/mvc:resources locationWEB-INF/images/ mapping/images/**/--mvc:resources location/static/ mapping/static/**/