现在允许做网站吗,网络营销策划名词解释,石家庄科技网站,做网站需要什么框架一、SpringMVC简介和体验
1.1 介绍
Spring Web MVC :: Spring Framework
Spring Web MVC是基于Servlet API构建的原始Web框架#xff0c;从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称#xff08; spring-webmvc #xff09;#…一、SpringMVC简介和体验
1.1 介绍
Spring Web MVC :: Spring Framework
Spring Web MVC是基于Servlet API构建的原始Web框架从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称 spring-webmvc 但它通常被称为“Spring MVC”。
在控制层框架历经Strust、WebWork、Strust2等诸多产品的历代更迭之后目前业界普遍选择了SpringMVC作为Java EE项目表述层开发的首选方案。之所以能做到这一点是因为SpringMVC具备如下显著优势
Spring 家族原生产品与IOC容器等基础设施无缝对接表述层各细分领域需要解决的问题全方位覆盖提供全面解决方案代码清新简洁大幅度提升开发效率内部组件化程度高可插拔式组件即插即用想要什么功能配置相应组件即可性能卓著尤其适合现代大型、超大型互联网项目要求
原生Servlet API开发代码片段
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String userName request.getParameter(userName);System.out.println(userNameuserName);
}
基于SpringMVC开发代码片段
RequestMapping(/user/login)
public String login(RequestParam(userName) String userName,Sting password){log.debug(userNameuserName);//调用业务即可return result;
}
1.2 主要作用 SSM框架构建起单体项目的技术栈需求其中的SpringMVC负责表述层控制层实现简化
SpringMVC的作用主要覆盖的是表述层例如
请求映射数据输入视图界面请求分发表单回显会话控制过滤拦截异步交互文件上传文件下载数据校验类型转换等等等
最终总结
简化前端参数接收( 形参列表 )简化后端数据响应(返回值)以及其他......
1.3 核心组件和调用流程理解
Spring MVC与许多其他Web框架一样是围绕前端控制器模式设计的其中中央 Servlet DispatcherServlet 做整体请求处理调度
除了DispatcherServletSpringMVC还会提供其他特殊的组件协作完成请求处理和响应呈现。
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数据不返回页面那就不需要视图解析器所以视图解析器相对其他的组件不是必须的[财务] 1.4 快速体验
体验场景需求 配置分析
DispatcherServlet设置处理所有请求HandlerMapping,HandlerAdapter,Handler需要加入到IoC容器供DS调用Handler自己声明Controller需要配置到HandlerMapping中供DS查找
准备项目
创建项目springmvc-base-quick。注意需要转成maven/web程序导入依赖
propertiesspring.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
/propertiesdependencies!-- 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/dependencies
Controller声明
Controller
public class HelloController {//handlers/*** handler就是controller内部的具体方法* RequestMapping(/springmvc/hello) 就是用来向handlerMapping中注册的方法注解!* ResponseBody 代表向浏览器直接返回数据!*/RequestMapping(/springmvc/hello)ResponseBodypublic String hello(){System.out.println(HelloController.hello);return hello springmvc!!;}
}
Spring MVC核心组件配置类声明springmvc涉及组件信息的配置类
//TODO: SpringMVC对应组件的配置类 [声明SpringMVC需要的组件信息]//TODO: 导入handlerMapping和handlerAdapter的三种方式//1.自动导入handlerMapping和handlerAdapter [推荐]//2.可以不添加,springmvc会检查是否配置handlerMapping和handlerAdapter,没有配置默认加载//3.使用Bean方式配置handlerMapper和handlerAdapter
EnableWebMvc
Configuration
ComponentScan(basePackages com.atguigu.controller) //TODO: 进行controller扫
//WebMvcConfigurer springMvc进行组件配置的规范,配置组件,提供各种方法! 前期可以实现
public class SpringMvcConfig implements WebMvcConfigurer {Beanpublic HandlerMapping handlerMapping(){return new RequestMappingHandlerMapping();}Beanpublic HandlerAdapter handlerAdapter(){return new RequestMappingHandlerAdapter();}}
SpringMVC环境搭建对于使用基于 Java 的 Spring 配置的应用程序建议这样做如以下示例所示
//TODO: SpringMVC提供的接口,是替代web.xml的方案,更方便实现完全注解方式ssm处理!
//TODO: Springmvc框架会自动检查当前类的实现类,会自动加载 getRootConfigClasses / getServletConfigClasses 提供的配置类
//TODO: getServletMappings 返回的地址 设置DispatherServlet对应处理的地址
public class MyWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {/*** 指定service / mapper层的配置类*/Overrideprotected Class?[] getRootConfigClasses() {return null;}/*** 指定springmvc的配置类* return*/Overrideprotected Class?[] getServletConfigClasses() {return new Class?[] { SpringMvcConfig.class };}/*** 设置dispatcherServlet的处理路径!* 一般情况下为 / 代表处理所有请求!*/Overrideprotected String[] getServletMappings() {return new String[] { / };}
}
启动测试。注意 tomcat应该是10版本方可支持 Jakarta EE API! 本文为学习笔记所参考文章均已附上链接若有疑问请私信
创作不易如果对你有点帮助的话麻烦点个赞支持一下
新手小白欢迎留言指正