SpringMVC(1):SpringMVC入门
一,MVC 概述
MVC:模型,视图,控制器,是一种软件设计规范,本质是将业务逻辑,数据,显示,分离的方式来编写代码;前后端分离
Model:数据模型,提供要展示的数据,一般我们都会把这两个分离开来。数据Dao,服务层Service
View:负责进行数据的渲染和展示,客户端想要看到的东西
Controller:接收用户请求,交给Model处理,从Model更新后的数据或者结果,返回给前端
1,Model1
在早期 Java Web 的开发中,统一把显示层、控制层、数据层的操作全部交给 JSP 或者 JavaBean 来进行处理,我们称之为 Model1
Model1的弊端
- JSP 和 Java Bean 之间严重耦合,Java 代码和 HTML 代码也耦合在了一起
- 要求开发者不仅要掌握 Java ,还要有高超的前端水平
- 前端和后端相互依赖,前端需要等待后端完成,后端也依赖前端完成,才能进行有效的测试
- 代码难以复用
2,Model2
因为Model1的种种弊端,所以很快这种方式就被 Servlet + JSP + Java Bean 所替代了,首先用户的请求会到达 Servlet,然后根据请求调用相应的 Java Bean,并把所有的显示结果交给 JSP 去完成,这样的模式我们就称为 MVC 模式
controller(控制器)
取得表单的数据
调用业务的逻辑方法
- 转向指定的页面
Model(模型)
- Dao:操作数据库
- Service:业务逻辑
- 保存数据的更新状态
View(视图)
- 网页, JSP,用来展示模型中的数据
二,SpringMVC 架构
SpringMVC 是 Spring的一部分,是基于Java实现的MVC的轻量级Web框架
SpringMVC优点
趋势,使用的人多
简单,易学,轻量级
高效,基于请求和响应的MVC框架
约定优于配置
功能强大:RestFul,数据验证,格式化,主题,本地化,异常处理......
三,Hello SpringMVC
1,创建一个Maven项目
2,导入相关架包

- 1 <dependencies>
- 2 <!--junit包单元测试-->
- 3 <dependency>
- 4 <groupId>junit</groupId>
- 5 <artifactId>junit</artifactId>
- 6 <version>4.11</version>
- 7 <scope>test</scope>
- 8 </dependency>
- 9
- 10 <!-- Spring MVC 及 Spring系列包 -->
- 11 <dependency>
- 12 <groupId>org.springframework</groupId>
- 13 <artifactId>spring-webmvc</artifactId>
- 14 <version>4.3.24.RELEASE</version>
- 15 </dependency>
- 16
- 17 <!--Servlet核心-->
- 18 <dependency>
- 19 <groupId>javax.servlet</groupId>
- 20 <artifactId>javax.servlet-api</artifactId>
- 21 <version>4.0.1</version>
- 22 </dependency>
- 23
- 24 <!-- JSTL -->
- 25 <dependency>
- 26 <groupId>javax.servlet</groupId>
- 27 <artifactId>jstl</artifactId>
- 28 <version>1.2</version>
- 29 </dependency>
- 30 </dependencies>
- 31
- 32 <build>
- 33 <!--解决资源导出问题-->
- 34 <resources>
- 35 <resource>
- 36 <directory>src/main/java</directory>
- 37 <includes>
- 38 <include>**/*.properties</include>
- 39 <include>**/*.xml</include>
- 40 </includes>
- 41 <filtering>false</filtering>
- 42 </resource>
- 43 <resource>
- 44 <directory>src/main/resources</directory>
- 45 <includes>
- 46 <include>**/*.properties</include>
- 47 <include>**/*.xml</include>
- 48 </includes>
- 49 <filtering>false</filtering>
- 50 </resource>
- 51 </resources>
- 52 </build>

