2019-08-28


                               SpringMVC


1. MVC介绍

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,它是一种软件设计典范,是一种软件架构设计分层模式。

Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。

View(视图)是应用程序中处理数据显示的部分。

Controller(控制器)是应用程序中处理用户交互的部分。

最典型的MVC就是JSP + servlet + javabean的模式。

2. MVC发展历史

Model 1 (jsp+javabean)

Model 2 (jsp+servlet+javabean)

2.1Model1和Model2的优缺点

Model 1 (jsp+javabean)

优点:简单,快速开发,适合小规模开发

缺点:业务逻辑和表示逻辑混合在JSP页面中没有进行抽象和分离,JSP负载太大。所以非常不利于应用系统业务的重用和改动,不便于维护。

Model 2 (jsp+servlet+javabean)

优点:具有组件化的优点从而更易于实现对大规模系统的开发和管理。职责划分清晰。

缺点:不适合小项目开发。

3.SpringMVC简介

3.1什么是SpringMVC?

SpringMVC(主流MVC框架):是spring框架的一部分(子框架),

是实现对Servlet技术进行封装。

3.2目前市场上流行的MVC框架有哪些?

1.SpringMVC    2. Struts   3. Jfinal

3.3 .SpringMVC运行原理(执行过程)

运行流程如下:


1 浏览器客户端发送请求,中央调度器DispatcherServlet接受请求

2 中央调度器把请求交给处理器映射器HandleMapping

3 处理映射器根据请求找到对应的处理器,将请求做简单的封装得到对象处理器执行链再发送给中央调度器

4 中央调度器把处理器执行链发送给处理器适配器HandleAdaptor

5 处理器适配器找到对应处理器进行处理

6 处理器执行完毕后将ModelAndView对象返回给处理器适配器

7 处理器适配器再将ModelAndView对象返回给中央调度器

8 中央调度器把ModelAndView对象发送给视图解析器

9 视图解析器解析完成返回view对象给中央调度器

10 中央调度器将view对象传给视图模块view,对view对象进行渲染

11 渲染过后的view对象返回到中央调度器

12 中央调度器把view对象响应发送到浏览器显示.

3.4SpringMVC底层运行主要涉及哪些组件?

中央调度器 DispacherServlet

处理器映射器 HandleMapping

处理器适配器 HandleAdaptor

处理器 Controller

视图解析器 ViewResolver

视图 View

3.5SpringMVC配置式开发

步骤:

3.5.1导入jar包

3.5.2配置web.xml,注册SpringMVC前端控制器(中央调度器)

3.5.3编写SpringMVC后端控制器

3.5.4编写springmvc配置文件,注册后端控制器(注意id写法格式)

3.5.5编写跳转资源页面

4.具体实现:

4.1 导包如下:

com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar

com.springsource.org.aopalliance-1.0.0.jar

com.springsource.org.apache.commons.logging-1.1.1.jar

com.springsource.org.apache.log4j-1.2.15.jar

com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar

com.springsource.org.junit-4.7.0.jar

mysql-connector-java-5.1.30.jar

spring-aop-4.1.6.RELEASE.jar

spring-aspects-4.1.6.RELEASE.jar

spring-beans-4.1.6.RELEASE.jar

spring-context-4.1.6.RELEASE.jar

spring-context-support-4.1.6.RELEASE.jar

spring-core-4.1.6.RELEASE.jar

spring-expression-4.1.6.RELEASE.jar

spring-jdbc-4.1.6.RELEASE.jar

spring-tx-4.1.6.RELEASE.jar

spring-web-4.1.6.RELEASE.jar

spring-webmvc-4.1.6.RELEASE.jar

4.2项目框架如下:


4.3:在web.xml中注册中央调度器(前端控制器),并指定springmvc.xml配置文件路径

及文件名(这里不配置,springmvc.xml配置文件只能放在WEB-INF的目录下,且文件名后加“-servlet”,原因如下:),

web.xml配置代码如下:

4.4  书写后端控制器(Controler)

4.5 配置springmvc.xml配置文件(注册后端控制器)


4.6 书写跳转页面

4.7 加载到tomcat服务器,并测试,显示如下:

4..web.xml中urlpattern配置问题

1. 以”/’开头以”/*”结尾的是用来做路径映射的。

2. 以前缀”*.”开头的是用来做扩展映射的。

3.“/” 是用来定义default servlet映射的。 

4. 剩下的都是用来定义详细映射的。

5.静态资源无法访问解决方案(三种)

1.在web.xml中配置放行:

<servlet-mapping>

  <servlet-name>default</servlet-name>

  <url-pattern>*.jpg</url-pattern>

  </servlet-mapping>

  <servlet-mapping>

  <servlet-name>default</servlet-name>

  <url-pattern>*.css</url-pattern>

  </servlet-mapping>

  <servlet-mapping>

  <servlet-name>default</servlet-name>

  <url-pattern>*.js</url-pattern>

  </servlet-mapping>

2.在springMvc配置文件中配置:


SpringMVC注解式开发

步骤

1.搭建环境

1.1 后端控制器无需实现接口,添加相应注解

1.2 springmvc配置文件无需注册controller

1.3 springmvc配置文件中添加组件扫描器、注解驱动

<mvc:annotation-driven /> 会自动注册DefaultAnnotationHandlerMapping与

AnnotationMethodHandlerAdapter 两个bean,并提供了:数据绑定支持,

@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支

持(JAXB),读写JSON的支持(Jackson)等等。

2.涉及常用注解

@Controller、@RequestMapping(类体上【命名空间】、方法上)、@Scope

具体实现

1.前段控制器(contrler):

2.springxml配置文件

3.测试(结果和xml配置一致)

视图解析器(前缀、后缀)配置如下:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 对于java中的思考的方向,1必须要看前端的页面,对于前端的页面基本的逻辑,如果能理解最好,不理解也要知道几点。 ...
    神尤鲁道夫阅读 4,227评论 0 0
  • IOC 控制反转容器控制程序对象之间的关系,而不是传统实现中,有程序代码之间控制,又名依赖注入。All 类的创建,...
    irckwk1阅读 4,585评论 0 0
  • SpringMVC的工作原理图: SpringMVC的工作原理图: SpringMVC流程 1、 用户发送请求至前...
    我不饿我不想吃东西阅读 4,256评论 0 1
  • 这部分主要是与Java Web和Web Service相关的面试题。 96、阐述Servlet和CGI的区别? 答...
    杂货铺老板阅读 5,232评论 0 10
  • 01 这是一个美丽而闭塞的山村,也许时间太过久远,这里的人们或多或少都有点沾亲带故。 其中最著名的是罗州林氏,这个...
    江湖觅道阅读 3,321评论 0 0