网站建设 企业网站 框架,科技企业网站设计,电池外贸一般在哪些网站做,中国营销传播网手机版入口文章目录 前言一、SpringMVC简介1.什么是MVC2.什么是SpringMVC3.SpringMVC的特点 二、搭建框架——HelloWorld1.创建maven工程#xff08;web项目#xff09;2.配置web.xml3.配置springMVC.xml4.创建请求控制器 总结 前言
基础小白第一次走进SpringMVC#xff1a;了解什么是… 文章目录 前言一、SpringMVC简介1.什么是MVC2.什么是SpringMVC3.SpringMVC的特点 二、搭建框架——HelloWorld1.创建maven工程web项目2.配置web.xml3.配置springMVC.xml4.创建请求控制器 总结 前言
基础小白第一次走进SpringMVC了解什么是SpringMVC、搭建框架完成国际著名案例——HelloWorld。 一、SpringMVC简介
1.什么是MVC
MVC是一种软件架构的思想将软件按照模型、视图、控制器来划分。
MModel模型层指工程中的JavaBean作用是处理数据。
JavaBean分为两类
实体类Bean专门存储业务数据的如 Student、User 等业务处理 Bean指 Service 或 Dao 对象专门用于处理业务逻辑和数据访问。
VView视图层指工程中的html或jsp等页面作用是与用户进行交互展示数据。
CController控制层指工程中的servlet作用是接收请求和响应浏览器。
MVC的工作流程 用户通过视图层发送请求到服务器在服务器中请求被Controller接收Controller调用相应的Model层处理请求处理完毕将结果返回到ControllerController再根据请求处理的结果找到相应的View视图渲染数据后最终响应给浏览器。
2.什么是SpringMVC
1SpringMVC是Spring的一个后续产品是Spring的一个子项目。
2SpringMVC 是 Spring 为表述层开发提供的一整套完备的解决方案。在表述层框架历经 Strust、WebWork、Strust2 等诸多产品的历代更迭之后目前业界普遍选择了 SpringMVC 作为 Java EE 项目表述层开发的首选方案。 三层架构分为表述层或表示层、业务逻辑层、数据访问层表述层表示前台页面和后台servlet。
3.SpringMVC的特点
Spring 家族原生产品与 IOC 容器等基础设施无缝对接基于原生的Servlet通过了功能强大的前端控制器 DispatcherServlet 对请求和响应进行统一处理表述层各细分领域需要解决的问题全方位覆盖提供全面解决方案代码清新简洁大幅度提升开发效率内部组件化程度高可插拔式组件即插即用想要什么功能配置相应组件即可性能卓著尤其适合现代大型、超大型互联网项目要求
二、搭建框架——HelloWorld
1.创建maven工程web项目
我用的是IDEA2022.3.3 流程如下 create创建完成如下 就在pom.xml里添加maven依赖 依赖
dependenciesdependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion4.0.1/versionscopeprovided/scope/dependencydependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-api/artifactIdversion${junit.version}/versionscopetest/scope/dependencydependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-engine/artifactIdversion${junit.version}/versionscopetest/scope/dependency!-- SpringMVC --dependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion5.3.1/version/dependency!-- 日志 --dependencygroupIdch.qos.logback/groupIdartifactIdlogback-classic/artifactIdversion1.2.3/version/dependency!-- ServletAPI --dependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion3.1.0/versionscopeprovided/scope/dependency!-- Spring5和Thymeleaf整合包 --dependencygroupIdorg.thymeleaf/groupIdartifactIdthymeleaf-spring5/artifactIdversion3.0.12.RELEASE/version/dependency/dependencies2.配置web.xml
1默认配置方式 代码如下示例
!-- 配置SpringMVC的前端控制器对浏览器发送的请求统一进行处理 --
servlet
servlet-namespringMVC/servlet-name
servlet-classorg.springframework.web.servlet.DispatcherServlet/servletclass
/servlet
servlet-mapping
servlet-namespringMVC/servlet-name
!--
设置springMVC的核心控制器所能处理的请求的请求路径
/所匹配的请求可以是/login或.html或.js或.css方式的请求路径
但是/不能匹配.jsp请求路径的请求
--
url-pattern//url-pattern
/servlet-mapping2扩展配置方式就用这个
!-- 配置SpringMVC的前端控制器对浏览器发送的请求统一进行处理 --
servlet
servlet-namespringMVC/servlet-name
servlet-classorg.springframework.web.servlet.DispatcherServlet/servletclass
!-- 通过初始化参数指定SpringMVC配置文件的位置和名称 --
init-param
!-- contextConfigLocation为固定值 --
param-namecontextConfigLocation/param-name
!-- 使用classpath:表示从类路径查找配置文件例如maven工程中的
src/main/resources --
param-valueclasspath:springMVC.xml/param-value
/init-param
!--
作为框架的核心组件在启动过程中有大量的初始化操作要做
而这些操作放在第一次请求时才执行会严重影响访问速度
因此需要通过此标签将启动控制DispatcherServlet的初始化时间提前到服务器启动时
--
load-on-startup1/load-on-startup
/servlet
servlet-mapping
servlet-namespringMVC/servlet-name
!--
设置springMVC的核心控制器所能处理的请求的请求路径
/所匹配的请求可以是/login或.html或.js或.css方式的请求路径
但是/不能匹配.jsp请求路径的请求
--
url-pattern//url-pattern
/servlet-mapping
注 url-pattern标签中使用/和/*的区别 /所匹配的请求可以是/login或.html或.js或.css方式的请求路径但是/不能匹配.jsp请求路径的请 求 因此就可以避免在访问jsp页面时该请求被DispatcherServlet处理从而找不到相应的页面 /*则能够匹配所有请求例如在使用过滤器时若需要对所有请求进行过滤就需要使用/*的写 法
3.配置springMVC.xml
这里用的thymeleaf视图渲染
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd!--扫描控制层组件--context:component-scan base-packagecom.dragon.mvc.controller/context:component-scan!-- 配置Thymeleaf视图解析器 --bean idviewResolver classorg.thymeleaf.spring5.view.ThymeleafViewResolverproperty nameorder value1/property namecharacterEncoding valueUTF-8/property nametemplateEnginebean classorg.thymeleaf.spring5.SpringTemplateEngineproperty nametemplateResolverbean classorg.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver!-- 视图前缀 --property nameprefix value/WEB-INF/templates//!-- 视图后缀 --property namesuffix value.html/property nametemplateMode valueHTML5/property namecharacterEncoding valueUTF-8 //bean/property/bean/property/bean
/beans4.创建请求控制器
由于前端控制器对浏览器发送的请求进行了统一的处理但是具体的请求有不同的处理过程因此需要创建处理具体请求的类即请求控制器。 请求控制器中每一个处理请求的方法成为控制器方法。 因为SpringMVC的控制器由一个POJO普通的Java类担任因此需要通过Controller注解将其标识为一个控制层组件交给Spring的IoC容器管理此时SpringMVC才能够识别控制器的存在。 HelloController类
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
Controller
public class HelloController {RequestMapping(/)public String index(){return index;}RequestMapping(/target)public String toTarget(){return target;}
}
创建后工程目录如下大家只需要看我红框中的其他是我自己做的一些测试。 index.html和target.html:
index
!DOCTYPE html
html langen xmlns:thhttp://www.thymeleaf.org
headmeta charsetUTF-8title首页/title
/head
body
h1首页/h1
a th:href{/target}目标target/abr
/body
/htmltarget
!DOCTYPE html
html langen xmlns:thhttp://www.thymeleaf.org
headmeta charsetUTF-8titleTitle/title
/head
body
hello,我是target
/body
/html这里用到的RequestMapping注解会单独讲诉。 总结
浏览器发送请求若请求地址符合前端控制器的url-pattern该请求就会被前端控制器 DispatcherServlet处理。前端控制器会读取SpringMVC的核心配置文件通过扫描组件找到控制器将请求地址和控制器中RequestMapping注解的value属性值进行匹配若匹配成功该注解所标识的控制器方法就是处理请求的方法。处理请求的方法需要返回一个字符串类型的视图名称该视图名称会被视图解析器解析加上前缀和后缀组成视图的路径通过Thymeleaf对视图进行渲染最终转发到视图所对应页面以上就是第一个SpringMVC框架的搭建和介绍。