江苏网站开发建设多少钱,wordpress poiplayer,陇南网站网站建设,win7配置不能运行wordpress文章目录 一、SpringMVC简介1、什么是MVC2、什么是SpringMVC3、SpringMVC的特点 二、HelloWorld1、开发环境2、创建maven工程a添加web模块b打包方式#xff1a;warc引入依赖 3、配置web.xmla默认配置方式b扩展配置方式 4、创建请求控制器5、创建springMVC… 文章目录 一、SpringMVC简介1、什么是MVC2、什么是SpringMVC3、SpringMVC的特点 二、HelloWorld1、开发环境2、创建maven工程a添加web模块b打包方式warc引入依赖 3、配置web.xmla默认配置方式b扩展配置方式 4、创建请求控制器5、创建springMVC的配置文件6、测试HelloWorlda实现对首页的访问b通过超链接跳转到指定页面 7、总结 一、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
SpringMVC是Spring的一个后续产品是Spring的一个子项目SpringMVC 是 Spring 为表述层开发提供的一整套完备的解决方案。在表述层框架历经 Strust、WebWork、Strust2 等诸多产品的历代更迭之后目前业界普遍选择了 SpringMVC 作为 Java EE 项目表述层开发的首选方案。 注三层架构分为表述层或表示层、业务逻辑层、数据访问层表述层表示前台页面和后台servlet 3、SpringMVC的特点
Spring 家族原生产品与 IOC 容器等基础设施无缝对接基于原生的Servlet通过了功能强大的前端控制器DispatcherServlet对请求和响应进行统一处理表述层各细分领域需要解决的问题全方位覆盖提供全面解决方案代码清新简洁大幅度提升开发效率内部组件化程度高可插拔式组件即插即用想要什么功能配置相应组件即可性能卓著尤其适合现代大型、超大型互联网项目要求 二、HelloWorld 1、开发环境
IDEidea 2019.2构建工具maven3.5.4服务器tomcat7Spring版本5.3.1
2、创建maven工程 a添加web模块 b打包方式war c引入依赖
dependencies!-- 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
/dependencies注由于 Maven 的传递性我们不必将所有需要的包全部配置依赖而是配置最顶端的依赖其他靠传递性导入。 3、配置web.xml
注册SpringMVC的前端控制器DispatcherServlet
a默认配置方式
此配置作用下SpringMVC的配置文件默认位于WEB-INF下默认名称为-servlet.xml例如以下配置所对应SpringMVC的配置文件位于WEB-INF下文件名为springMVC-servlet.xml
!-- 配置SpringMVC的前端控制器对浏览器发送的请求统一进行处理 --
servletservlet-namespringMVC/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-class
/servlet
servlet-mappingservlet-namespringMVC/servlet-name!--设置springMVC的核心控制器所能处理的请求的请求路径/所匹配的请求可以是/login或.html或.js或.css方式的请求路径但是/不能匹配.jsp请求路径的请求--url-pattern//url-pattern
/servlet-mappingb扩展配置方式
可通过init-param标签设置SpringMVC配置文件的位置和名称通过load-on-startup标签设置SpringMVC前端控制器DispatcherServlet的初始化时间
!-- 配置SpringMVC的前端控制器对浏览器发送的请求统一进行处理 --
servletservlet-namespringMVC/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-class!-- 通过初始化参数指定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-mappingservlet-namespringMVC/servlet-name!--设置springMVC的核心控制器所能处理的请求的请求路径/所匹配的请求可以是/login或.html或.js或.css方式的请求路径但是/不能匹配.jsp请求路径的请求--url-pattern//url-pattern
/servlet-mapping注 标签中使用/和/*的区别 /所匹配的请求可以是/login或.html或.js或.css方式的请求路径但是/不能匹配.jsp请求路径的请求 因此就可以避免在访问jsp页面时该请求被DispatcherServlet处理从而找不到相应的页面 /*则能够匹配所有请求例如在使用过滤器时若需要对所有请求进行过滤就需要使用/*的写法 4、创建请求控制器
由于前端控制器对浏览器发送的请求进行了统一的处理但是具体的请求有不同的处理过程因此需要创建处理具体请求的类即请求控制器请求控制器中每一个处理请求的方法成为控制器方法因为SpringMVC的控制器由一个POJO普通的Java类担任因此需要通过Controller注解将其标识为一个控制层组件交给Spring的IoC容器管理此时SpringMVC才能够识别控制器的存在
Controller
public class HelloController {}5、创建springMVC的配置文件
!-- 自动扫描包 --
context:component-scan base-packagecom.atguigu.mvc.controller/!-- 配置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!-- 处理静态资源例如html、js、css、jpg若只设置该标签则只能访问静态资源其他请求则无法访问此时必须设置mvc:annotation-driven/解决问题--
mvc:default-servlet-handler/!-- 开启mvc注解驱动 --
mvc:annotation-drivenmvc:message-converters!-- 处理响应中文内容乱码 --bean classorg.springframework.http.converter.StringHttpMessageConverterproperty namedefaultCharset valueUTF-8 /property namesupportedMediaTypeslistvaluetext/html/valuevalueapplication/json/value/list/property/bean/mvc:message-converters
/mvc:annotation-driven6、测试HelloWorld a实现对首页的访问
在请求控制器中创建处理请求的方法
// RequestMapping注解处理请求和控制器方法之间的映射关系
// RequestMapping注解的value属性可以通过请求地址匹配请求/表示的当前工程的上下文路径
// localhost:8080/springMVC/
RequestMapping(/)
public String index() {//设置视图名称return index;
}b通过超链接跳转到指定页面
在主页index.html中设置超链接
!DOCTYPE html
html langen xmlns:thhttp://www.thymeleaf.org
headmeta charsetUTF-8title首页/title
/head
bodyh1首页/h1a th:href{/hello}HelloWorld/abr/
/body
/html在请求控制器中创建处理请求的方法
RequestMapping(/hello)
public String HelloWorld() {return target;
}7、总结
浏览器发送请求若请求地址符合前端控制器的url-pattern该请求就会被前端控制器DispatcherServlet处理。前端控制器会读取SpringMVC的核心配置文件通过扫描组件找到控制器将请求地址和控制器中RequestMapping注解的value属性值进行匹配若匹配成功该注解所标识的控制器方法就是处理请求的方法。处理请求的方法需要返回一个字符串类型的视图名称该视图名称会被视图解析器解析加上前缀和后缀组成视图的路径通过Thymeleaf对视图进行渲染最终转发到视图所对应页面