SpringMVC知识点详解
⽬录
1、SpringMVC概述
1.1 SpringMVC概念
SpringMVC 也叫 Spring web mvc 。是 Spring 内置的⼀个 MVC 框架,在 Spring3.0 后发布。 SpringMVC 框架解决了WEB 开发中常见的问题 ( 参数接收、⽂件上传、表单验证等等 ) ,⽽且使⽤简单,与 Spring ⽆缝集成。⽀持 RESTful 风格的 URL 请求。采⽤了松散耦合可插拔组件结构,⽐其他 MVC 框架更具扩展性和灵活性。
1.2 SpringMVC原理
在没有使⽤SpringMVC之前我们都是使⽤ Servlet 在做 Web 开发。但是使⽤ Servlet 开发在接收请求参数, 数据共享,页⾯跳转等操作相对⽐较复杂。servlet 是 java 进⾏ web 开发的标准,既然 springMVC 是对 servlet的封装,那么很显然 SpringMVC 底层就是Servlet , SpringMVC 就是对 Servlet 进⾏深层次的封 装。
1.3 SpringMVC优势
1 、基于 MVC 架构,功能分⼯明确。解决页⾯代码和后台代码的分离。
2 、简单易⽤。 SpringMVC 也是轻量级, jar 很⼩。不依赖特定接⼝和类就可开发⼀个注解的
SpringMVC 项⽬。
3 、是 Spring框架⼀ 部 分 ,能够使⽤ Spring 的 IoC 和 AOP , ⽅ 便 整 合 MyBatis,Hiberate,JPA 等
其他框架。
4 、 springMVC 的注解强⼤易⽤。
2、MVC模式回顾
模型1:jsp+javabean模型---在jsp页⾯中嵌⼊⼤量的java代码
模型2:jsp+servlet+javabean模型---jsp页⾯将请求发送给servlet,由servlet调⽤javabean,再
由servlet将制定jsp页⾯响应给⽤户。
模型 2 ⼀般就是现在的 MVC 模式,也是我们⼀直使⽤的。
Model-View-Controller:模型--视图--控制器
Model : 模型层 javaBean 负责数据访问和业务处理 dao service pojo
View : 视图 JSP 技术 负责收集和展⽰数据
Controller : 控制器 servlet 技术 中间调度
控制器的⼯作:
1 、接受客户端的请求(包括请求中携带的数据)
2 、处理请求:调⽤后台的模型层中的业务逻辑
3 、页⾯导航:处理完毕给出响应: JSP 页⾯
3、⼊门程序
3.1 创建web的maven⼯程
创建项⽬并补齐⽬录结构
3.l⽂件添加依赖和插件
3.3 创建Spring和SpringMVC的配置⽂件
我们⼀般将除了 Controller 之外的所有 Bean 注册到 Spring 容器中,⽽将 Controller 注册到
SpringMVC 容器中。所以我们在 resources ⽬录下添加 l 作为 spring 的配置, 添加l 作为springmvc 的配置⽂件。
3.3.1 创建Spring配置⽂件l⽂件
spring作为IOC容器创建管理对象,在xml中需要配置组件扫描器进⾏包扫描,到@Component、@Repository、@Service、
@Controller注解的类进⾏对象的创建,因此需要添加context约束。⼀般将除了 Controller 之外的所有 Bean 注册到 Spring 容器中
3.3.2 创建SpringMVC的配置⽂件l
⼀般将 Controller 注册到SpringMVC 容器中,所以也需要context约束(命名空间),需要组件扫描器进⾏包扫描,另外还需要添加mvc约束。
3.4 在l中进⾏Spring和SpringMVC配置
web服务器启动后,读了l后就会去启动Spring容器和SpringMVC容器,创建各⾃对象。
<!--spring的配置-->
<!--contextConfigLocation:表⽰⽤于加载 Bean的配置⽂件-->
springmvc的注解有哪些<!--指定spring配置⽂件的位置 ,这个配置⽂件也有⼀些默认规则,它的配置⽂件名默认就叫 l , 如果将这个配置⽂件放在 WEB-INF ⽬录下,那么这⾥就可以不⽤ 指定配置⽂件位置, 只需要指定就可以。
这段配置是 Spring 集成 Web 环境的通⽤配置;⼀般⽤于加载除控制器层的 Bean(如 dao、service 等),以便于与其他任何Web框架集成。
<!--SpringMVC的配置-->
<!--
前端控制器:所有的请求都会经过此控制器,然后通过此控制器分发到各个分控制器.
前端控制器本质上还是⼀个Servlet,因为SpringMVC底层就是使⽤Servlet编写的
-->
<!-- 创建前端控制器的时候读取springmvc配置⽂件启动ioc容器 -->
load-on-startup <!-- Tomcat启动就创建此对象(值>0) -->
<!-- 配置拦截路径url,所有以.do结尾的请求都会被前端控制器拦截处理 -->
SpringMVC的配置解析:
1、servlet-class:前端控制器的完全限定名,在spring-webmvc-5.2.5.RELEASE.jar包中的
org.springframework.web.servlet下
2、load-on-startup:标记是否在Web服务器(这⾥是Tomcat)启动时会创建这个 Servlet 实
例,即是否在 Web 服务器启动时调⽤执⾏该 Servlet 的 init()⽅法,⽽不是在真正访问时才创建。
要求取值是整数。 值⼤于0:表⽰容器在启动时就加载并初始化这个 servlet,数值越⼩,Servlet的优先级就越⾼,其被创建的也就越早值⼩于0或者省略:表⽰该 Servlet 在真正被使⽤时才会去创建。 值相同:容器会⾃⼰选择创建顺序
3、url-pattern:可以写为 / ,可以写为*.do 、*.action、*.mvc等形式,此处先写*.do,以后
介绍不同写法的区别。
4、init-param:表⽰了springmvc配置⽂件的名称和位置。如果没有配置,默认在项⽬的WEB-INF ⽬录下名称为 Servlet 名称-l 的配置⽂件。
如果没有配置,启⽤默认的规则:即如果配置⽂件放在 webapp/WEB-INF/ ⽬录下,并且配置⽂
件的名字等于 DispatcherServlet 的名字+ -servlet(即这⾥的配置⽂件路径是 webapp/WEB-
l),如果是这样的话,可以不⽤添加 init-param 参数,即不
⽤⼿动配置 springmvc 的配置⽂件,框架会⾃动加载。
⽽⼀般情况下,配置⽂件是放在类路径下,即 resources ⽬录下。所以,在注册前端控制器时,
还需要设置查 SpringMVC 配置⽂件路径。
其中contextConfigLocation属性:来⾃DispatcherServlet的⽗类FrameworkServlet,
该类中的contextConfigLocation属性⽤来配置springmvc的路径和名称。
3.5 创建控制器
3.6 配置视图解析器
在 l 配置⽂件中添加视图解析器的配置
<!--annotation-driven是⼀种简写形式,也可以⼿动配置替代这种简写形式,简写形式可以让初学者快速应⽤默认配置⽅案。
该注解会⾃动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter
两个bean,是springMVC为@Controller分发⽤户请求所必须的,解决了@Controller注解使⽤的前提配置。同时它还提供了:数据绑定⽀
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论