3,配置web.xml,注册DispatcherServlet
映射路径为 / 【不要用/*,会404】

- 1 <?xml version="1.0" encoding="UTF-8"?>
- 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- 3 xmlns="http://java.sun.com/xml/ns/javaee"
- 4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
- 5 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
- 6 id="WebApp_ID" version="3.0">
- 7
- 8 <!--1.注册DispatcherServlet-->
- 9 <servlet>
- 10 <servlet-name>SpringMVC</servlet-name>
- 11 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- 12
- 13 <!--2.关联SpringMVC配置文件-->
- 14 <init-param>
- 15 <param-name>contextConfigLocation</param-name>
- 16 <param-value>classpath:springmvc-servlet.xml</param-value>
- 17 </init-param>
- 18
- 19 <!--3.这个东西要和服务器一起启动-->
- 20 <load-on-startup>1</load-on-startup>
- 21 </servlet>
- 22
- 23 <servlet-mapping>
- 24 <servlet-name>SpringMVC</servlet-name>
- 25 <url-pattern>/</url-pattern>
- 26 </servlet-mapping>
- 27
- 28 </web-app>

4,配置springMVC的配置文件
在resources下创建springmvc-config.xml

- 1 <?xml version="1.0" encoding="UTF-8"?>
- 2 <beans xmlns="http://www.springframework.org/schema/beans"
- 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- 4 xmlns:mvc="http://www.springframework.org/schema/mvc"
- 5 xmlns:context="http://www.springframework.org/schema/context"
- 6 xsi:schemaLocation="
- 7 http://www.springframework.org/schema/beans
- 8 https://www.springframework.org/schema/beans/spring-beans.xsd
- 9 http://www.springframework.org/schema/context
- 10 https://www.springframework.org/schema/context/spring-context.xsd
- 11 http://www.springframework.org/schema/mvc
- 12 https://www.springframework.org/schema/mvc/spring-mvc.xsd">
- 13
- 14 <!--扫描指定包下的注解,让指定的类能够被IOC容器管理-->
- 15 <context:component-scan base-package="com.shandx.controller"/>
- 16
- 17 <!--静态资源过滤-->
- 18 <mvc:default-servlet-handler/>
- 19
- 20 <!--MVC注解驱动-->
- 21 <mvc:annotation-driven/>
- 22
- 23 <!--视图解析器-->
- 24 <bean id="InternalResourceViewResolver"
- 25 class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- 26 <!-- 前缀 -->
- 27 <property name="prefix" value="/WEB-INF/"/>
- 28 <!-- 后缀 -->
- 29 <property name="suffix" value=".jsp"/>
- 30 </bean>
- 31 </beans>

5,编写Controller类

- 1 //@Controller是为了让Spring IOC容器初始化时自动扫描到
- 2 @Controller
- 3 public class HelloWorldController {
- 4
- 5 //请求映射("路径")
- 6 @RequestMapping("/hello")
- 7 public String hi(Model model){
- 8 model.addAttribute("msg","Hello,SpringMVC");
- 9
- 10 //方法返回的结果是视图的名称hello
- 11 // 加上配置文件中的前后缀变成WEB-INF/hello.jsp。
- 12 return "hello"; //WEB-INF/jsp/hello.jsp
- 13 }
- 14 }

6,编写视图层
注意视图的位置,要和视图解析器对应 web-inf / jsp,可以通过EL表示取出Model中存放的值

- 1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- 2 <html>
- 3 <head>
- 4 <title>SpringMVC</title>
- 5 </head>
- 6 <body>
- 7
- 8 ${msg}
- 9
- 10 </body>
- 11 </html>

7,启动Tomcat进行测试
配置Tomcat
测试结果
四, 项目结构
SpringMVC(1):SpringMVC入门的更多相关文章
- Spring-MVC开发步骤(入门配置)
Spring-MVC开发步骤(入门配置) Step1.导包 spring-webmvc Step2.添加spring配置文件 Step3.配置DispatcherServlet 在web.xml中: ...
- (转)SpringMVC学习(一)——SpringMVC介绍与入门
http://blog.csdn.net/yerenyuan_pku/article/details/72231272 SpringMVC介绍 SpringMVC是什么? SpringMVC和Stru ...
- springmvc(一) springmvc框架原理分析和简单入门程序
springmvc这个框架真的非常简单,感觉比struts2还更简单,好好沉淀下来学习~ --WH 一.什么是springmvc? 我们知道三层架构的思想,并且如果你知道ssh的话,就会更加透彻的理解 ...
- SpringMVC由浅入深day01_7入门程序小结
7 入门程序小结 通过入门程序理解springmvc前端控制器.处理器映射器.处理器适配器.视图解析器用法. 前端控制器配置: 处理器映射器: 非注解处理器映射器(了解) 注解的处理器映射器(掌握) ...
- SpringMVC由浅入深day01_2springmvc入门程序
2 入门程序 2.1 需求 以案例作为驱动. springmvc和mybaits使用一个案例(商品订单管理). 功能需求:商品列表查询 2.2 环境准备 数据库环境:mysql5.5 先导入sql_t ...
- springMVC第一天——入门、整合与参数绑定
大纲摘要: 1.Springmvc介绍 2.入门程序 3.Springmvc架构讲解 a) 框架结构 b) 组件说明 4.Springmvc整合mybatis 5.参数绑定 乱码问题解决 a) Spr ...
- springMVC的一些入门配置
1.springMVC的描述 1.1.SpringMVC是Spring框架内置的MVC的实现.SpringMVC就是一个Spring内置的MVC子框架. 1.2.SpringMVC的作用是实现页面和后 ...
- 阶段3 3.SpringMVC·_01.SpringMVC概述及入门案例_05.入门程序之入门代码编写
先把默认的index.jsp删掉.默认的index.jsp没有jsp的声明 ok webapp文件夹下new一个 起名叫做index.新建的页面有jsp的头 创建控制器类 java下新建一个class ...
- springmvc(一)springmvc简介与入门程序
springmvc概括: Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱 ...
- 【SpringMVC】SpringMVC 入门
SpringMVC 入门 文章源码 SpringMVC 基本概念 在 JavaEE 开发中,几乎全都是基于 B/S 架构的开发.在 B/S 架构中,系统标准的三层架构包括:表现层.业务层.持久层. 表 ...
随机推荐
- RPC 框架 Dubbo 从理解到使用(二)
本篇文章为系列文章,未读第一集的同学请猛戳这里:RPC 框架 Dubbo 从理解到使用(一) 本篇文章讲解 Dubbo 支持的注册中心.Dubbo 负载均衡策略和 Dubbo 控制台的安装. 注册中心 ...
- 手把手从0到1:搭建Kubernetes集群
搭建 k8s 集群网上很多教程,如果是手工部署或者实验环境可以直接使用 MiniKube 或者 Kind,来在本地启动简单的 Kubernetes 集群进行后面的学习即可.如果是使用 MiniKube ...
- mysql流程控制结构case when
一.case 使用场景 简单函数 CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement ...
- map2bean & bean2map
1,自己实现: /** * @author xx * @since 2020/7/8 */ @Slf4j public class JavaBeanUtils { /** * 实体类转map * 效率 ...
- vuex4 极速入门到上手
vuex4 是 vue3的兼容版本,提供了和vuex3 的相同API.因此我们可以在 vue3 中复用之前已存在的 vuex 代码. 一.安装以及初始化 vuex4安装: npm install vu ...
- Mac Python相关配置操作汇总
以下总结一下我在安装pytorch时用到的一些命令及操作,方便以后回顾 一.Which xxxx 直接查找到xxxx所在的路径.如下: which python python: aliased to ...
- Spring Cloud Gateway自定义过滤器实战(观测断路器状态变化)
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- QQ 表情大全
rt,以下是比较常用的 QQ 表情简写: /kk:快哭了 /cy:呲牙 /ll:流泪 /dk:大哭 /yiw:疑问 /jk:惊恐 /se:色 /kel:可怜 /xyx:斜眼笑 /wx:微笑 /xk:笑 ...
- UOJ #129 / BZOJ 4197 / 洛谷 P2150 - [NOI2015]寿司晚宴 (状压dp+数论+容斥)
题面传送门 题意: 你有一个集合 \(S={2,3,\dots,n}\) 你要选择两个集合 \(A\) 和 \(B\),满足: \(A \subseteq S\),\(B \subseteq S\), ...
- Codeforces 538G - Berserk Robot(乱搞)
Codeforces 题目传送门 & 洛谷题目传送门 一道很神的乱搞题 %%% 首先注意到如果直接去做,横纵坐标有关联,不好搞.这里有一个非常套路的技巧--坐标轴旋转,我们不妨将整个坐标系旋转 ...