文章目录

  • 一、SpringMVC
    • 1.1 引言
    • 1.2 MVC架构
      • 1.2.1 概念
      • 1.2.2 好处
  • 二、开发流程
    • 2.1 导入依赖
    • 2.2 配置核心(前端)控制器
    • 2.3 后端控制器
    • 2.4 配置文件
    • 2.5 访问

一、SpringMVC


1.1 引言

java开源框架,Spring Framework的一个独立模块。

MVC框架,在项目中开辟MVC层次架构

对控制器中的功能 包装 简化 扩展践行工厂模式,功能架构在工厂之上

1.2 MVC架构

1.2.1 概念
名称 职责
Model 模型:即业务模型,负责完成业务中的数据通信处理,对应项目中的 service和dao
View 视图:渲染数据,生成页面。对应项目中的Jsp
Controller 控制器:直接对接请求,控制MVC流程,调度模型,选择视图。对应项目中的Servlet
1.2.2 好处
  • MVC是现下软件开发中的最流行的代码结构形态;

  • 人们根据负责的不同逻辑,将项目中的代码分成 M V C 3个层次;

  • 层次内部职责单一,层次之间耦合度低;

  • 符合低耦合 高内聚的设计理念。也实际有利于项目的长期维护。

二、开发流程

  1. maven导入jar包,
  2. 创建前端控制器 - 帮助mvc接收请求
  3. 创建后端控制器 - 处理请求

2.1 导入依赖

<dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.1.6.RELEASE</version>
</dependency>

2.2 配置核心(前端)控制器

作为一个MVC框架,首先要解决的是:如何能够收到请求!

所以MVC框架大都会设计一款前端控制器,选型在 Servlet 或 Filter两者之一,在框架最前沿率先工作,接收所有请求。

此控制器在接收到请求后,还会负责springMVC的核心的调度管理,所以既是前端又是核心。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!-- SpringMVC前端(核心)控制器1. 前端,接收所有请求2. 启动SpringMVC工厂  需要使用mvc.xml3. springMVC流程调度--><servlet><servlet-name>mvc_shine</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 局部参数:声明配置文件位置 --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:mvc.xml</param-value></init-param><!-- 懒 饿  可选--><!-- Servlet启动时刻:可选 --><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>mvc_shine</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

2.3 后端控制器

等价于之前定义的Servlet

package com.qf.web;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller // 声明后端控制器
@RequestMapping("/hello") //访问路径
public class HelloController {@RequestMapping("/test1")  //访问路径public String hello1(){// service doGet doPostSystem.out.println("hello1");return "hello"; // // 跳转:/hello.jsp}@RequestMapping("/test2")public String hello2(){// service doGet doPostSystem.out.println("hello2");return "hello2";}
}

2.4 配置文件

默认名称:核心控制器名-servet.xml 默认位置:WEB-INF

随意名称:mvc.xml 随意位置:resources 但需要配置在核心控制器中

<beans    xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 注解扫描 --><!-- 告知springmvc  哪些包中 存在 被注解的类 --><context:component-scan base-package="com.qf.web"/><!-- 注解驱动 --><mvc:annotation-driven></mvc:annotation-driven><!-- 视图解析器作用:1.捕获后端控制器的返回值="hello"2.解析: 在返回值的前后 拼接 ==> "/hello.jsp"--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 前缀 --><property name="prefix" value="/"></property><!-- 后缀 --><property name="suffix" value=".jsp"></property></bean>
</beans>

结构如下:

说明:当wen.xml的servlet去启动工厂的时候,会读取其中mvc.xml文件,会看到注解驱动和注解扫描的包位置。
会把后端控制器创建出来,进行请求的处理。

2.5 访问

先添加tomcat

http://localhost:8080/hello/test1
http://localhost:8080/hello/test2

控制台打印出输出内容即访问正常。
return后面内容需要静态文件的路径,现在加上jsp(在webapp文件下)
并且在mvc.xml中添加视图解析器的配置。

 <!-- 视图解析器作用:1.捕获后端控制器的返回值="hello"2.解析: 在返回值的前后 拼接 ==> "/hello.jsp"--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 前缀 --><property name="prefix" value="/"></property><!-- 后缀 --><property name="suffix" value=".jsp"></property></bean>

