2026/4/18 14:39:04
网站建设
项目流程
韩国网站怎么打开,wordpress回复邮箱,微信企业app下载安装,北辰做网站SpringMVC处理请求流程SpringMVC涉及组件理解#xff1a;
DispatcherServlet : SpringMVC提供#xff0c;我们需要使用web.xml配置使其生效#xff0c;它是整个流程处理的核心#xff0c;所有请求都经过它的处理和分发#xff01;[ CEO ]HandlerMapping : SpringMVC提供…SpringMVC处理请求流程SpringMVC涉及组件理解DispatcherServlet : SpringMVC提供我们需要使用web.xml配置使其生效它是整个流程处理的核心所有请求都经过它的处理和分发[ CEO ]HandlerMapping : SpringMVC提供我们需要进行IoC配置使其加入IoC容器方可生效它内部缓存handler(controller方法)和handler访问路径数据被DispatcherServlet调用用于查找路径对应的handler[秘书]HandlerAdapter : SpringMVC提供我们需要进行IoC配置使其加入IoC容器方可生效它可以处理请求参数和处理响应数据数据每次DispatcherServlet都是通过handlerAdapter间接调用handler他是handler和DispatcherServlet之间的适配器[经理]Handler : handler又称处理器他是Controller类内部的方法简称是由我们自己定义用来接收参数向后调用业务最终返回响应结果[打工人]ViewResovler : SpringMVC提供我们需要进行IoC配置使其加入IoC容器方可生效视图解析器主要作用简化模版视图页面查找的但是需要注意前后端分离项目后端只返回JSON数据不返回页面那就不需要视图解析器所以视图解析器相对其他的组件不是必须的[财务]用到了 tomcat用到了 JBLJavaToWeb运行效果pom.xml?xml version1.0 encodingUTF-8?projectxmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.cool/groupIdartifactIdssm-springmvc-part/artifactIdversion1.0-SNAPSHOT/versionpackagingpom/packagingmodulesmodulespringmvc-base-quick/modulemodulespringmvc-study-one/module/modulespropertiesspring.version6.0.6/spring.versionservlet.api9.1.0/servlet.apimaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/properties!-- springwebmvc web - servlet ioc - spring-context mvc - spring-webmvc --dependencies!-- springioc相关依赖 --dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion${spring.version}/version/dependency!-- web相关依赖 --!-- 在 pom.xml 中引入 Jakarta EE Web API 的依赖 --!-- 在 Spring Web MVC 6 中Servlet API 迁移到了 Jakarta EE API因此在配置 DispatcherServlet 时需要使用 Jakarta EE 提供的相应类库和命名空间。错误信息 “‘org.springframework.web.servlet.DispatcherServlet’ is not assignable to ‘javax.servlet.Servlet,jakarta.servlet.Servlet’” 表明你使用了旧版本的 Servlet API没有更新到 Jakarta EE 规范。 --dependencygroupIdjakarta.platform/groupIdartifactIdjakarta.jakartaee-web-api/artifactIdversion${servlet.api}/versionscopeprovided/scope/dependency!-- springwebmvc相关依赖 --dependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion${spring.version}/version/dependency!-- lombok插件 可以使用 Data 给 实体类自动添加setter、getter、toString方法 --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.28/version/dependency!-- post请求接收json格式的参数的时候 会报一个 415的错误因为java原生api识别不了json只支持 param、path参数 解决办法 这个依赖 在配置类上使用EnableWebMvc给springmvc的handlerAdpater配置json转化器 --dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.15.0/version/dependency/dependencies/projectHelloControllerpackagecom.cool.controller;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.ResponseBody;ControllerpublicclassHelloController{RequestMapping(springmvc/hello)// 对外访问的地址【到handlerMapping注册的注解】ResponseBody// 直接返回字符串给前端不要找视图解析器publicStringhello(){System.out.println(HelloController.hello);// 返回给前端returnhello springmvc!;}}MvcConfigpackagecom.cool.config;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.ComponentScan;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;importorg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;/** * 要做2件事情 * 1、controller 配置ioc容器 * 2、hanglerMapping、handlerAdapter 加入到ioc容器 */ConfigurationComponentScan(com.cool.controller)publicclassMvcConfig{BeanpublicRequestMappingHandlerMappinghandlerMapping(){returnnewRequestMappingHandlerMapping();}BeanpublicRequestMappingHandlerAdapterhandlerAdapter(){returnnewRequestMappingHandlerAdapter();}}SpringMvcInit 需要继承 AbstractAnnotationConfigDispatcherServletInitializerpackagecom.cool.config;importorg.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;/** * 可以被web项目加载会初始化ioc容器会设置dispatcherServlet的地址 */publicclassSpringMvcInitextendsAbstractAnnotationConfigDispatcherServletInitializer{OverrideprotectedClass?[]getRootConfigClasses(){returnnewClass[0];}// 设置我们项目对应的配置OverrideprotectedClass?[]getServletConfigClasses(){returnnewClass[]{MvcConfig.class};}// 配置springmvc内部自带servlet的访问地址OverrideprotectedString[]getServletMappings(){returnnewString[]{/};}}