现在访问正常

结构:

springmvc01相关推荐

  1. spring mvc是什么_狂神说SpringMVC01:什么是SpringMVC

    狂神说SpringMVC系列连载课程,通俗易懂,基于Spring5版本(视频同步),欢迎各位狂粉转发关注学习.未经作者授权,禁止转载 1.回顾MVC 1.1.什么是MVC MVC是模型(Model). ...

  2. SpringMvc01 第一个Springmvc应用

    引入jar包     避免jar遗漏直接将Spring下的所有jar都进行引入另加一个commons-logging-1.1.1.jar:         commons-logging-1.1.1. ...

  3. springmvc-01集成web环境及原理 ----喝最烈的酒.

    1. Spring与Web环境集成 1.1 ApplicationContext应用上下文获取方式 应用上下文对象是通过new ClasspathXmlApplicationContext(sprin ...

  4. Springmvc案例1----基于spring2.5的採用xml配置

    首先是项目和所须要的包截图: 改动xml文件: <?xml version="1.0" encoding="UTF-8"?> <web-app ...

  5. SpringMVC框架 学习DAY_01:框架概括 / 简易应用 / 核心执行流程图 /在框架下显示HTML模板页面/ 接受请求

    1. SpringMVC框架的作用 MVC = Model(数据模型) + View(视图) + Controller(控制器) SpringMVC框架主要解决了接收请求与处理响应的问题,也可以认为是 ...

  6. Spring MVC 基础注解之@RequestMapping、@Controller、(二)

    我现在学的是spring4.2 今天主要学习了Spring MVC注解 引入注解可以减少我们的代码量,优化我们的代码. @Controller:用于标识是处理器类: @RequestMapping:请 ...

  7. Spring中AbstractCommandController控制器

    定义继承AbstractCommandController的控制器,实现数据的自动封装 Controller package com.hsit.controller;import java.text. ...

  8. springMvc的一些简介 和基于xml的handlerMapping基本流程

    其它步骤就不在介绍了 在大多数情况,都会使用基于annotation的方式进行HandlerMapping处理,在这里基于对这个流程的了解,就采用了基于xml配置了一个HandlerMapping [ ...

  9. spring mvc学习(22):/textpath/*/helen

    目录结构 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi= ...

最新文章

  1. 人工智能开始应用于美国金融业 但在中国遭遇滑铁卢
  2. 理解严格模式下JavaScript的this指向的变化
  3. oracle model 分组,【已解决】关于Oracle分组函数高级用法(按照N条分组并生成唯一号)...
  4. Unity3D 学习历程(二)
  5. X_Forwarded_for 获得真实IP
  6. 智能计米器jk76怎么安装_春节智能锁消费指南:只看价格的后果有多严重?
  7. 行政管理对计算机的要求,信息技术对行政管理的影响.doc
  8. 【swupdate文档 五】从可信的来源更新镜像
  9. Java Web架构知识整理
  10. pic系列单片机c语言编程与应用实例,PIC单片机C语言编程实例
  11. 三菱PLC开发环境搭建笔记
  12. java 类中 serialversionuid 作用
  13. 连接计算机和网络传输介质的接口,最常用的网络传输介质和连接设备
  14. html中创建表格在正上方的表格标题
  15. 2念整数(5分) 题目内容: 你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。 如输入1234,则输出: yi er san si
  16. js删除数组指定的某个值或元素
  17. BZOJ4627 回转寿司 值域线段树
  18. Android 题目动态存储+倒计时功能实现
  19. git commit -m 提交忽略代码校验
  20. Java中使用SOAP的方式调用天气预报webservice的接口实例

热门文章

  1. WinCE下直接启动自己应用程序的方法
  2. python循环遍历文件夹_如何用Python实现目录遍历
  3. 为什么要避免不可重复读_浅谈游戏的耐玩性-玩家为什么要重复打开你的游戏?...
  4. 05Struts2表单
  5. bzoj 3028 食物——生成函数
  6. Web性能测试篇:AB 压力测试
  7. [ZJOI2013]防守战线
  8. 【动态规划】XMU 1028 Game Boy Advance
  9. Error pulling origin: error: The following untracked working tree files would be overwritten by...
  10. css字体转换程序(Node.js)